-写出对象适配器,使电能、光能发动机可以和发动机兼容 (学习通) //目标:发动机 interface motor public void drive(); //适配者1:电能发动机 class electricmotor public void electricdrive() system.out.println(”电能发动机驱动汽车!"); ~ ~ //适配者2:光能发动机 class opticalmotor public void opticaldrive() system.out.println("光能发动机驱动汽车!");


为了实现对象适配器模式,我们需要创建一个适配器类,该类将电能发动机和光能发动机适配到发动机接口。以下是完整的代码实现: ```java // 目标接口:发动机 interface Motor { void drive(); } // 适配者1:电能发动机 class ElectricMotor { public void electricDrive() { System.out.println("电能发动机驱动汽车!"); } } // 适配者2:光能发动机 class OpticalMotor { public void opticalDrive() { System.out.println("光能发动机驱动汽车!"); } } // 对象适配器类 class MotorAdapter implements Motor { private ElectricMotor electricMotor; private OpticalMotor opticalMotor; // 构造函数,传入要适配的电能发动机 public MotorAdapter(ElectricMotor electricMotor) { this.electricMotor = electricMotor; } // 构造函数,传入要适配的光能发动机 public MotorAdapter(OpticalMotor opticalMotor) { this.opticalMotor = opticalMotor; } @Override public void drive() { if (electricMotor != null) { electricMotor.electricDrive(); } else if (opticalMotor != null) { opticalMotor.opticalDrive(); } else { System.out.println("没有适配的发动机!"); } } } // 测试类 public class Main { public static void main(String[] args) { // 创建电能发动机 ElectricMotor electricMotor = new ElectricMotor(); // 创建光能发动机 OpticalMotor opticalMotor = new OpticalMotor(); // 创建适配器 Motor motor1 = new MotorAdapter(electricMotor); Motor motor2 = new MotorAdapter(opticalMotor); // 使用适配器驱动汽车 motor1.drive(); // 输出: 电能发动机驱动汽车! motor2.drive(); // 输出: 光能发动机驱动汽车! } } ``` 解释 1. Motor 接口:定义了 `drive` 方法,这是所有发动机需要实现的方法。 2. ElectricMotor 类:实现了 `electricDrive` 方法,模拟电能发动机的工作。 3. OpticalMotor 类:实现了 `opticalDrive` 方法,模拟光能发动机的工作。 4. MotorAdapter 类:实现了 `Motor` 接口,并通过构造函数接收 `ElectricMotor` 或 `OpticalMotor` 对象。在 `drive` 方法中,根据传入的对象调用相应的方法。 测试 在 `Main` 类中,我们创建了 `ElectricMotor` 和 `OpticalMotor` 的实例,并使用 `MotorAdapter` 将它们适配为 `Motor` 接口。然后调用 `drive` 方法来验证适配器是否工作正常。 [2024-10-28 17:34:06 | AI写代码神器 | 611点数解答]
- -写出对象适配器,使电能、光能发动机可以和发动机兼容 (学习通) //目标:发动机 interface motor public void drive(); //适配者1:电能发动机 class electricmotor public void electricdrive() system.out.println(”电能发动机驱动汽车!"); ~ ~ //适配者2:光能发动机 class opticalmotor public void opticaldrive() system.out.println("光能发动机驱动汽车!");(611点数解答 | 2024-10-28 17:34:06)185
- /新系统汽车发出声音phonate();灯光闪烁twink1e(); //汽车控制类,充当目标抽象类 public abstract class carcontroller{ public void move(){ system.out.println("玩具汽车移动!"); public abstract void phonate();//发出声音 public abstract void twinkle();//灯光闪烁 //警车类,充当适配者 public class police { public void alarmlamp(){ system.out.printin("呈现警灯闪烁!"); public void alarmsound(){ system.out.println( ("发出警笛声音!"); 】 ~ //警车适配器,充当适配器 extends public class policecaradapter carcontroller private police po; //定义适配者policelamp对象 public policecaradapter(){(32点数解答 | 2024-10-28 17:22:39)177
- 开发一个通用适配器/新系统汽车发出声音phonate();灯光闪烁twink1e(); //汽车控制类,充当目标抽象类 public abstract class carcontroller{ public void move(){ system.out.println("玩具汽车移动!"); public abstract void phonate();//发出声音 public abstract void twinkle();//灯光闪烁 //警车类,充当适配者 public class police { public void alarmlamp(){ system.out.printin("呈现警灯闪烁!"); public void alarmsound(){ system.out.println( ("发出警笛声音!"); 】 ~ //警车适配器,充当适配器 extends public class policecaradapter carcontroller private police po; //定义适配者policelamp对象 public policecarad(372点数解答 | 2024-10-28 17:23:14)216
- 用java 开发一个通用适配器 /新系统汽车发出声音phonate();灯光闪烁twink1e(); //汽车控制类,充当目标抽象类 public abstract class carcontroller{ public void move(){ system.out.println("玩具汽车移动!"); public abstract void phonate();//发出声音 public abstract void twinkle();//灯光闪烁 //警车类,充当适配者 public class police { public void alarmlamp(){ system.out.printin("呈现警灯闪烁!"); public void alarmsound(){ system.out.println( ("发出警笛声音!"); 】 ~ //警车适配器,充当适配器 extends public class policecaradapter carcontroller private police po; //定义适配者policelamp对象 public poli(577点数解答 | 2024-10-28 17:24:53)270
- class sunflower extends plant{ △ 8 public void show( ){ 9 system.out.println("向日葵"); 10 } 11}12 13 class nut extends plant{ 14 public void show( ){ 15 system.out.println("坚果墙"); 16 17}18 19 class pea extends plant{ 209 public void show( ){ 21 system.out.println("豌豆射手"); 22 } 23 }24 25 class plantfactory{ 26 public static plant creat(string s){ 27 if("向日葵".equalsignorecase(s)){ 28 return new sunflower(); 29 }else if("坚果墙".equalsignorecase(s)){ 30 return new nut(); 31 }else if("豌豆射手".(31点数解答 | 2024-10-17 17:03:18)191
- class sunflower extends plant{ △ 8 public void show( ){ 9 system.out.println("向日葵"); 10 } 11}12 13 class nut extends plant{ 14 public void show( ){ 15 system.out.println("坚果墙"); 16 17}18 19 class pea extends plant{ 209 public void show( ){ 21 system.out.println("豌豆射手"); 22 } 23 }24 25 class plantfactory{ 26 public static plant creat(string s){ 27 if("向日葵".equalsignorecase(s)){ 28 return new sunflower(); 29 }else if("坚果墙".equalsignorecase(s)){ 30 return new nut(); 31 }else if("豌豆射手".(498点数解答 | 2024-10-17 17:03:51)240
- class sunflower extends plant{ △ 8 public void show( ){ 9 system.out.println("向日葵"); 10 } 11}12 13 class nut extends plant{ 14 public void show( ){ 15 system.out.println("坚果墙"); 16 17}18 19 class pea extends plant{ 209 public void show( ){ 21 system.out.println("豌豆射手"); 22 } 23 }24 25 class plantfactory{ 26 public static plant creat(string s){ 27 if("向日葵".equalsignorecase(s)){ 28 return new sunflower(); 29 }else if("坚果墙".equalsignorecase(s)){ 30 return new nut(); 31 }else if("豌豆射手".(48点数解答 | 2024-10-17 17:04:18)174
- 开发一款单极闯关打斗类游戏,游戏中的主角需要通过供给并杀死怪物来进行闯关,游戏中有3类怪物(以后可能有其它怪物),亡灵类怪物, 元素类怪物,机械类怪物, 每种怪物都有自己的武器, 亡灵类怪物使用镰刀作为武器, 元素类怪物使用法杖作为武器,机械类怪物使用冲锋枪作为武器, 使用抽象工厂完成该游戏设计。 package package;2① interface wq{ 4个用法 3个实现3① void fight(); 0个用法 3个实现4 }5 class ld implements wq{ 1个用法6 ① public void fight(){ 0个用法7 system. out. println("镰刀攻击");8 }9 ,10 class fz implements wq{ 1个用法11 ① public void fight(){ 0个用法12 system. out. println("法杖攻击");13 }14 }15 class cfq implements wq{ 1个用法16① public void fight(){(713点数解答 | 2024-11-05 15:48:34)149
- 开发一款单极闯关打斗类游戏,游戏中的主角需要通过供给并杀死怪物来进行闯关,游戏中有3类怪物(以后可能有其它怪物),亡灵类怪物, 元素类怪物,机械类怪物, 每种怪物都有自己的武器, 亡灵类怪物使用镰刀作为武器, 元素类怪物使用法杖作为武器,机械类怪物使用冲锋枪作为武器, 使用抽象工厂完成该游戏设计。 package package;2① interface wq{ 4个用法 3个实现3① void fight(); 0个用法 3个实现4 }5 class ld implements wq{ 1个用法6 ① public void fight(){ 0个用法7 system. out. println("镰刀攻击");8 }9 ,10 class fz implements wq{ 1个用法11 ① public void fight(){ 0个用法12 system. out. println("法杖攻击");13 }14 }15 class cfq implements wq{ 1个用法16① public void fight(){(1048点数解答 | 2024-11-05 15:53:10)170
- package p1; 2 interface tripledes{ 3 void jiami(string s);4} 5 class keygenerator implements tripledes{ 7 @override public void jiami(string s){ 9 system.out.println("经钢生成器加密"+s); 101112 13 class cipher implements tripledes{14 15h goverride 16 public void jiami(string s){ 17 system.out.println("密码器加密”+s); 1819 20 ) 21 class factory{ 22 public static tripledes creat (int a) { 23 if(a- 0){ return new keygenerator(); 24 25 26 else if(a -1) 27 return new cipher(); 28 29 else{ 30 return null(446点数解答 | 2024-11-01 16:41:09)191
- using communication_protocols; using FTS_F02391A; using NLog; using ScottPlot.Plottable; using Sunny.UI; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; namespace 窗体界面设计 { public partial class FormHome : UIPage { private readonly DataLogger Log1;//波形图数据记录器 bool bViewSlide = false(562点数解答 | 2025-07-09 16:57:56)89
- public partial class form1 : form { public string vintext = ""; public int vin_number = 0; public struct vin_info { public int row; public string vin_number; public string vin_type; public string vin_car; public string vin_enter; public string vin_out; public string vin_go; public string vin_arrive; } public list<vin_info> vin_infos=new list<vin_info>(); public form1() { initializecomponent()(39点数解答 | 2024-11-05 15:09:08)204