我注意到,如果在上課之前不寫public
,它的作用與public class
相同。我不明白爲什麼這樣?當我沒有聲明課程爲public
,private
或protected
時,它應該顯示錯誤。但它工作正常。是什麼原因?`public class`和just`class`有什麼區別?
25
A
回答
24
public
,protected
和private
是訪問修飾符。公共意味着這個主題可以被任何類訪問,由子類保護,由類本身保護,沒有修飾符意味着「包保護」,因此主題可以被同一個包中的類訪問。
主題是類,方法,成員變量。
28
我注意到,如果不在公開課之前公開課,它的作品就像公共課一樣。
不,它不。除非它是公開的,否則該類對於不在同一個包中的其他代碼將不可見。默認的可訪問性(無法明確指定)是類(或其他成員)僅對同一包中的其他代碼可見。
您應該閱讀Java Language Specification section 6.6和Java Tutorial (Controlling Access to Members of a Class)瞭解更多詳情。
4
默認情況下類爲package private
(如概述here),因此它的行爲方式不同。你只是認爲這是因爲你沒有試圖從不同的包裝中消費你的課程。
0
對於類聲明是avaible只有兩個關鍵字:
- 公共。實例:公共類學生{// ...}
- 私人包(默認)。實例:類注意事項{// ...}只有在他的包裝中才能看到。
只有當您在類中聲明成員時,纔可以使用private和protected。 例子:
public class Student{
protected Note note;
}
0
如果你不給訪問修飾符它的默認包私有訪問。課程無法在課程外進行訪問。理想情況下,JLS應該包含一個關鍵字包訪問,以避免混淆和意想不到的後果。
喜歡的東西,
default class Student{}
1
必須有每個.java源文件只有一個公共類和文件必須與這個公共類相符的名稱。
在SO上提出過類似的問題。請找到它here
0
它的工作原理是相同的,只是因爲你正在使用的可能只是一個文件而且在同一個包中。
如果你有多個包,那麼你有問題。在類的名稱之前沒有「public」的類不能在另一個包中創建。你不能使用它的構造函數。你只是不能在創建類的包之外訪問它。
相關問題
- 1. final Class和Class有什麼區別?
- 2. `String.class`和`new Class [] {String.class}`有什麼區別?
- 3. class alv和function alv有什麼區別
- 4. .class和.dex文件有什麼區別?
- 5. Class Path和Build Path有什麼區別
- 6. iPhone SDK:#import和@class有什麼區別?
- 7. h1.class和h1(空格)之間有什麼區別.class
- 8. Class clazz和Class <?> clazz在java中有什麼區別?
- 9. Perl中的新Some :: Class和Some :: Class-> new()有什麼區別?
- 10. C#中「Class」和「Private Class」聲明有什麼區別?
- 11. 在R中,class ts和class timeSeries之間有什麼區別?
- 12. PHP中的「use \ namespace \ Class」和「use namespace \ Class」有什麼區別?
- 13. * .class和.class之間的gitignore區別
- 14. final class和static class之間的區別
- 15. Class和Class <?>之間的實際區別是什麼(如果有的話)?
- 16. public class ImageHandler:IHttpHandler
- 17. jQuery中的class和id有什麼區別?
- 18. class_eval和class << className有什麼區別?
- 19. 設置關係時,User :: class和App \ User有什麼區別?
- 20. 'class'和'type'的概念有什麼區別?
- 21. 「.class元素」和「element.class」之間有什麼區別?
- 22. UML中'class diagrams'和'data models'有什麼區別?
- 23. scala中private和private [Class]聲明有什麼區別?
- 24. 在DBIx :: Class中填充和創建方法有什麼區別?
- 25. 添加promise時,使用「ifvarclass =>'class'」還是「class ::」notation有什麼區別?
- 26. 爲什麼「[self class] == [super class]」?
- 27. .class和#id:什麼區別/何時使用?
- 28. Class API中getDeclaredConstructors和getConstructors之間的區別是什麼?
- 29. a.css-class和.css-class選擇器有什麼區別 - 如果我所有的酷元素都是a?
- 30. 分配指針時,memcpy和just assigning之間有什麼區別?
[這將爲您提供足夠的答案。](http://stackoverflow.com/a/16728381/1079354) – Makoto
您可以參考此鏈接,提供相同的知識: http://stackoverflow.com/questions/614818/what-is-the-difference-between-public-private-protected-and-nothing/614844#614844 – Deepak