69 lines
2.1 KiB
Java
69 lines
2.1 KiB
Java
package com.inmind.test10;
|
|
|
|
// 智能手机类 - 实现两个接口
|
|
public class Smartphone extends Device implements Networkable, Chargeable {
|
|
private int storage; // 存储容量(GB)
|
|
private int batteryLevel; // 电池电量(%)
|
|
|
|
public Smartphone(String brand, String model, double price, int storage) {
|
|
super(brand, model, price);
|
|
this.storage = storage;
|
|
this.batteryLevel = 50; // 初始电量50%
|
|
}
|
|
|
|
@Override
|
|
public void introduce() {
|
|
System.out.println("这是一部" + brand + " " + model + "智能手机,价格" + price +
|
|
"元,存储容量" + storage + "GB");
|
|
}
|
|
|
|
// 特有方法:拍照
|
|
public void takePhoto() {
|
|
if (isPowerOn()) {
|
|
System.out.println(brand + " " + model + " 正在拍照");
|
|
batteryLevel -= 5; // 拍照消耗电量
|
|
} else {
|
|
System.out.println("请先开机再拍照");
|
|
}
|
|
}
|
|
|
|
// 实现Networkable接口方法
|
|
@Override
|
|
public void connectToNetwork(String networkName) {
|
|
if (isPowerOn() && Networkable.isNetworkAvailable()) {
|
|
System.out.println(brand + " " + model + " 已连接到 " + networkName);
|
|
} else if (!isPowerOn()) {
|
|
System.out.println("请先开机再连接网络");
|
|
} else {
|
|
System.out.println("网络不可用,无法连接到 " + networkName);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void disconnectFromNetwork() {
|
|
System.out.println(brand + " " + model + " 已断开网络连接");
|
|
}
|
|
|
|
// 实现Chargeable接口方法
|
|
@Override
|
|
public void charge(int minutes) {
|
|
if (minutes <= 0) {
|
|
System.out.println("充电时间必须为正数");
|
|
return;
|
|
}
|
|
|
|
System.out.println(brand + " " + model + " 正在充电" + minutes + "分钟");
|
|
int chargeAmount = minutes / 2; // 每2分钟充1%
|
|
batteryLevel += chargeAmount;
|
|
|
|
if (batteryLevel > 100) {
|
|
batteryLevel = 100;
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public int getBatteryPercentage() {
|
|
return batteryLevel;
|
|
}
|
|
}
|
|
|