6-2 结合案例设计程序,实现参数传递控制及成员访问控制 要求:完成CellPhone类的定义;添加类的成员;完成类的实例化及构造函数的使用;创建静态方法和非静态方法,并在测试类中完成调用。
时间: 2024-10-17 10:07:10 浏览: 51
在Java中,我们可以使用参数传递控制(通过方法调用)和成员访问控制(如private、protected、public)。这里是一个简单的例子,我们设计一个`CellPhone`类,用于演示这两个概念:
```java
// CellPhone类定义
class CellPhone {
// 私有变量,表示手机品牌
private String brand;
// 受保护变量,表示电话号码
protected String phoneNumber;
// 构造函数,接受品牌和初始号码
public CellPhone(String brand, String phoneNumber) {
this.brand = brand;
this.phoneNumber = phoneNumber;
}
// 非静态方法,设置新的电话号码
public void setPhoneNumber(String newNumber) {
if (newNumber.length() > 0) { // 参数验证
this.phoneNumber = newNumber;
} else {
System.out.println("无效的电话号码");
}
}
// 静态方法,返回当前类的所有属性
public static void displayInfo(CellPhone phone) {
System.out.println("手机品牌: " + phone.brand);
System.out.println("电话号码: " + phone.phoneNumber);
}
}
// 测试类
public class TestCellPhone {
public static void main(String[] args) {
// 实例化CellPhone对象并设置默认值
CellPhone myPhone = new CellPhone("Apple", "1234567890");
// 调用setPhoneNumber方法改变电话号码,控制了参数传递
myPhone.setPhoneNumber("9876543210");
// 使用displayInfo方法展示手机信息,体现了成员访问控制
CellPhone.displayInfo(myPhone);
// 尝试直接访问私有变量,由于权限限制会报错
// System.out.println("手机品牌: " + myPhone.brand); // 这将不会被执行,因为这是私有的
}
}
```
在这个示例中,`brand`是私有的,所以外部无法直接访问。`phoneNumber`是受保护的,可以被子类访问,但在其他类中需要通过对象引用调用方法来修改。`setPhoneNumber`和`displayInfo`分别展示了参数传递控制和成员访问控制的使用。
阅读全文