Java对象的三要素:
封装、继承、多态
封装
什么是封装?
用笔记本电脑举例:把电脑用外壳包装起来,我们看不到电脑内部的零件,且不能对其进行随意更改,只能通过键盘对电脑进行操作
好处:安全性好。
封装的步骤:
为了保证对象的age属性的安全,我们需要使用封装机制。实现封装的步骤是什么?
-
第一步:属性私有化。(什么是私有化?使用 private 进行修饰。)
-
属性私有化的作用是:==禁止外部程序对该属性进行随意的访问。==
-
==所有被private修饰的,都是私有的,私有的只能在本类中访问。==
-
第二步:对外提供setter和getter方法。
-
为了保证外部的程序仍然可以访问age属性,因此要对外提供公开的访问入口。
-
访问一般包括两种:
-
读:读取属性的值
-
改:修改属性的值
-
那么应该对外提供两个方法,一个负责读,一个负责修改。
-
读方法的格式:getter
-
public int getAge(){}
-
改方法的格式:setter
-
public void setAge(int age){}
-
**==第三步:对getter和setter方法设置条件==**,即通过if语句,设置条件,只有符合要求的才可以对属性进行读或者修改。
学习封装以后,我们再写程序时都需要遵守属性私有化的约束,这是为了程序的安全性。
public class User {
private int age;
// 读取age属性的值
// getter方法是绝对安全的。因为这个方法是读取属性的值,不会涉及修改操作。
public int getAge(){
//return this.age;
return age;
}
// 修改age属性的值
// setter方法当中就需要编写拦截过滤代码,来保证属性的安全。
/*public void setAge(int num){
//this.age = num;
if(num < 0 || num > 100) {
System.out.println("对不起,您的年龄值不合法!");
return;
}
age = num;
}*/
// java有就近原则。这种写法是为了提高程序的可读性!!!
public void setAge(int age){
if(age < 0 || age > 100) {
System.out.println("对不起,您的年龄值不合法!");
return;
}
// this. 大部分情况下可以省略。
// this. 什么时候不能省略?用来区分局部变量和实例变量的时候。
this.age = age;
}
}
从程序可知:年龄的设置范围为[0,120]