簡體   English   中英

遞歸對象訪問私有方法

[英]Recursive object access to private methods

為什么以下代碼打印“ YO”? 誰的printYo()被調用? 我認為該代碼不會編譯,因為printYo()t私有對象。

public class Test {
    private void printYo() {
        System.out.println("YO");
    }

    public void doubleTrouble(Test t) {
        t.printYo();
    }

    public static void main(String[] args) {
        Test test = new Test();
        test.doubleTrouble(new Test());
    }
}

我該怎么做才能確保外部對象不會改變參數類?

printYo()是t的私有對象

否。關於Test類,該方法是private Test任何代碼段都可以使用它。

我該怎么做才能確保外部對象不會改變參數類?

Java沒有任何內置機制來拒絕每個實例訪問成員。 (如果那是您的意思。)

您正在類中使用調用方法,聽起來對輸出正確。 即使從不同的類調用main方法,它也會提供相同的輸出。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM