A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Gaara 高级黑马   /  2013-1-27 16:34  /  1207 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我是一个新手,最近看到毕老师视频面向对象那部分。但刚开始挺明白,越往后越迷糊有一种云里雾里的感觉。
(可能是一下看太多了)

特别是构造器上面想问下:构造器是用来赋值初始化的。例如:
class  Test{
           public String name ="zhangsan";
}

这样直接赋值不行吗??

为什么要用构造器啊?还有构造器除了初始化外,没其他作用了??

评分

参与人数 1技术分 +1 收起 理由
Rancho_Gump + 1

查看全部评分

4 个回复

倒序浏览
你这样写,程序就写死了,你不管new出多少对象他的name属性都是"zhangsan",构造器能动态的为对象的属性赋值,这样增加了程序的灵活性,另外,构造器也有重载的实现,通过不同的构造器创建出不同的属性值的对象来增加程序的灵活性
回复 使用道具 举报
构造器就是提供一个可以修改成员变量的方法。比如你有个学生类,里面有名字,年龄之类的成员变量。然后通过传入参数,构造器就通过这些参数来进行成员变量的初始化。如果你这样直接赋值,就代表任何人都可以直接修改里面的值,涉及到安全性。通常成员变量都设private私有来保证外界不随意修改里面的值,而本类提供一些有限制的方法来让你赋值。
回复 使用道具 举报
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");
回复 使用道具 举报
哦 谢谢大家回答了  明白了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马