专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

方法(结构、修饰符、重载、构造方法)

1、方法的结构

35_1.png

2、方法的权限修饰符

public:公有的

protected:类内,包内和子类

default:默认权限修饰符,包私有(意思就是只能由跟这个类在同一个包中的类来访问),类内,包内

private:同一类内

final:被修饰后方法不能被重写

方法除了属性的访问修饰符之外还有static abstract:
static:静态方法 ,可以直接使用类名来调用
abstract:抽象方法,不需要有具体的实现,继承这个抽象类的子类必须重写这个方法

3、方法的重载(一个类中定义多个同名的方法,参数列表不同)

重载时,方法的参数列表不同:参数的个数、数据类型,前提是方法的名字相同,是否重载与返回值无关,因为在调用方法的时候并不能确定被调用的方法的返回值的类型,因此,通过返回值的类型是不能区分出两个方法的,但是从参数列表可以实现对同名的方法的区分

好处:同一方法可以实现多种功能

35_2.png

4、构造方法

(1)定义:方法名与类名相同,无返回值,但是不能加void。

package 构造方法;
public class Circle extends Shape{
    private double radius;
    private double pi=3.1415926;
    public Circle(){
    }
    public Circle(double radius){ this.radius = radius; } public double getRadius() { return radius; } public void setRadius(double radius) { this.radius = radius; } public double getArea(){ return radius*radius*pi; } public double getLength() { return 2*pi*radius; } }

(2)默认的构造方法(没有参数的构造方法)

类中必定有构造方法,若不写,系统自动添加无参构造方法。

 public Circle(){

    }

如果再类中无构造方法,则调用无参的构造方法。

(3)一个构造方法调用另一个构造方法(this)

 1 public class ConstructionMethodDemo {
 2     public static float radius;
 3     private double pi = Math.PI;
 4 
 5     public ConstructionMethodDemo(float radius) {
 6         this.radius = radius;
 7 } 8 9 public ConstructionMethodDemo() { 10 this(radius); 11 System.out.println("圆的面积为:" + radius * radius * pi); 12 } 13 14 public static void main(String[] args) { 15 ConstructionMethodDemo ccm = new ConstructionMethodDemo(2); 16 ConstructionMethodDemo ccm1 = new ConstructionMethodDemo(); 17 } 18 }

在用this()调用构造方法的时候必须放到构造方法的第一行,目的是避免操作对象的时候对象还未创建成功。

(4)构造方法的作用:完成对象的初始化(构造一个实例、对实例的初始化)

为了说明构造方法的作用,这里先创建一个有三个属性的学生类,含有两个构造方法,一个有参数,一个无参数:

public class Student {
    private String snum;
    private String sname;
    private String sex;
    public Student(String snum, String sname, String sex) {
        System.out.println("有参数的构造方法被调用了!!");
        this.snum = snum;
        this.sname = sname;
        this.sex = sex;
    }
    public Student(){
        System.out.println("无参的构造方法被调用了!!");
    }
    public String getSnum() {
        return snum;
    }

    public void setSnum(String snum) {
        this.snum = snum;
    }

    public String getSname() {
        return sname;
    }

    public void setSname(String sname) {
        this.sname = sname;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }
    @Override
    public String toString() {
        return "Student{" +
                "snum='" + snum + '\'' +
                ", sname='" + sname + '\'' +
                ", sex='" + sex + '\'' +
                '}';
    }
}

创建测试类:分别调用有参和无参两种构造方法来创建对象:

public class Test {
    public static void main(String[] args){
        Student student=new Student();
        student.setSnum("123201011");
        System.out.println(student);
        Student student1=new Student("123202002","zhai","nv");
        System.out.println(student1);
    }
}

可以看出,有参数的构造方法存在一定的优势,就是在创建对象的同时完成了对象的初始化工作,而调用无参的构造方法方式创建对象后,还需要利用Student类的set方法为对象赋值。

35_3.png

文章永久链接:https://tech.souyunku.com/22680

未经允许不得转载:搜云库技术团队 » 方法(结构、修饰符、重载、构造方法)

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们