繁体   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