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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 奋斗的丫丫 中级黑马   /  2015-10-19 14:45  /  380 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

请问在一个类中,成员变量全部被私有化,提供相应的构造方法给成员变量初始化,这时还需要对外提供set或者get方法吗?以及具体的原因,谢谢!

4 个回复

倒序浏览
本帖最后由 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无法实现,构造函数没有返回值
回复 使用道具 举报
按实际需要来啊,一般都要写上哦,也许看起来似乎没用,但是以后要用时,总比跑到类里面去改内容好些吧?

比如你定义一个“人“类,人有体重的属性,你编写了一个构造函数,将体重设置为30kg到200kg,没有提供set方法。
突然哪天有个人,他体重250,咋整?回去改构造函数?那就破坏封装性了,但是你如果有set方法,就不需要回到人这个类去修改代码了,直接用set方法修改就可以了。这样就避免破坏了人类的封装性,因为如果你该构造函数,很可能造成其他代码出现问题。
回复 使用道具 举报
额  我是这样理解的    按照生物里面的界门纲目科属种

回复 使用道具 举报
可以不需要get/set方法提供,因为构造方法以给出。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马