小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

封裝和private關鍵字

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

private:

是一個權限修飾符

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

被其修飾的成員只能在本類中被訪問

*/

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();

//不能訪問私有的成員方法

//d.method();

d.function();

}

}

 





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

我們在使用這個案例的過程中,發(fā)現(xiàn)了一個問題:
通過對象去給成員變量賦值,可以賦值一些非法的數據。
這是不合理的。
應該是這個樣子的:在賦值之前,先對數據進行判斷。
判斷到底在哪里做比較合適呢?
StudentDemo類是一個測試類,測試類一般只創(chuàng)建對象,調用方法。 
所以,這個判斷應該定義在Student類中。
而我們在成員變量的位置可不可以進行數據判斷呢?
是不可以的,因為做數據校驗,必須要依靠一些邏輯語句。
邏輯語句是應該定義在方法中的,所以,我們最終決定在Student類中提供一個方法
來對數據進行校驗。

按照我們前面的分析,我們給出了一個方法進行校驗。
但是呢,它偏偏不調用方法來賦值,還是直接賦值了,
這樣我們的方法就沒有起到作用。
我就應該要求你必須使用我的方法,而不能直接調用成員變量賦值。
怎么去強制要求不能直接使用成員變量呢?
針對這種情況,Java就提供了一個關鍵字 private

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

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

//寫一個方法對數據進行校驗
/*
返回值類型:void
參數列表:int a
*/
public void setAge(int a) {
if(a < 0 || age > 120) {
System.out.println("你給的年齡有問題");
}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)建學生對象
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; //這個數據是不合理的
//通過方法給值
s.setAge(-27);
s.show();
System.out.println("--------------");
}
}



/*

封裝和private的應用:

A:把成員變量用private修飾

B:提高對應的getXxx()和setXxx()方法

*/

//定義學生類

class Student {

//姓名

private String name;

//年齡

private int age;

//姓名獲取值

public String getName() {

return name;

}

//姓名設置值

public void setName(String n) {

name = n;

}

//年齡獲取值

public int getAge() {

return age;

}

//年齡賦值

public void setAge(int a) {

age = a;

}

}

 

//測試類

class StudentTest {

public static void main(String[] args) {

//創(chuàng)建學生對象

Student s = new Student();

//使用成員變量

//錯誤:被私有修飾了,外界不能直接訪問了

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

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

//給成員變量賦值

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

//s.age = 27;

//通過方法給賦值

s.setName("林青霞");

s.setAge(27);

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

}

}

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多