概念
封装是面向对象编程三大特性之一,将程序具体的实现细节进行隐藏,只对可信的程序进行展示的过程称之为封装,(通过访问权限修饰符对类 变量 方法进行修饰 使其只对可见的类访问)
方法本身的书写就可以理解为封装,将某一功能具体实现的功能进行封装,对于使用方只提供服务,而不会展示内部实现细节
类的创建也是封装,将大量对象共有的属性与行为进行抽取,声明变量进行保存,使其可以作为对象创建的模板
现在大多数而言进行封装的概念就是对类的属性的封装,使用访问权限修饰符进行属性的修饰,使本类外部不能直接访问,提供公开的方法进行对应属性的设置与获取
访问权限修饰符
通过相应的访问权限修饰符关键字,对类、方法、属性进行修饰、进行相应权限的设置(现基本对属性进行封装)
public:所有的类都能有public访问说明符。你能从任何Java程序的任何对象里使用公有类、成员数据(属性)和方法。
private:只有本类的类对象才能访问的私有变量或方法,类内部成员之间可以访问;
protected:在类中被声明为保护的变量,方法能被其子类访问。
默认的:(default)假如没有规定访问说明符,那就是friendly的。拥有默认访问符的类、变量或方法对包里的所有类来说都是可访问的。
说明:在方法中的变量不能有访问说明符,因为该变量只能在该方法中使用,外界无法访问。
修饰符修饰类
由于类是用于创建对象,所以类只能使用public 和默认进行修饰
修饰符修饰方法
在程序执行过程中,往往需要进行很多方法的调用,或进行方法的依次调用,但是如果方法全部公开,可能会出现一些安全性的问题
方法的修饰可以使用任意访问修饰符,根据实际需求而定
一般使用private进行私有化(只有当前类可以使用),被私有的方法只能在当前类中使用,所以必须有一个被public修饰的方法执行中调用这个方法,否则会提示警告
修饰符修饰属性
由于类与方法的特殊性,所以java中对于封装的使用最多的就是属性的封装,所以现在有些概念已经将封装就定义为对属性的封装,使用private修饰属性,是属性私有,对外部不可见,然后通过定义公开的方法对这些属性进行获取与赋值
封装后类的书写(实例)
//教师类
public class Teacher {
//所有属性使用private进行修饰
private String name;//姓名
private int age;//年龄
private String sex;//性别
private int sutdyAge;//教龄
//无参构造方法
public Teacher() {
}
//全参构造方法
public Teacher(String name, int age, String sex, int sutdyAge) {
this.name = name;
this.age = age;
this.sex = sex;
this.sutdyAge = sutdyAge;
}
//为私有属性设置getter与setter方法
//获取方法
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 String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getSutdyAge() {
return sutdyAge;
}
public void setSutdyAge(int sutdyAge) {
this.sutdyAge = sutdyAge;
}
}