java類私有
㈠ 在java中能用private修飾類嗎
一般的類是不能用private修飾,類的可見性最少是包可見的,也就是默認的,不加任何修飾。
但是有一種特殊的情況,內部類是可以用private修飾的!不讓類以外的其他類訪問!這個問題在《java核心技術》里有講!
Java的外部類為什麼不能使用private、protected進行修飾?
對於頂級類(外部類)來說,只有兩種修飾符:public和默認(default)。因為外部類的上一單元是包,所以外部類只有兩個作用域:同包,任何位置。
因此,只需要兩種控制許可權:包控制許可權和公開訪問許可權,也就對應兩種控制修飾符:public和默認(default)。
如果類使用了private修飾符,說明是個內部類。內部類的上一級是外部類,那麼對應的有四種訪問控制修飾符:本類(private),同包(default),父子類(protected),任何位置(public)。
當一個內部類使用了private修飾後,只能在該類的外部類內部使用。可以想一下,一個java項目是不可能在一個class裡面完成的。
mvc模式中,是把類分為三層,一層層調用類。如果定義為私有的和受保護的就無法調用。換句話說,對於一個java文件,要麼就是自己單獨運行,要麼就是被其他程序作為庫調用。
如果一個java文件的類被private修飾,那麼是不是其他的程序或是類是無法使用它的,那麼他作為一個單獨的文件就沒啥用了。
如果它作為單個文件運行,類載入怎麼找到它呢,因為它對外不可見。同時,也失去了類的存在意義。因此,類只有public和默認修飾符。
㈡ JAVA中的私有和PUBLIC公有是什麼意思
public是公共的意思,是共有的,在同一項目,同一包中,同一累中,子類等都可以對它進行訪問;
private是私有的意思,只能在本類中使用,別的類要是對其操作只能通過set和get方法來進行。
㈢ JAVA如何調用類的私有成員public和private如何區分使用!!!!
若是調用私有變數,則可以在類中定義get()方法,即返回值就是你想得到的那個變數。Java中一般把變數(屬性)定義成私有的,把方法定義成公有的。public定義的屬性或方法在子類中可以調用,而private定義的屬性或方法在子類中不可以調用。
㈣ java,java class裡面的變數默認是私有嗎
你定義成double也沒問題啊,但如果資料庫中是double,model裡面是float就有問題,不過這倒沒什麼規定,關鍵是你要清楚,double變成float是要損失精度的。
原則上保證數據不會有損失就好。
㈤ java 有沒有 私有類
java中有私有內部類,即在一個普通Java類里創建一個private的class。
用途:如果一個內部類只希望被外部類中的方法操作,那麼可以使用private聲明內部類,訪問時必須在Out類裡面生成In類的對象進行操作,此時的內部類只有外部類可控制。
私有內部類舉例:
classOut{
privateintage=12;
privateclassIn{
publicvoidprint(){
System.out.println(age);
}
}
publicvoidoutPrint(){
newIn().print();
}
}
publicclassDemo{
publicstaticvoidmain(String[]args){
//此方法無效
/*
Out.Inin=newOut().newIn();
in.print();
*/
Outout=newOut();
out.outPrint();
}
}
㈥ java 封裝性 為什麼要把類的屬性設置成私有的
我們來談談封裝的思想:
封裝就是將屬性私有化,提供公有的方法訪問私有的屬性。
*實現封裝的步驟:
(1)修改屬性的可見性來限制對屬性的訪問。
(2)為每個屬性創建一對賦值方法和取值方法,用於對這些屬性的訪問。
(3)在賦值和取值方法中,加入對屬性的存取限制。
**為了實現良好的封裝性,我們通常將類的成員變數聲明為private,再通過
public的方法來對這個變數進行訪問。對一個變數的操作,一般都有讀取和
賦值操作,我們分別定義兩個方法來實現這兩種操作,一個是getxxx()(xxx
表示要訪問的成員變數的名字),用來讀取這個成員變數操作,另外一個是
setxxx()用來對這個成員變數賦值。
**如果外面的程序可以隨意修改一個類的成員變數,會造成不可預料的程序錯誤,
就象一個人的身高,不能被外部隨意修改,只能通過各種攝取營養的方法去修
改這個屬性。
public
class
accpteacher{
private
string
name;
private
int
age;
public
string
getname(){
return
name;
}
public
void
setname(string
name){
this.name
=
name;
}
public
int
getage(){
return
name;
}
public
void
setname(string
age){
if(age<22){
system.out.println("年齡不符合,太小!");
}else{
this.age
=
age;
}
}
}
****封裝的優點:
(1)隱藏類的實現細節;
(2)讓使用者只能通過事先定製好的方法來訪問數據,可以方便地加入控制
邏輯,限制對屬性的不合理操作;
(3)便於修改,增強代碼的可維護性;
看我這個你應該明白為什麼要將屬性私有化。
㈦ java中類的欄位為什麼都要設為私有的
欄位設為私有,是滿足面向對象中封裝性,
一個類不建議允許直接獲取到另一個類的欄位,
同時也不建議直接把自身欄位暴露給另一個類,
本質上其實是為了隱藏具體實現,
同時,用get或者set方法來獲取或者設置的話,可以在該方法中添加一些簡單的驗證邏輯,
比方說有個學生類,其中有個年齡欄位,如果直接做成public的話,那麼這個年齡欄位可以設置為負值,
但是你做成了set方法的時候,你調用set設置年齡,那麼你可以在set方法中去對為負數的年齡進行驗證處理
Java面向對象類和類之間的關系教程:
㈧ java 定義私有類
public
class
a{
private
int
b;
protected
int
c;
}
在別的類里
a
aa=new
a();
這時候aa.
是沒有東西的
不能訪問private
修飾的東西
假如有一個類extends
a
繼承了a
類
這是就可以this.c
protected
修飾的
只能子類
或自己訪問
㈨ java怎麼 定義私有類(private) 和 受保護的類 (protected )
只有類文件內部的類可以設置protected/private。
如果你在程序中這樣寫就會報錯:
private class Protected
{
protected String s = "Thinking in Java.";
}
應該這樣用:
public class Test
{
public static void main(String[] args)
{
........
}
private class Protected
{
protected String s = "Thinking in Java.";
}
}
就是說,定義在一個類文件內部的privte或者protected才是有效的
㈩ ****JAVA中類的對象為何可以調用該類的私有成員
當然可以
私有成員,就是供本類使用的類型,其他類是看不到的啊
java中
類的對象的創建也是有范圍的,不是都可以創建的!!
在java中,即使別的類
得到了該類的對象,也是無法訪問該類的私有成員的!私有成員,只供本類使用