黑马程序员技术交流社区
标题:
问一个关于构造器的问题??
[打印本页]
作者:
Gaara
时间:
2013-1-27 16:34
标题:
问一个关于构造器的问题??
我是一个新手,最近看到毕老师视频面向对象那部分。但刚开始挺明白,越往后越迷糊有一种云里雾里的感觉。
(可能是一下看太多了)
特别是构造器上面想问下:构造器是用来赋值初始化的。例如:
class Test{
public String name ="zhangsan";
}
这样直接赋值不行吗??
为什么要用构造器啊?还有构造器除了初始化外,没其他作用了??
作者:
vmvm555
时间:
2013-1-27 16:53
你这样写,程序就写死了,你不管new出多少对象他的name属性都是"zhangsan",构造器能动态的为对象的属性赋值,这样增加了程序的灵活性,另外,构造器也有重载的实现,通过不同的构造器创建出不同的属性值的对象来增加程序的灵活性
作者:
黄鸿达
时间:
2013-1-27 16:57
构造器就是提供一个可以修改成员变量的方法。比如你有个学生类,里面有名字,年龄之类的成员变量。然后通过传入参数,构造器就通过这些参数来进行成员变量的初始化。如果你这样直接赋值,就代表任何人都可以直接修改里面的值,涉及到安全性。通常成员变量都设private私有来保证外界不随意修改里面的值,而本类提供一些有限制的方法来让你赋值。
作者:
贾文泽
时间:
2013-1-27 17:20
class Test{
public String name ="zhangsan";
}
你这样写的话就把程序写死了,new出来的每一个对象的name都是“zhangsan”
但是通过构造函数传入变量的值初始化就一切OK了,每个人都有不同的名字
class Test{
private String name;
public void Test(){
this name=name;
}
}
Test stu1=new Test("zhangsan");
作者:
Gaara
时间:
2013-1-27 20:03
哦 谢谢大家回答了 明白了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2