面向?qū)ο蟮娜筇卣鳎?/p>
- 封裝
- 繼承
- 多態(tài)
封裝
public class Demo1 {
public static void main(String[]args){
Person lxl = new Person();
// id成員變量中加了一個(gè)private后吝岭,這個(gè)成員變量不能直接使用了岔留。
// lxl.id = 321;
lxl.name = "逗比";
// 這里出現(xiàn)了一個(gè)問(wèn)題咱旱,不符合生活邏輯黍衙,【解決方法看下面】
lxl.age = -16;
lxl.gender = '男';
// 通過(guò)函數(shù)進(jìn)行修改蛤售,獲取成員變量烘豹,有一個(gè)好處就是:【可以對(duì)傳入的值進(jìn)行判斷】
lxl.setId(10);
System.out.println("Name: " + lxl.name + " Age: " + lxl.age +
" Gender: " + lxl.gender + " id: " + lxl.getId());
}
}
/*
* 問(wèn)題:
* 代碼不會(huì)判斷你傳入的參數(shù)是否與生活實(shí)際有沖突
* 有一些代碼符合代碼邏輯誓焦,但是不符合生活邏輯
*
* 思考:
* 在對(duì)成員變量進(jìn)行復(fù)制的時(shí)候胆敞,基于語(yǔ)法規(guī)范的情況下,要對(duì)數(shù)據(jù)進(jìn)行
* 一定的約束和判斷,讓它符合生活邏輯
*
* 【封裝思想】
* 權(quán)限修飾符:
* public:公開(kāi)的移层,公用的仍翰。使用public修飾的成員變量或者說(shuō)成員方法任何人
* 都可以通過(guò)對(duì)象直接使用
*
* private:私有的。如果使用private修飾的成員變量或者說(shuō)成員方法只能在【類內(nèi)】
* 使用观话,類外誰(shuí)都不能用
*
* 【問(wèn)題】
* 用private修飾的成員變量和成員方法予借,類外都不能使用,那怎么給成員變量進(jìn)行賦值操作频蛔?
* 【解決方法 setter 和 getter方法】
* setter方法是提供給【類外】用來(lái)設(shè)置【私有化成員變量的方法】
* getter方法是提供給【類外】用來(lái)獲取【私有化成員變量的數(shù)據(jù)】
* 【面對(duì)傳入的成員變量不符合生活邏輯的問(wèn)題】
* 可以在setter方法中對(duì)傳入的值進(jìn)行判斷
* 【封裝的好處】
* 1. 提高代碼的安全性
* 2. 操作數(shù)據(jù)簡(jiǎn)單
* 3. 可以隱藏一部分代碼 JAR
* */
class Person{
// 成員變量
String name;
private int id;
int age;
char gender; // 性別
// 成員方法
public void winner(){
System.out.println("Winner winner chicken dinner");
}
/*
* 完成私有化成員變量的setter 和 getter方法
* setter(getter)方法的要求:
* set(get)成員變量名(所需參數(shù))
* 成員變量名首字母大寫(xiě)
* */
public void setId(int n){
id = n;
}
public int getId(){
return id;
}
}