import java.util.*;public class EmpoyeeTest {
public static void main(String[] args) {
//fill the staff array with three Empoyee objects
Employee [] staff = new Employee[3];
staff[0] = new Employee("Carl Cracker",7500,1987,12,15);
staff[1] = new Employee("Harry Hacker",5000,1989,10,1);
staff[2] = new Employee("Tony Tester",4000,1990,3,15);
//raise everyone's salary by 5%
for(Employee e:staff)
e.raiseSalary(5);
//print out information about all Employee objects
for(Employee e : staff)
System.out.println("name =" +e.getName()
+",salary" + e.getSalary()
+ ",hireDay=" +e.getHireDay()); }
class Employee
{
public Employee(String n, double s, int year,int month,int day)
{
name = n;
salary = s;
GregorianCalendar calendar= new GregorianCalendar(year,month,day);
//GregorianCalendar uses 0 for january
hireDay = calendar.getTime();
}
public String getName()
{
return name;
}
public double getSalary()
{
return salary;
}
public Date getHireDay()
{
return hireDay;
}
public void raiseSalary(double byPercent)
{
double raise = salary * byPercent/100;
salary += raise;
}
private String name;
private double salary;
private Date hireDay;
}
}这样出现外层实例无法访问的问题。。
是因为不小心把。。最后 一个括号把Employee类也给包括进去了。。有人能讲一下出错的原理不。。吼吼。。
public static void main(String[] args) {
//fill the staff array with three Empoyee objects
Employee [] staff = new Employee[3];
staff[0] = new Employee("Carl Cracker",7500,1987,12,15);
staff[1] = new Employee("Harry Hacker",5000,1989,10,1);
staff[2] = new Employee("Tony Tester",4000,1990,3,15);
//raise everyone's salary by 5%
for(Employee e:staff)
e.raiseSalary(5);
//print out information about all Employee objects
for(Employee e : staff)
System.out.println("name =" +e.getName()
+",salary" + e.getSalary()
+ ",hireDay=" +e.getHireDay()); }
class Employee
{
public Employee(String n, double s, int year,int month,int day)
{
name = n;
salary = s;
GregorianCalendar calendar= new GregorianCalendar(year,month,day);
//GregorianCalendar uses 0 for january
hireDay = calendar.getTime();
}
public String getName()
{
return name;
}
public double getSalary()
{
return salary;
}
public Date getHireDay()
{
return hireDay;
}
public void raiseSalary(double byPercent)
{
double raise = salary * byPercent/100;
salary += raise;
}
private String name;
private double salary;
private Date hireDay;
}
}这样出现外层实例无法访问的问题。。
是因为不小心把。。最后 一个括号把Employee类也给包括进去了。。有人能讲一下出错的原理不。。吼吼。。
因为,你要实例化非静态内部类的话需要一个外部类的引用!除非它是静态内部类!改为! EmpoyeeTest et = new EmpoyeeTest();
staff[0] = et.new Employee("Carl Cracker", 7500, 1987, 12, 15);
staff[1] = et.new Employee("Harry Hacker", 5000, 1989, 10, 1);
staff[2] = et.new Employee("Tony Tester", 4000, 1990, 3, 15);