黑马程序员技术交流社区
标题:
私有化问题
[打印本页]
作者:
奋斗的丫丫
时间:
2015-10-19 14:45
标题:
私有化问题
请问在一个类中,成员变量全部被私有化,提供相应的构造方法给成员变量初始化,这时还需要对外提供set或者get方法吗?以及具体的原因,谢谢!
作者:
bukai123
时间:
2015-10-19 15:09
本帖最后由 bukai123 于 2015-10-19 15:10 编辑
根据需求来的处理实际问题,
class Cat
{
private String name ;
Cat(String name )
{
this.name = name ;
System.out.println(name );
}
}
---------------------------当 Cat c = new Cat("ABC");//可以给name属性赋值,
但没有对外的函数提供get,set,如果想要获取c的name无法实现,构造函数没有返回值
作者:
罗志辉
时间:
2015-10-19 16:09
按实际需要来啊,一般都要写上哦,也许看起来似乎没用,但是以后要用时,总比跑到类里面去改内容好些吧?
比如你定义一个“人“类,人有体重的属性,你编写了一个构造函数,将体重设置为30kg到200kg,没有提供set方法。
突然哪天有个人,他体重250,咋整?回去改构造函数?那就破坏封装性了,但是你如果有set方法,就不需要回到人这个类去修改代码了,直接用set方法修改就可以了。这样就避免破坏了人类的封装性,因为如果你该构造函数,很可能造成其他代码出现问题。
作者:
罗志辉
时间:
2015-10-19 16:17
额 我是这样理解的 按照生物里面的界门纲目科属种
作者:
土豆丝
时间:
2015-10-19 18:36
可以不需要get/set方法提供,因为构造方法以给出。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2