一、构造方法的使用
- 构造方法又称为:构造函数、构造器、构建器 。
- 给成员变量赋初始值。
public class person {//创建人类这个类 int age; String name; int id; /* * 有参数的构造器 */ person(int age,String name,int id){//这里的变量为局部变量 this.age = age; //因为变量名相同需要使用this.来表示成员变量 this.name = name; //这样可以给变量赋初始值 在调用此构造方法的时候就可以直接调用到里面的值 this.id = id; } } class Student{//这里方便演示就写在一起了 创建了一个学生类 public static void main(String[] args) { person p = new person(); p.age = 20;//这里将局部变量的值传入了成员变量 p.id = 10; p.name = "小明"; //验证是否传入参数 //结果: 学号:20,id号:10,姓名:小明 得出结论参数传入 System.out.println("学号:" + p.age + ",id号:" + p.id + ",姓名:" + p.name); //这里输出结果:学号:0,id号:0,姓名:null
- 应该和类同名,并且没有返回值void也不用写。
class person{ person(int age,String name,int id){ this.age = age; this.name = name; this.id = id; } person(){//构造器他是没有返回值的 void也没有 } int person(int age,String name,int id){//没报错应为这里写了返回值他变成了方法并不是构造器 this.age = age; this.name = name; this.id = id; return 10; } }
- 在创建对象时被自动调用。
class person{ int age; String name; //系统会为person自动生成一个无参数的默认构造器 } class Student{ public static void main(String[] args) { person p = new person();//这里默认使用了无惨构造器 } }
- 在不写任何构造器的情况下会默认生成一个构造器,若自己写了构造器则默认的构造器就不再提供了。
public class person { int age; String name; int id; /* * 无惨构造器 //这样Student类中就不会报错!!!! */ person(){ } /* * 有参数的构造器 */ person(int age,String name,int id){ this.age = age; this.name = name; this.id = id; } } class Student{ public static void main(String[] args) { person p = new person();//报错应为这里的无惨构造器被写的有参构造器给替代了 //系统默认的无惨构造器就消失了 解决办法在person这个类中在写一个无惨构造器 //让系统自己去判断调用的是无参构造器 还是有参构造器!!!! } }