久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

封裝和private關(guān)鍵字

 潘仕城 2018-09-11
封裝和private關(guān)鍵字
2016年10月11日 00:07:01 閱讀數(shù):1628
/*

private:

是一個(gè)權(quán)限修飾符

可以修飾成員變量和成員方法

被其修飾的成員只能在本類中被訪問(wèn)

*/

class Demo {

//int num = 10;

//用private修飾

private int num = 10;

public void show() {

System.out.println(num);

}

private void method() {

System.out.println("method");

}

public void function() {

method();

}

}

 

class PrivateDemo {

public static void main(String[] args) {

Demo d = new Demo();

//不能方法私有的成員變量

//System.out.println(d.num);

d.show();

//不能訪問(wèn)私有的成員方法

//d.method();

d.function();

}

}

 





/*
定義一個(gè)學(xué)生類:
成員變量:name,,age
成員方法:show()方法

我們?cè)谑褂眠@個(gè)案例的過(guò)程中,,發(fā)現(xiàn)了一個(gè)問(wèn)題:
通過(guò)對(duì)象去給成員變量賦值,可以賦值一些非法的數(shù)據(jù),。
這是不合理的,。
應(yīng)該是這個(gè)樣子的:在賦值之前,,先對(duì)數(shù)據(jù)進(jìn)行判斷,。
判斷到底在哪里做比較合適呢?
StudentDemo類是一個(gè)測(cè)試類,,測(cè)試類一般只創(chuàng)建對(duì)象,,調(diào)用方法,。 
所以,,這個(gè)判斷應(yīng)該定義在Student類中,。
而我們?cè)诔蓡T變量的位置可不可以進(jìn)行數(shù)據(jù)判斷呢?
是不可以的,,因?yàn)樽鰯?shù)據(jù)校驗(yàn),,必須要依靠一些邏輯語(yǔ)句。
邏輯語(yǔ)句是應(yīng)該定義在方法中的,,所以,,我們最終決定在Student類中提供一個(gè)方法
來(lái)對(duì)數(shù)據(jù)進(jìn)行校驗(yàn),。

按照我們前面的分析,,我們給出了一個(gè)方法進(jìn)行校驗(yàn),。
但是呢,,它偏偏不調(diào)用方法來(lái)賦值,,還是直接賦值了,
這樣我們的方法就沒(méi)有起到作用,。
我就應(yīng)該要求你必須使用我的方法,而不能直接調(diào)用成員變量賦值,。
怎么去強(qiáng)制要求不能直接使用成員變量呢?
針對(duì)這種情況,,Java就提供了一個(gè)關(guān)鍵字 private

private:私有的??梢孕揎棾蓡T變量和成員方法,。
注意:被private修飾的成員只能在本類中訪問(wèn),。

其實(shí)我講到現(xiàn)在講解的是一個(gè)封裝的思想,。
封裝:是指隱藏對(duì)象的屬性和實(shí)現(xiàn)細(xì)節(jié),,僅對(duì)外提供公共訪問(wèn)方式,。
*/
class Student {
//姓名
String name;
//年齡
private int age;

//寫(xiě)一個(gè)方法對(duì)數(shù)據(jù)進(jìn)行校驗(yàn)
/*
返回值類型:void
參數(shù)列表:int a
*/
public void setAge(int a) {
if(a < 0 || age > 120) {
System.out.println("你給的年齡有問(wèn)題");
}else {
age = a;
}
}


//show()方法,顯示所有成員變量值
public void show() {
System.out.println("姓名:"+name);
System.out.println("年齡:"+age);
}
}


class StudentDemo {
public static void main(String[] args) {
//創(chuàng)建學(xué)生對(duì)象
Student s = new Student();
s.show();
System.out.println("--------------");

//給成員變量賦值
s.name = "林青霞";
//s.age = 27;
s.setAge(27);
s.show();
System.out.println("--------------");

//給age賦值
//s.age = -27; //這個(gè)數(shù)據(jù)是不合理的
//通過(guò)方法給值
s.setAge(-27);
s.show();
System.out.println("--------------");
}
}



/*

封裝和private的應(yīng)用:

A:把成員變量用private修飾

B:提高對(duì)應(yīng)的getXxx()和setXxx()方法

*/

//定義學(xué)生類

class Student {

//姓名

private String name;

//年齡

private int age;

//姓名獲取值

public String getName() {

return name;

}

//姓名設(shè)置值

public void setName(String n) {

name = n;

}

//年齡獲取值

public int getAge() {

return age;

}

//年齡賦值

public void setAge(int a) {

age = a;

}

}

 

//測(cè)試類

class StudentTest {

public static void main(String[] args) {

//創(chuàng)建學(xué)生對(duì)象

Student s = new Student();

//使用成員變量

//錯(cuò)誤:被私有修飾了,外界不能直接訪問(wèn)了

//System.out.println(s.name+"---"+s.age);

System.out.println(s.getName()+"---"+s.getAge());

//給成員變量賦值

//s.name = "林青霞";

//s.age = 27;

//通過(guò)方法給賦值

s.setName("林青霞");

s.setAge(27);

System.out.println(s.getName()+"---"+s.getAge());

}

}

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多