构造器一些基础语法见前面的笔记
l 构造器:
作用:
当创建一个对象的时候系统会初始化对象属性,如果没有给对象属性赋值那么它就是默认值,构造器的作用就是初始化(就是赋值)这个对象属性的值,这就是的构造器作用。
构造器主要用于被其他方法调用,用以返回该类的实例,因而通常把构造器设置成public访问权限,从而允许系统中任何位置的类来创建该类的对象。除非不想让其他类创建该类的对象就不要用public。
·如果你没有提供构造器,系统默认带有一个不带参数的构造器,但是当你显示的创建了一个构造器后系统则不提供默认的构造器了,你可以自己在显示的添加一个不带参数的构造器。
例子:
public class ConstructorTest
{
publicString name;
publicint count;
publicConstructorTest(String name, int count) //构造器
{
this.name= name;
this.count= count;
}
publicstatic void main(String[] args)
{
ConstructorTestcon = new ConstructorTest("Fengqiang",111); //第一次给构造器传值,name=Fengqiang, count=111
System.out.println(con.name);
System.out.println(con.count);
ConstructorTestcon1 = new ConstructorTest("Nina",222); //第二次给构造器传值,name=”Nina”,count=222 ,现在就是利用构造器方便给对象属性初始化了,这就是构造器的作用。
System.out.println(con1.name);
System.out.println(con1.count);
}
}
l 构造器重载
构造器名字相同都跟类名一样,参数(参数个数或类型)不相同我们就说这是构造器重载。当你要多次初始化不同数量的对象属性时候可以使用构造器重载,因为这样给对象属性赋值方便些。
例子:
public class ConstructorTest
{
publicString name;
publicint count;
publicConstructorTest(String name)
{
this.name= name;
this.count= count;
}
publicConstructorTest(String name, int count)
{
this.name= name;
this.count= count;
}
publicstatic void main(String[] args)
{
ConstructorTestcon = new ConstructorTest("Nina");
System.out.println(con.name);
System.out.println(con.count);
ConstructorTestcon1 = new ConstructorTest("Fengqiang",333);
System.out.println(con1.name);
System.out.println(con1.count);
}
}
·构造器B代码,包含构造器A的所有代码,用this调用相应的构造器的初始化代码。
语法: this(参数列表)
作用:
使用this调用另一个重载的构造器只能在构造器中使用,且必须作为构造器执行体的第一条语句。使用this调用重载的构造器时,系统根据this括号中的实际参数调用与之对应的形式参数列表的重载构造器。首先这样可以少些代码,其次当一个构造器中的代码修改后,不需要修改其他重载构造器中的代码。
软件程序规则:不要把相同的代码书写两次以上。
例子:
public class ConstructorTest
{
publicString name;
publicint count;
publicdouble weight;
publicConstructorTest(String name)
{
this.name= name;
}
publicConstructorTest(String name, int count)
{
this(name); //调用形式参数列表为name的重载构造器初始化代码。
this.count= count;
}
publicConstructorTest(String name, int count, double weight)
{
this(name,count); //调用形式参数列表为name,count的重载构造器初始化代码。
this.weight= weight;
}
publicstatic void main(String[] args)
{
ConstructorTestcon = new ConstructorTest("Nina");
System.out.println(con.name);
System.out.println(con.count);
System.out.println(con.weight);
System.out.println("");
ConstructorTestcon1 = new ConstructorTest("Fengqiang",333);
System.out.println(con1.name);
System.out.println(con1.count);
System.out.println(con1.weight);
System.out.println("");
ConstructorTestcon2 = new ConstructorTest("okay",333,1.2345);
System.out.println(con2.name);
System.out.println(con2.count);
System.out.println(con2.weight);
}
}