面向对象编程有三大特征分别为:
-
封装
-
继承
-
多态
封装
什么是封装?
- Java中的封装是指一个类把自己内部的实现细节进行隐藏,只暴露对外的公开的方法(setter和getter方法)。封装又分为属性的封装和方法的封装。把属性定义为私有的,它们通过setter和getter方法来对属性的值进行设定和获取。
- 封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。
封装的好处
- 可以对成员变量进行更精确的控制。
- 可以对数据进行验证,隐藏实现细节 --类内部的结构可以自由修改。
- 封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。
java访问修饰符
java的访问修饰符有四种分别为:
1)public修饰符,它具有最大的访问权限,可以访问任何的类、接口、等。
2)protected修饰符,受保护的,访问范围 :本类,派生类(跨包继承的派生类可以访问)、同包类.它主要的作用就是用来保护子类的有继承关系的才能访问。
3)default修饰符,它是针对本包访问而设计的,任何处于本包下的类、接口、等,都可以相互访问,即使是父类没有用protected修饰的成员也可以。
4)private修饰符,它的访问权限仅限于类的内部,是一种封装的体现,例如,大多数的成员变量都是修饰符为private的,它们不希望被其他任何外部的类访问。
以表格的形式可以很明显就可以看出他们的权限大小
(1)public:可以被所有其他类所访问。
(2)private:只能被自己访问和修改。
(3)protected:自身,子类及同一个包中类可以访问。
(4)default(默认):同一包中的类可以访问,声明时可以不写
封装的实现步骤
-
封装:
-
类:封装的是对象的属性和行为
- --将属性进行私有化private[其他类不能直接修改属性]
- --提供一个共有的(public)set+属性名方法,用于对属性判断并赋值
- --提供一个公共的(public)get+属性名的方法,用于获取属性的值.
-
方法:封装的是具体的业务逻辑功能实现
-
访问控制修饰符:封装的是具体的访问权限
-
注意:要实现类的封装需要先了解 java 访问修饰符.
程序演示
将属性进行私有化
public class Demo {
private String name;
private int age;
}
提供一个共有的(public)set+属性名方法,用于对属性判断并赋值
public class Demo {
private String name;
private int age;
//通过公开的 get方法获取属性name的值;
public String getName() {
return name;
}
//通过公开的set方法有条件的修改属性name的值;
public void setName(String name) {
if (name.isEmpty() ) {
this.name = name;
}
}
public int getAge() {
return age;
}
public void setAge(int age) {
if (age>1&&age<120) {
this.age = age;
}
}
}