Java面向对象的三大特征:封装、继承、多态。
一、封装
1、定义
- 封装是一种隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读取和修改的访问级别的方法。
2、步骤
- 修改属性的可见性来限制对属性的访问。
- 为每个属性创建一对赋值和取值方法,用于对这些属性的访问。
- 在赋值和取值方法中,加入对属性的存取限制。
3、优点
- 便于使用者正确、方便的使用系统,防止使用者错误修改系统属性。
- 有助于建立各个系统之间的松耦合关系。
- 提高软件的可重用性。
- 降低了大型系统的风险,即便整个系统不成功,个别独立的子系统有可能还有价值。
4、栗子
package fjchr;
public class FJC {
//private对类本身可见,对属性的封装我的姓名、性别、年龄都是我的私有属性。
//private static是合法的,且有着其独到的用处:为静态方法提供私有静态属性。
private static String name;
private static String sex;
private static int age;
//通过setXX()给变量赋值
public void setName(String name) {
this.name=name;
}
//通过getXX()读取变量的值
public static String getName() {
return name;
}
public void setSex(String sex) {
this.sex=sex;
}
public static String getSex() {
return sex;
}
public void setAge(int age) {
this.age=age;
}
public static int getAge() {
return age;
}
public static void main(String[] args) {
FJC fjc=new FJC();
//通过赋值接口给name,sex,age赋值。
fjc.setName("范璟琛");
fjc.setSex("男");
fjc.setAge(18);
//通过取值接口输出name,sex,age。
System.out.println(getName());
System.out.println(getSex());
System.out.println(getAge());
}
}
- 分析:
- 为了实现良好的封装,我们通常将类的成员变量声明为private,在通过public方法来对这个变量来访问。对一个变量的操作,一般有读取和赋值2个操作,,我们分别定义2个方法来实现这2个操作,一个是getXX()(XX表示要访问的成员变量的名字)用来读取这个成员变量,另一个是setXX()用来对这个变量赋值。
- 运行结果为
范璟琛
男
18
5、构造方法、setXX
- 栗子
package fjchr;
class Fu {
private int age;
private String name;
//构造方法
public Fu(int age,String name){
this.age=age;
this.name=name;
System.out.println(name+age);
}
}
class Zi{
private int age;
private String name;
//封装setXX(),getXX()。
public void setAge(int age) {
this.age=age;
}
public