教材上抄的例子,dos窗口下编译通不过,用netbeans6.9.1则可以运行,求各路大神指教。程序如下:importjava.util.*;//书上原来没引入这个,编译找不到符号。自己加的。publicclassObj...
教材上抄的例子,dos窗口下编译通不过,用netbeans 6.9.1则可以运行,求各路大神指教。
程序如下:
import java.util.*; //书上原来没引入这个,编译找不到符号。自己加的。
public class ObjectTest{
public static void main(String[] args){
Employee zhang1=new Employee("张浩",75000,1987,12,15);
Employee zhang2=zhang1;
Employee zhang3=new Employee("张浩",75000,1987,12,15);
Employee bob=new Employee("Bob Brandson",50000,1989,10,1);
System.out.println("zhang1==zhang2:"+(zhang1==zhang2));
System.out.println("zhang1==zhang3:"+(zhang1==zhang3));
System.out.println("zhang1.equals(zhang3):"+zhang1.equals(zhang3));
System.out.println("zhang1.equals(bob):"+zhang1.equals(bob));
System.out.println("bob.toString():"+bob);
Manager carl=new Manager("Carl Cracker",80000,1987,12,15);
Manager boss=new Manager("Carl Cracker",80000,1987,12,15);
boss.setBonus(5000);
System.out.println("boss.toString():"+boss);
System.out.println("carl.equals(boss):"+carl.equals(boss));
System.out.println("zhang1.hashCode():"+zhang1.hashCode());
System.out.println("zhang3.hashCode():"+zhang3.hashCode());
System.out.println("bob.hashCode():"+bob.hashCode());
System.out.println("carl.hashCode():"+carl.hashCode());
System.out.println("boss.hashCode():"+boss.hashCode());
}
}
class Employee{
public Employee(String n,double s,int year,int month,int day){
name=n;
salary=s;
GregorianCalendar calendar=new GregorianCalendar(year,month-1,day);
hireDay=calendar.getTime();
}
public boolean equals(Object otherObject){
if(this==otherObject) return true;
if(otherObject==null) return false;
if(getClass()!=otherObject.getClass()) return false;
Employee other=(Employee) otherObject;
return name.equals(other.name)&&salary==other.salary&&hireDay.equals(other.hireDay);
}
public int hashCode(){
return 7*name.hashCode()+11*new Double(salary).hashCode()+13*hireDay.hashCode();
}
public String toString(){
return getClass().getName()+"[name=]"+name+",salary="+salary+",hireDay="+hireDay+"]";
}
private String name;
private double salary;
private Date hireDay;
}
class Manager extends Employee{
public Manager(String n,double s,int year,int month,int day){
super(n,s,year,month,day);
bonus=0;
}
public void setBonus(double b){
bonus=b;
}
public boolean equals(Object otherObject){
if(!super.equals(otherObject)) return false;
Manager other=(Manager)otherObject;
return bonus==other.bonus;
}
public int hashCode(){
return super.hashCode()+17*new Double(bonus).hashCode();
}
public String toString(){
return super.toString()+"[bonus="+bonus+"]";
}
private double bonus;
}
图为dos与bean的编译运行结果
度娘这延迟货,害我发了两个提问。
补个图上来吧。我只是奇怪为啥dos不能运行的时候bean可以解决?
展开