为什么以下代码打印“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());
}
}
如何确保外部对象不会改变参数类?
答案 0 :(得分:1)
printYo()对t
是私有的
没有。对于班级private
,该方法为Test
。 Test
中的任何代码都可以使用它。
如何确保外部对象不会改变参数类?
Java没有任何内置机制来拒绝基于每个实例访问成员。 (如果这就是你的意思。)
答案 1 :(得分:0)
您正在类中调用方法,这对于输出来说是正确的。即使您从不同的类调用main方法,它也会提供相同的输出。