java面向对象
1、封装
封装把对象的所有组成部分组合在一起,封装定义程序如何引用对象的数据,封装实际上使用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度。 适当的封装可以让程式码更容易理解和维护,也加强了程式码的安全性。
封装即把一个对象的属性和行为的代码封装在一个类中。(属性指变量,行为指方法)
属性封装指把变量通过关键字private,protected和public实现封装
封装的简单例子:
// 方法封装
public void setWife(Woman wife) {
this.wife = wife;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
public class Woman {
// 属性封装
private String name;
private int age;
private Man husband;
// 方法封装
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Man getHusband() {
return husband;
}
public void setHusband(Man husband) {
this.husband = husband;
}
}
封装的作用
编辑
变量
1.局部变量
在成员方法内部定义的变量,仅作用于成员方法内
2.成员变量
在类的内部,成员方法外部定义的变量,作用于整个类
3.静态变量(由 static 修饰符 修饰)
在类的内部,成员方法外部定义的变量,作用于整个类
4.最终成员变量(由 final 修饰符 修饰)
一般在声明时要进行初始化,且不能改变
5.临时变量(由 transient 修饰符 修饰)
6.共享变量(由 volatile 修饰符 修饰)
继承
当子类定义的成员方法名称与父类相同,子类会覆盖隐藏父类的方法,也就是说子类在调用此方法时,默认调用他自己定义的方法(成员变量同理)
this和super关键字:this指的是所在类的当前对象,super指的是所继承的父类对象
super.变量名;(用来访问父类被隐藏的成员变量)
super.方法名;(用来调用父类中被重写的方法)
super.变量名;(用来调用父类的构造函数)
接口
子接口必须实现父接口的所有方法
定义一个接口和抽象类一样:只能定义常量,不能定义变量;只能定义抽象方法,不能实现方法(既不能有方法体);所声明的方法不加abstract也会被视为抽象方法