2014-06-24 56 views
0

可以引用一個對象在類中是私有的,而其他對象可以對同一個類有一個公共引用(後腳本:新的java +一個簡單的例子請)。 我在某處讀到這個概念是關於別名的? 對不起,我的標題可能沒有意義!對象可以是私人的和公共的嗎?

+0

你說的是同一個對象引用,是的,這是可能的。 –

+0

所有對象都是公開的,因爲所有對象方法都是公共的。如果您可以通過任何方式獲得對其的引用,則可以訪問該對象。 –

回答

5

對象不是私人的或公共的。 字段可以是私人的或公共的。字段可以保存對對象的引用。一個對象可以同時被私人和公共場所引用:

public class Example { 
    public static Object a; 
    private static Object b; 

    public static void main(String... args) { 
     Object foo = new Object(); 
     a = foo; 
     b = foo; 
     // Now our Object is referred to by the public field a, the private 
     // field b, and the local variable foo (which is not considered either 
     // private or public). 
    } 
} 
+0

但是,如果我有私人靜態示例e = new Example(); - 這裏是私人的。我對嗎? – user3762742

+0

@ user3762742:字段'e'是私人的。它所指的對象不是。 – user2357112

0

公共和私人都是訪問修飾符。如果使用私有修飾符,則意味着相關成員只能在同一個類中訪問。如果它是公開的,你可以在同一個班級,相同的包裹和不同的包裹中訪問該成員;無處不在。 OOAD建議我們應該封裝不同的內容。因此,我們將所有實例變量設置爲private,並聲明公共的getter/setter方法來從任何地方訪問這些變量。公共和私人只是修飾語。

0

公共和私人都是訪問修飾符。它們是可選的修飾符,它們決定變量,方法或類的可訪問性。如果使用私有修飾符,則意味着相關成員只能在同一個類中訪問。如果它是公開的,你可以在同一個班級,相同的包裹和不同的包裹中訪問該成員;無處不在。 OOAD建議我們應該封裝不同的內容。因此,我們將所有實例變量設置爲private,並聲明公共的getter/setter方法來從任何地方訪問這些變量。公共和私人只是修飾語。