算法第四版Question

时间:2022-11-22 12:31:21

1.ECLIPES标准输入流

①Run As-->Run Configurations-->Commom-->Input File在Input File里面输入要读取的文本文件 这对应着标准入流

②如果还有arg[0]的就在Arguments里面输入参数就可以了。点Run后控制窗口没东西,需要结束输入流。

③输入流最后结束按Ctrl+z显示你的运行结果

2.关于comparable[]作为形参的问题

Date类是Comparable类的子类吗?Comparable类变量可以引用Date类的实例吗?

在以下程序中max方法的参数的返回值均定义Object没有问题,但是定义为Comparable时Date   date   =   max(new   Date(),new   Date());这一句却提示“类型TestComparableMax中的方法max(Comparable   ,Comparable   )对于参数(Date,Date)不适用”。我的问题是:Date类已经实现了Comparable接口,那么Comparable接口就类似于Date的一个父类,那么max(Comparable   ,Comparable   )方法中的Comparable类型变量就应该可以引用实现该接口的类的实例new   Date(),可是此处为什么不可以?而String类却可以? 


TestComparableMax   { 
public   static   Comparable   max(Comparable   o1,Comparable   o2){ 
if(o1.compareTo(o2)   >   0) 
return   o1; 
else   
return   o2; 


public   static   void   main(String[]   args){ 
String   s   =   (String)max( "abc ", "efg "); 
Date   date   =   max(new   Date(),new   Date()); 


}

------解决方案--------------------
你不妨再试试看,至少我在eclipse里面试了一下是可以的 

另外注意一下 
import java.sql.Date;是不可以的 
import java.util.Date;是可以的 

------解决方案--------------------
Date date = (Date)(max(new Date(),new Date())); 

if A extends/implements B.. 

B b = new A().--> it 's right. 

B b; 
A a = (A)b --> 你要做一个强制转换。 

class 小鸟 extends Flyable 
说明 小鸟是可以飞的..Flyable f = new 小鸟(). 
可是 可以飞的是小鸟..小鸟 bird = new Flyable().你觉提这对吗?难道飞机不能飞么?凭什么把一个可以飞的东西确定为小鸟(赋值给小鸟对象)? 
哦,原来你指的可以飞的东西就是小鸟呀。==> 小鸟 bird = (小鸟)(new Flyable()). 
特指(强制转换)一下就好了。