1.构造器:
作用:
当创建一个对象的时候系统会初始化对象属性,如果没有给对象属性赋值那么它就是默认值,构造器的作用就是初始化(就是赋值)这个对象属性的值,这就是的构造器作用。
构造器主要用于被其他方法调用,用以返回该类的实例,因而通常把构造器设置成public访问权限,从而允许系统中任何位置的类来创建该类的对象。除非不想让其他类创建该类的对象就不要用public。
·如果你没有提供构造器,系统默认带有一个不带参数的构造器,但是当你显示的创建了一个构造器后系统则不提供默认的构造器了,你可以自己在显示的添加一个不带参数的构造器。
示例:
public class Qing {
//变量
public String name;
public int count;
//创建一个构造器
public Qing(String name, int count){
this.name = name;
this.count =count;
}
}
public class Qing1 {
public static void main(String[] args){
Qing t = new Qing("陶晓聪",19);
//第一次穿值给构造器
System.out.println(t.name);
System.out.println(t.count);
Qing t1 = new Qing("罗潇",29);
//第二次传值给构造器
System.out.println(t1.name);
System.out.println(t1.count);
}
}
2.构造器重载
构造器名字相同都跟类名一样,参数(参数个数或类型)不相同我们就说这是构造器重载。当你要多次初始化不同数量的对象属性时候可以使用构造器重载,因为这样给对象属性赋值方便些。
示例:
public class Niao {
public String name;
public int count;
public Niao(String name){
this.name = name;
this.count = count;
}
public Niao(String name,int count) {
this.name = name;
this.count = count;
}
}
public class Niao1 {
public static void main(String[] args){
Niao t = new Niao("陶晓聪");
System.out.println(t.name);
System.out.println(t.count);
//构造器重载
Niao t1 = new Niao("罗潇",29);
System.out.println(t1.name);
System.out.println(t1.count);
Niao t2 = new Niao("王涛");
System.out.println(t2.name);
System.out.println(t2.count);
}
}
3.构造器B代码,包含构造器A的所有代码,用this调用相应的构造器的初始化代码。
语法: this(参数列表)
作用:
使用this调用另一个重载的构造器只能在构造器中使用,且必须作为构造器执行体的第一条语句。使用this调用重载的构造器时,系统根据this括号中的实际参数调用与之对应的形式参数列表的重载构造器。首先这样可以少些代码,其次当一个构造器中的代码修改后,不需要修改其他重载构造器中的代码。
示例
public class Bei {
public String name;
public int age;
public double weight;
public Bei(String name){
this.name = name;
}
public Bei(String name,int age){
this(name);//复用
this.age = age;
}
public Bei(String name, int age, double weight){
this(name,age);
this.weight = weight;
}
}
public class Bei1 {
public static void main(String[] args) {
Bei t = new Bei("陶晓聪");
System.out.println(t.name);
System.out.println(t.age);
System.out.println(t.weight);
System.out.println("");
Bei t1 = new Bei("陶晓聪",19);
System.out.println(t1.name);
System.out.println(t1.age);
System.out.println(t1.weight);
System.out.println("");
Bei t2 = new Bei("陶晓聪");
t2.age = 19;
t2.weight = 200;
System.out.println(t2.name + "今年" +t2.age +"岁" + "是个" + t2.weight + "斤" + "的胖子!");
}
}