黑马程序员技术交流社区
标题:
关于继承多态Scanner输入接收输出的问题,代码能运行,结果...
[打印本页]
作者:
夏季熬成了秋
时间:
2014-6-11 22:30
标题:
关于继承多态Scanner输入接收输出的问题,代码能运行,结果...
本帖最后由 夏季熬成了秋 于 2014-6-12 20:33 编辑
import java.util.Scanner;
//定义手机通用短信接口
interface Phone {
void send();
}
//定义苹果手机短信实现方式
class Iphone implements Phone {
public void send() {
System.out.println("苹果手机模式启动,在发送短信...");
}
}
//定义安卓手机短息实现方式
class AndroidPhone implements Phone {
public void send() {
System.out.println("安卓手机模式启动,在发送短信...");
}
}
//定义塞班手机短息实现方式
class SabanPhone implements Phone {
public void send() {
System.out.println("塞班手机在发送短信");
}
}
//定义工厂模式,根据传入的手机类型进行对应处理
class factory {
public static void show(String type) {
if (type.equals("")) {
System.out.println("类型输入为空,不予处理,请重新输入");
return;
}
Phone p = null;
if (type == "Iphone") {
p = new Iphone();
} else if (type == "AndroidPhone") {
p = new AndroidPhone();
} else {
p = new SabanPhone();
}
p.send();
}
}
public class Test3 {
public static void main(String[] args) {
while (true) {
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
new factory().show(s);
}
}
}
复制代码
我想说的是我 在控制台 输入 Iphone 为什么给我输出的是 塞班手机在发短信 而不是Iphone呢?求给找下错的地方.
作者:
shisishishisi
时间:
2014-6-11 22:46
== 号比较的是对象type和s在内存中的地址值,String类的equals方法比较的才是两个字符串的值是否相等,把==号改成equals就行了
作者:
夏季熬成了秋
时间:
2014-6-11 23:14
shisishishisi 发表于 2014-6-11 22:46
== 号比较的是对象type和s在内存中的地址值,String类的equals方法比较的才是两个字符串的值是否相等,把== ...
额了,幸苦了哈, 瞬间就明白了,.,,,,马虎了 ,嘿嘿,
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2