面向对象的编程语言,拥有三大特性,分别是:封装,继承,多态。
封装:封装是指将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,而是通过该类所提供的方法来实现对内部信息的操作访问
封装的好处:
1:提高了安全性
2:提高了复用性
3:隐藏了实现细节
在卖你想对象的过程中,我们通过”权限控制”对封装好的类加上权限,来限制外来者对类的操纵,借以达到保障类中数据和方法的安全性的目的。而这种权限,可以用来控制属性和方法的访问范围
访问权限修饰符
修饰符 | 同一个类 | 同一个包 | 子类 | 所有类 |
---|---|---|---|---|
public 公有的 | √ | √ | √ | √ |
protected 受保护的 | √ | √ | √ | |
default 默认的 | √ | √ | ||
private 私有的 | √ |
封装的步骤如下:
1:尽量让权限讲到最低,在类里要将属性前添加private修饰符,从而而提高安全性
2:在类中定义 getter和setter方法,在方法内设置取值范围
3:最后,在我们的main 函数里的对象,不能在直接调用属性了,只能通过getter和setter方法进行调用
封装:
public class Demo01 {
public static int add( int a,int b){
return a+b;
}
public static void main(String[] args) {
System.out.println(1+1);
System.out.println(1+2);
System.out.println(1+3);
System.out.println(1+4);
System.out.println(1+5);
System.out.println(1+6);
System.out.println(add(1,1));
System.out.println(add(1,2));
System.out.println(add(1,3));
}
}
上述案例:为了避免不断地+操作,把两数相加写入add方法中,后续直接调用add方法。把具体的操作流程统一管理在add方法中,该过程就是封装的一种集体表现形式
类的封装
public class Demo02 {
/**
* public 共有
* protected 受保护
* private 私有
*
* */
//把属性私有化
private String name;
private int age;
//对外提供属性的设置方法
public void setName(String name){
this.name = name;
}
//对外提供属性的访问方法
public String getName(){
return this.name;
}
}
属性的访问权限尽量给的很小
对外单独提供访问方法
setName给属性赋值
getName读取属性的值