本帖最后由 hello隔壁老李 于 2015-9-16 21:31 编辑
构造方法特点:
1,函数名与类名相同
2,不用定义返回值类型
3,没有具体的返回值
作用:
给对象进行初始化。
注意:
1,如果没有定义构造方法,系统会默认给出一个无参数构造方法
(public Person() { })
2,如果自己定义了构造方法,系统不再提供无参构造。
3,多个构造函数是以重载的形式存在的
4,构造方法重载.。其实就是构造方法接收不同的参数。
给私有成员变量赋值:
A:通过set方法。推荐使用set方法
B:通过构造方法。
例子:
/*构造方法:
1,方法名与类名相同
2,没有返回值类型
3,在方法中不能使用return返回一个值
构造方法的重载:与函数的一样,但是函数与返回类型无关,
构造方法无返回值类型,void也不能写。
私有成员变量赋值的两个方法:构造方法、set方法设置(推荐)
注意:无参数构造方法也可以在定义对象时,括号内加入你想的赋值即可。
思考:为什么推荐set方法赋值?
可能是构造方法在定义对象时,就给调用了。这需要在对象那里传进参数,
不好。而在set方法内,只对想传值的赋值即可。
*/
class DemoGouZao
{
public static void main(String[] args)
{
//无参数构造方法也可以赋值,直接赋值。
//GouZao g=new GouZao(22,"海");
GouZao g=new GouZao(); //调用无参数的构造方法
g.run(); //姓名和年龄为空
//这里是通过了构造方法初始化了私有变量
GouZao g2=new GouZao(18,"李雷"); //调用有参数的构造方法
g2.run(); //这里会输出,“我叫李雷,今年18岁”
//这里是利用set方法来初始化私有变量
GouZao g3=new GouZao();
g3.setAge(20);
g3.run(); //名字null,年龄20
GouZao g4=new GouZao(56);
}
}
class GouZao //定义一个构造类
{
private int age;
private String name;
public GouZao()
{
System.out.println("没有参数传入的构造方法");
}
GouZao(int r) //不带修饰符的构造方法
{
age=r;
System.out.println("年龄:"+age+"不带修饰符");
}
public GouZao(int a,String na) //带参数的构造方法
{
age=a; //赋值给本类中的变量
name=na;
System.out.println("age:"+age+" "+"name:"+name);
}
public void run() //定义一个方法
{
System.out.println("大家好,我叫"+name+",今年"+age+"岁");
}
public void setAge(int v) //定义set方法
{
age=v;
System.out.println("大家好,我叫"+name+",今年"+age+"岁,我喜欢哈哈大笑");
} }
/*public void GouZao() //这个不是构造方法
{
System.out.println("注意,构造方法没有返回值类型");
}*/
|
|