java面向对象之封装
封装:把类的属性和方法隐藏起来的一个过程
Java中通过将数据声明为私有的(private),再提供公共的(public)方法:getXxx()和setXxx()实现对该属性的操作,以实现下述目的:
隐藏一个类中不需要对外提供的实现细节;
使用者只能通过事先定制好的方法来访问数据,可以方便地加入控制逻辑,限制对属性的不合理操作;
便于修改,增强代码的可维护性;
利于分工合作
public class Animal{
private int legs; //将属性legs定义为private,只能被Animal类内部访问
public void setLegs(int i){ //编写setLegs方法允许修改成员变量
if (i != 0 && i != 2 && i != 4){ //可以在方法里对属性就行控制
System.out.println("Wrong number of legs!");
return;
}
legs=i;
}
public int getLegs(){ //编写getLegs方式,允许获取成员变量
return legs; //返回legs的值
}
}
Java权限修饰符public(公开的)、protected(受保护的)、private(私有的),和默认的(不写)置于类的成员定义前,用来限定对象对该类成员的访问权限.
修饰符 |
本类 |
同一个包 |
不同包子类 |
不同包非子类 |
private |
V |
|||
默认的(不写) |
V |
V |
||
protected |
V |
V |
V |
|
public |
V |
V |
V |
V |
静态方法里不能直接访问非静态的属性和方法。