對象訪問私有成員
『壹』 java main函數為什麼可以訪問對象的私有成員變數
1、Java main函數之所以可以訪問對象的私有成員變數,是因為這個對象的成員變數提供了獲取成員變數的方法即get方法,這樣main方法就可以通過創建出這個對象,再通過這個對象調用get方法來訪問這個私有成員變數;
2、接下來通過一個例子來進一步的解釋:
首先創建一個包含私有成員變數的類,如下:
publicclassDemo2{
privateinta=1;
publicintgetA(){//提供get方法
returna;
}
}
其次創建包含main的類,如下:
publicclassDemo1{
publicstaticvoidmain(String[]args){
Demo2demo2=newDemo2();//創建對象
System.out.println(demo2.getA());//通過對象調用get方法訪問私有成員變數
}
}
這樣就通過創建的對象的get方法來訪問到了對象的私有成員變數了。
『貳』 類對象可以訪問自己的私有成員
這就好比this指針
成員函數就是一介面,通過介面可以訪問任何本類私有成員
>
>
>補充一下,對這個問題,我也有點暈,呵呵,換一個角度來考慮,
私有成員變數或函數存在的目的是為了使 類 達到封裝和隱蔽的效果,類的封裝好壞直接影響到類的完善與否和功能強弱。但是類的封裝行是對於類對象而言的,而不是本類的本身,如果一個人能夠達到了可以改寫本類成員函數的許可權,那麼,封裝和隱蔽還有什麼作用呢?如果你可以直接改寫類,那麼這個類的封裝已經暴露在你眼前,信息的隱蔽也就無從談起了,所以說,本類的成員函數調用本類的對象(包括參數形式)是沒有必要進行信息的封裝和隱蔽的,因為這是沒有意義的。
『叄』 類對象可以訪問自己的私有成員
在類自己的成員函數及類的友元類和類的友元函數里是允許訪問私有成員的,如果是在非類的成員函數或友元類或友元函數中是不可能的,你可以試試
『肆』 C++中類的對象可以訪問類的私有數據成員嗎
類的對象是不能訪問類的私有數據成員的,只有通過類的成員函數才可以訪問類的私有數據。
『伍』 通過對象能否直接訪問類的私有數據成員
不能在類外以任何方式訪問類當中的私有和保護的成員變數和成員函數。除非是在友原類或者友原函數當中。