Closed. This question needs details or clarity。它当前不接受答案。
                        
                    
                
            
        
            
        
                
                    
                
            
                
                    想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
                
                    2年前关闭。
            
        

    

我需要通过在Terminal类中创建一个公共hackCar方法来从TestCar类中打印属性。 hackCar方法需要将TestCar作为参数并打印TestCar的属性。需要注意的是,我不能碰到TestCar类中的任何东西。

我仍在努力在TestCar中打印两个私有属性。如何通过使用Test Car对象作为hackCar方法中的参数来打印Test Car类中的两个私有属性?

故事课:

class Story {
    public static void main(String args[]) {
        TestCar testCar = new TestCar();
        Terminal terminal = new Terminal();
        terminal.hackCar(testCar);
    }
}


航站楼类{

 public void hackCar(TestCar other) {

        System.out.println(other.doorUnlockCode);

        System.out.println(other.hasAirCondition);

        System.out.println(other.brand);

        System.out.println(other.licensePlate);
}


}

class TestCar {

    private int doorUnlockCode = 602413;
    protected boolean hasAirCondition = false;
    String brand = "TurboCarCompany";
    public String licensePlate = "PHP-600";
}


谢谢!

最佳答案

私有字段称为“私有”,因为无法获取它们。但是,您可以为他们做公众宣传:

class TestCar {
    // Your 4 fields here...

    public int getDoorUnlockCode() {
        return this.doorUnlockCode;
    }
}


然后在hackCar方法中更改
System.out.println(other.doorUnlockCode);为此:System.out.println(other.getDoorUnlockCode());
因此,现在您可以通过公共获取程序访问字段doorUnlockCode

对保护字段hasAirCondition进行相同操作

您的方法Terminal.getdoorUnlockCode()Terminal.getAirCondition()无法到达另一个对象的字段,它们必须在TestCar对象中

关于java - 访问控制练习-Java,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51305186/

10-09 01:55