具有私有访问权限如何更改这段代码
时间: 2024-11-05 20:25:51 浏览: 9
在这段代码中,`Animal` 类里的成员变量(如 `name` 和 `age`)已经被声明为私有的 (private),这意味着它们只能在 `Animal` 类内部访问。如果想改变这些属性的值,你需要提供一个公共的方法(getter 或 setter)供外部类调用。
以下是修改后的例子:
```java
package case2;
public class extendsTest {
public static void main(String[] args) {
// 实例化一个Cat对象,通过getName()和setName()方法设置name和age,再调用voice()和eat()方法
Cat cat = new Cat();
cat.setName("大花猫"); // 使用setter方法
cat.setAge(6);
cat.voice();
cat.eat();
System.out.println(cat.getName()+", "+cat.getAge()+"岁");
// 同理,实例化一个Dog对象
Dog dog = new Dog();
dog.setName("大黑狗");
dog.setAge(8);
dog.voice();
dog.eat();
System.out.println(dog.getName()+", "+dog.getAge()+"岁");
}
}
class Animal {
// 私有字段
private String name;
private int age;
// 提供公共的getter和setter方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
class Cat extends Animal {
//...
}
class Dog extends Animal {
//...
}
```
现在,你可以通过 `getName()` 和 `setName()` 方法来读取和设置 `Cat` 或 `Dog` 的私有属性,保持了封装性。
阅读全文