一、构造方法
构造方法又叫构造器
(constructor)
,是类的一种特殊的方法,它的主要作用是完成对新对象的初始化。它有几个特点:
1)
方法名和类名相同
2)
没有返回值
3) 在创建对象时,系统会自动的调用该类的构造器完成对象的初始化。
构造方法又叫构造器
(constructor)
,是类的一种特殊的方法,它的主要作用是完成对新对象的初始化。它有几个特点:
1)
方法名和类名相同
2)
没有返回值
3)
在创建对象时,系统会自动的调用该类的构造器完成对象的初始化。
二、无参构造
[修饰符] 方法名(无形参列表){
方法体;
}
如果程序员没有定义构造器,系统会自动给类生成一个默认无参构造器
(
也叫默认构造器),
一旦定义了自己的构造器
,默认的构造器就覆盖了,就不能再使用默认的无参构造器。所以代码里面添加一个public Student(){}。
package cn.cnbdqn.subject1;
public class Student {
public String name;
public int age;
public char gender;
public String address;
public double height;
public double weight;
public String hobby;
//无参构造
public Student(){}
//定义一个方法输出所有对象信息
public void printInfo(){
System.out.println("学生信息:姓名:"+name+",年龄"+age+",性别"+gender+",身高"+height+",体重"+weight+",爱好"+hobby);
}
}
测试类:
package cn.cnbdqn.subject1;
public class Test {
public static void main(String[] args) {
Student stu=new Student();
stu.name="张";
stu.age=12;
stu.gender='男';
stu.address="合肥";
stu.height=145.3;
stu.weight=111.5;
stu.hobby="刷痘印";
stu.printInfo();
}
}
无参构造测试时比较麻烦,可以用有参构造方法。
三、有参方法
在创建对象的时候完成属性的初始化操作。
语法:
[修饰符] 方法名(有形参列表){
方法体;
}
package cn.cnbdqn.subject1;
public class Student {
public String name;
public int age;
public char gender;
public String address;
public double height;
public double weight;
public String hobby;
//无参构造
public Student(){}
//有参构造方法
public Student(String name, int age, char gender, String address, double height, double weight, String hobby) {
this.name = name;
this.age = age;
this.gender = gender;
this.address = address;
this.height = height;
this.weight = weight;
this.hobby = hobby;
}
//定义一个方法输出所有对象信息
public void printInfo(){
System.out.println("学生信息:姓名:"+name+",年龄"+age+",性别"+gender+",身高"+height+",体重"+weight+",爱好"+hobby);
}
}
如果没有this,那么就是name=name;等最后运行结果都是空,this是指当前的对象赋值,构造器的name,age,denger是局部变量,而不是属性。所以需要this来解决。简单来说哪个对象来调用,this就代表哪个对象。
测试类:
package cn.cnbdqn.subject1;
public class Test {
public static void main(String[] args) {
Student stu=new Student();
stu.name="张";
stu.age=12;
stu.gender='男';
stu.address="合肥";
stu.height=145.3;
stu.weight=111.5;
stu.hobby="刷痘印";
stu.printInfo();
//有参构造测试
Student stu2=new Student("张三",12,'男',"芜湖",123.5,56,"看美女");
stu2.printInfo();
}
}
四、This的注意事项
1) this
关键字可以用来访问本类的属性、方法、构造器
2) this
用于区分当前类的属性和局部变量
3)
访问成员方法的语法:
this.
方法名
(
参数列表
);
4) this 不能在类定义的外部使用,只能在类定义的方法中使用。