黑马程序员技术交流社区

标题: 私有化问题 [打印本页]

作者: 奋斗的丫丫    时间: 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