1. 封装
1.什么是封装
面向对象三大特点:封装,继承,多态
所谓的封装,就是为了 解决java代码经量完全还原现实世界,而不会和原来世界造成冲突。这种冲突的产生往往是对于属性的直接赋值,也就是说,如果直接对属性赋值,那么就会缺少约束条件,那么就容易造成与现实世界不相符的特征,因此封装是对于属性赋值加上约束条件。换句话说,就是把属性放在方法里面,调用属性就只能从调用方法获得,这就是封装封装的实现方法:
1.private私有化
2.set和get方法
3.set方法中设置约束条件
比如:世界上没有三条腿的青蛙,这是一个正确命题!因此我们来代码实现对属性leg的封装
package 封装;
public class Fog {
int leg;
}
package 封装;
public class test {
//如果直接对属性赋值,那么java代码就可能使得出现三条腿的青蛙,这是与世界不符合的
public static void main(String[] args) {
Fog f =new Fog();
f.leg = 3;
System.out.println("这是"+f.leg+"条腿的青蛙");
}
}
//console
这是3条腿的青蛙
//以上是错误的,这与世界一些法则出现了冲突
//看以下代码
package 封装;
public class Fog {
private int leg;
//当使用provate私有的时候,一般对外会有一个公共方法,也就是对于属性的操作==>封装的第一步
public void setLeg(int leg) {
if(leg%2!=0) {
System.out.println("这个世界上没有奇数条腿的青蛙");
}else {
this.leg = leg;
}
}
//提供一个公共方法来获得私有属性
public int getLeg() {
return this.leg;
}
}
package 封装;
public class test {
//如果直接对属性赋值,那么java代码就可能使得出现三条腿的青蛙,这是与世界不符合的
public static void main(String[] args) {
Fog f =new Fog();
f.setLeg(3);
System.out.println("这是"+f.getLeg()+"条腿的青蛙");
}
}
//console
这个世界上没有奇数条腿的青蛙
这是0条腿的青蛙
public class test {
//如果直接对属性赋值,那么java代码就可能使得出现三条腿的青蛙,这是与世界不符合的
public static void main(String[] args) {
Fog f =new Fog();
f.setLeg(4);
System.out.println("这是"+f.getLeg()+"条腿的青蛙");
}
}
//console
这是4条腿的青蛙