面向?qū)ο蟮木幊陶Z(yǔ)言,擁有三大特性批钠,分別是:封裝宇植,繼承,多態(tài)埋心。
封裝:封裝是指將對(duì)象的狀態(tài)信息隱藏在對(duì)象內(nèi)部指郁,不允許外部程序直接訪問(wèn)對(duì)象內(nèi)部信息,而是通過(guò)該類所提供的方法來(lái)實(shí)現(xiàn)對(duì)內(nèi)部信息的操作訪問(wèn)
封裝的好處:
1:提高了安全性
2:提高了復(fù)用性
3:隱藏了實(shí)現(xiàn)細(xì)節(jié)
在賣你想對(duì)象的過(guò)程中踩窖,我們通過(guò)”權(quán)限控制”對(duì)封裝好的類加上權(quán)限坡氯,來(lái)限制外來(lái)者對(duì)類的操縱晨横,借以達(dá)到保障類中數(shù)據(jù)和方法的安全性的目的洋腮。而這種權(quán)限,可以用來(lái)控制屬性和方法的訪問(wèn)范圍
訪問(wèn)權(quán)限修飾符
修飾符 | 同一個(gè)類 | 同一個(gè)包 | 子類 | 所有類 |
---|---|---|---|---|
public 公有的 | √ | √ | √ | √ |
protected 受保護(hù)的 | √ | √ | √ | |
default 默認(rèn)的 | √ | √ | ||
private 私有的 | √ |
封裝的步驟如下:
1:盡量讓權(quán)限講到最低手形,在類里要將屬性前添加private修飾符啥供,從而而提高安全性
2:在類中定義 getter和setter方法,在方法內(nèi)設(shè)置取值范圍
3:最后库糠,在我們的main 函數(shù)里的對(duì)象伙狐,不能在直接調(diào)用屬性了涮毫,只能通過(guò)getter和setter方法進(jìn)行調(diào)用
封裝:
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));
}
}
上述案例:為了避免不斷地+操作,把兩數(shù)相加寫入add方法中贷屎,后續(xù)直接調(diào)用add方法罢防。把具體的操作流程統(tǒng)一管理在add方法中,該過(guò)程就是封裝的一種集體表現(xiàn)形式
類的封裝
public class Demo02 {
/**
* public 共有
* protected 受保護(hù)
* private 私有
*
* */
//把屬性私有化
private String name;
private int age;
//對(duì)外提供屬性的設(shè)置方法
public void setName(String name){
this.name = name;
}
//對(duì)外提供屬性的訪問(wèn)方法
public String getName(){
return this.name;
}
}
屬性的訪問(wèn)權(quán)限盡量給的很小
對(duì)外單獨(dú)提供訪問(wèn)方法
setName給屬性賦值
getName讀取屬性的值