啊。有个小问题。。

haiing 2008-05-12 11:37:33
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类也给包括进去了。。

有人能讲一下出错的原理不。。吼吼。。
...全文
102 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
gshywx 2008-05-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 anqini 的回复:]
引用 1 楼 lovingprince 的回复:
这是一个内部类的问题,外部要访问这个内部类的话,它应该是public的。

其实不是这个原因!
因为,你要实例化非静态内部类的话需要一个外部类的引用!除非它是静态内部类!改为!

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);

[/Quote]
anqini 2008-05-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lovingprince 的回复:]
这是一个内部类的问题,外部要访问这个内部类的话,它应该是public的。
[/Quote]
其实不是这个原因!
因为,你要实例化非静态内部类的话需要一个外部类的引用!除非它是静态内部类!改为!

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);
lovingprince 2008-05-12
  • 打赏
  • 举报
回复
这是一个内部类的问题,外部要访问这个内部类的话,它应该是public的。
i_saw_you 2008-05-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 anqini 的回复:]
引用 1 楼 lovingprince 的回复:
这是一个内部类的问题,外部要访问这个内部类的话,它应该是public的。

其实不是这个原因!
因为,你要实例化非静态内部类的话需要一个外部类的引用!除非它是静态内部类!改为!

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…
[/Quote]顶了

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧