/* 构造方法是专门用来创建对象的方法,当我们通过关键字new来创建对象时,其实就是在调用构造方法。 格式: public 类名称(参数类型 参数名称) { 方法体 }
/* 注意事项: 1. 构造方法的名称必须和所在的类名称完全一样,就连大小写也要一样 2. 构造方法不要写返回值类型,连void都不写 3. 构造方法不能return一个具体的返回值 4. 如果没有编写任何构造方法,那么编译器将会默认赠送一个构造方法,没有参数、方法体什么事情都不做。 public Student() {} 5. 一旦编写了至少一个构造方法,那么编译器将不再赠送。 6. 构造方法也是可以进行重载的。 重载:方法名称相同,参数列表不同。 */
构造方法类似于:Python对象初始化的“重写”
1 public class Demo02Student { 2 3 public static void main(String[] args) { 4 Student stu1 = new Student(); // 无参构造 5 System.out.println("============"); 6 7 Student stu2 = new Student("赵丽颖", 20); // 全参构造 8 System.out.println("姓名:" + stu2.getName() + ",年龄:" + stu2.getAge()); 9 // 如果需要改变对象当中的成员变量数据内容,仍然还需要使用setXxx方法 10 stu2.setAge(21); // 改变年龄 11 System.out.println("姓名:" + stu2.getName() + ",年龄:" + stu2.getAge()); 12 13 } 14 15 }
1 public class Student { 2 3 // 成员变量 4 private String name; 5 private int age; 6 7 // 无参数的构造方法 8 public Student() { 9 System.out.println("无参构造方法执行啦!"); 10 } 11 12 // 全参数的构造方法 13 public Student(String name, int age) { 14 System.out.println("全参构造方法执行啦!"); 15 this.name = name; 16 this.age = age; 17 } 18 19 // Getter Setter 20 public void setName(String name) { 21 this.name = name; 22 } 23 24 public String getName() { 25 return name; 26 } 27 28 public void setAge(int age) { 29 this.age = age; 30 } 31 32 public int getAge() { 33 return age; 34 } 35 36 }