1 封装
- 面向对象的三大特征 : 封装, 继承, 多态 。
封装可以从三个层面理解
-
将属性和方法组合在一起(封闭在一起)
-
将属性隐藏起来, 对外提供可以间接操作属性的方法。(提高程序设计安全性)
目前我们都是属性私有化, 并提供与之对应的get和set方法
-
封装应用工具,为其他的程序员提供功能帮助。
属性的get和set方法
-
这是一种封装设计
-
但不是语法要求,是一种约定俗称。
-
一般的要求是,属性私有, 其对应的get和set方法就是在get和set后面连接属性名
java
class Goods{
private String gname ;
private String kind ;
private int price ;
private int count ;
//可以间接的为kind赋值
public void setKind(String kind){
this.kind = kind ;
}
//可以间接获得kind属性值
public String getKind(){
return kind ;
}
public void setGname(String gname){
this.gname = gname ;
}
public String getGname(){
return gname ;
}
}
class Test{
main(){
Goods g = new Goods();
//g.gname ; 无法直接访问
//g.kind ; 无法直接访问
g.setGname("可乐");// g.gname = "" ;
print( g.getGname() ) ; // print( g.gname ) ; getGname(g)
}
}
特殊的get和set方法
-
get和set方法的写法不一定完全一致。
javaclass A{ private int age ; public void setAge(String age){ this.age = Integer.parseInt(age) ; } }
-
boolean类型的属性,其get方法有些特别,是以is开头
javaclass A{ private boolean flag ; public void setFlag(boolean flag){ this.flag = flag ; } public boolean isFlag(){ return flag ; } }