为什么我们要尽量把属性设为private

对于一些初学者也许对于为什么有些属性设置为private访问权限有点不是很理解,今天我在看actionscript3.0时同样讲到了这么一个问题,今后会把actionscript3.0与java的一些异同在本博进行粗略的比较,由于本人能力有限,而且也正处于学的阶段,对一些东西只能谈谈自己的理解,有什么不对的地方还望各位高人指出来。大家一起学习进步...
as与java同是面向对象的一门编程语言,当然好些地方都是类似的,比如接下面我要谈的关于属性权限的讨论。
大家都知道设置了private权限的属性对外是不能直接访问的,我们当然可以设置为public访问权限,这样的话我们可以对他们直接进行赋值等操作,即通过(实例对象.属性名)来访问该属性,但是设想这样一个场景,对于其赋值我们可以随便赋值什么,这个值也许可以是空值或者是特别长的一个字符串等,这样一来的话,我们可能实际需要的并不是这样的赋值,我们需要的可能是非空的并且长度不超过10个字符的字符串,这样如果我们直接赋值的话很难满足我们的要求,但是我们通过get,set方法来存取属性值的话,那就方便些了,当然我们大多情况下都类似下面的方法
   
public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

但是我们有时根据我们的需要而要进行必要的修饰,即对我们的值是有要求的。我们可以在我们的get,set方法中进行这一切,这样既进行了所谓的封装,又能进行必要的操作。如下我们是对输入的名字为空则设置默认的名字,并且是要长度不能超过20,如果超过20就截取前面20个字符

public void setName(String name) {
if("".equals(name)){
this.name="DefaultName";
}else if(name.length()>20){
this.name=name.substring(0, 20);
}else{
this.name = name;
}
}

这样就能达到我们的目的了,所以我们一般都是将我们的属性设置为private属性的。

你可能感兴趣的:(java)