java构造方法(基础)

构造方法也叫构造器,是创建对象时执行的特殊方法,一般用于初始化新对象的属性。它是专门用来创建对象的方法,当我们通过关键字new来创建对象时,其实就是在调用构造方法。

格式

public 类名称 (参数类型 参数名称){

方法体

}

例如代码:

//一个无参构造的方法
    public Student(){
        System.out.println("无参构造执行");
    }

那么一个有参构造的方法体

 public Student(String name,int age){
        System.out.println("有参构造执行");
        this.name=name;//方便我们调用参数
        this.age=age;
    }

写构造方法时需要注意的事项:

1.构造方法的名称必须与前面的类的名称相同。大小写也要一样。

2.构造方法不需要返回值类型,所以不需要写void。

3.在构造方法体内不能返回具体的值。

4.当我们在一个类中不写构造方法时 ,编译器会默认给我们一个构造方法。且没有参数,方法体也没啥事干。

5.但如果我们要是写了一个以上(至少一个)的构造方法,编译器就不会再给我们构造方法。

6.我们写的构造方法也是可以重载的,(方法重载:方法名相同,参数列表不同)

java方法基础

可以点击上面链接查看方法基础。

构造方法的重载:

代码:

 //一个无参构造的方法
    public Student(){
        System.out.println("无参构造执行");
    }
    //一个有参构造的方法
    public Student(String name,int age){
        System.out.println("有参构造执行");
        this.name=name;
        this.age=age;
    }//方法名相同,参数列表不同

构造方法完整代码应用:

package Day01;
//首先我们写一个Student类
public class Student {
    private String name;//两个成员变量
    private int age;
    
 //我们来获取这两个private类型的变量,getter/setter方法。因为他们是private类型
  //  可以使用快捷键alt+insert  生成getter/setter方法,光标放在要生成方法的变量上。
    public String getName() {     //有参构造
        return name;
    }
    public void setName(String name) {    //无参构造
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    
    //一个无参构造的方法
    public Student(){
        System.out.println("无参构造执行");
    }
    //一个有参构造的方法
    public Student(String name,int age){
        System.out.println("有参构造执行");
        this.name=name;
        this.age=age;
    }
}
写一个测试类调用
    package Day01;

public class DemoStudent {
    public static void main(String[] args) {
        Student stu1 = new Student();//调用时直接new,执行无参构造
        System.out.println("***************");

        Student stu2 = new Student("王八",20);//全参构造
        System.out.println("姓名:" + stu2.getName()+",年龄 :" + stu2.getAge());
        //如果需要改变对象中的成员变量的内容,仍然需要使用setXxxx方法
        stu2.setAge(21);
        System.out.println("姓名:" + stu2.getName()+",年龄 :" + stu2.getAge());
    }
}

有错误感谢指正。