现在有一个抽象类:电脑类 Computer
抽象方法:特点优势 advantage()
台式机DesktopComputer 继承电脑类
重写方法:advantage() ,价格实惠,性价比高。
笔记本LaptopComputer,继承电脑类
重写方法:advantage() ,便携、轻巧。
商务笔记本BusinessLaptop 继承笔记本类
重写advantage方法,高端大气、轻薄、续航时间长
游戏本GameLaptop 继承笔记本类
重写advantage方法,高配置、性能强、大型游戏不卡顿
商场类 Shop
成员变量:String[] types, 数组,记录不同的电脑类型
方法: setTypes(String[] types),对成员变量types进行赋值。
方法: showComputer(),显示商场中的电脑类型(types)。
方法:chooseComputer(String type) 根据类型不同 ,输出对应的电脑的优势是什么
[switch case 或者 if else ] [在该类中,需要对不同电脑的类进行实例化,然后调用advantage方法—上转型对象]
主类MainClass,创建商场的实例化对象,
调用setTypes方法,初始化商场中的电脑类型types:台式机 笔记本 商务笔记本 游戏本等等,将shop中的types数组进行赋值: { "台式机", "笔记本", "商务笔记本", "游戏本" },
调用showComputer输出商场里有哪些类型的电脑。
提示用户选择哪种电脑。根据用户输入的类型,输出对应的电脑的优势是什么。
参考代码:
获取用户输入的字符串:
Scanner scan = new Scanner(System.in);
String type = scan.nextLine();
package shiyan_09;
import java.util.*;
public class MainClass {
public static void main(String[] args) {
Shop shop = new Shop();
String[] a = {"台式机", "笔记本", "商务笔记本", "游戏本"};
shop.setTypes(a);
shop.showComputer();
System.out.println("请输入选择的电脑类型:");
Scanner scan = new Scanner(System.in);
String type = scan.nextLine();
shop.chooseComputer(type);
}
}
package shiyan_09;
public class BusinessLaptop extends Computer{//商务笔记本
void advantage() {
System.out.println("高端大气、轻薄、续航时间长。");
}
}
package shiyan_09;
public abstract class Computer {
abstract void advantage();
}
package shiyan_09;
public class DesktopComputer extends Computer{//台式机
void advantage() {
System.out.println("价格实惠,性价比高。");
}
}
package shiyan_09;
public class LaptopComputer extends Computer {//笔记本
void advantage() {
System.out.println("便携、轻巧。");
}
}
package shiyan_09;
public class Shop {
String[] types;
DesktopComputer desktopComputer = new DesktopComputer();
LaptopComputer laptopComputer = new LaptopComputer();
BusinessLaptop businessLaptop = new BusinessLaptop();
GameLaptop gameLaptop = new GameLaptop();
public void setTypes(String[] types) {
this.types = types;
}
public void showComputer() {
System.out.println("商场里的电脑有:");
for(int i=0;i<4;i++) {
System.out.print(types[i]+" ");
}
System.out.println();
}
public void chooseComputer(String type) {
if (type.equals("台式机")) {
desktopComputer.advantage();
}
else if(type.equals("笔记本")) {
laptopComputer.advantage();
}
else if(type.equals("商务笔记本")){
businessLaptop.advantage();
}
else if(type.equals("游戏本")){
gameLaptop.advantage();
}
else {
System.out.println("错误。");
}
}
}