package sep_19th_2011;
import java.util.GregorianCalendar;
import java.util.Random;public class Mgr_Emp
{
public static void main(String[] args)
{
Manager boss=new Manager("Kevin", 80000, 1977, 8, 22);
boss.setbonus();
Employee_1[] staff=new Employee_1[4];
staff[0]=boss;
staff[1]=new Employee_1("Harry", 56666, 1986, 4, 12);
staff[2]=new Employee_1(40000, 1984, 3, 22);
for(Employee_1 e:staff)
System.out.println("Id:"+e.getId()+"Name"+e.getname()+" ,salary"+e.getsalary());
System.out.println("N ID is:"+nextId);
}
}class Employee_1
{
public Employee_1(String aname, double asalary, int year, int month, int day)
{
name=aname;
salary=asalary;
GregorianCalendar calendar=new GregorianCalendar(year, month-1, day);
hireDay=calendar.getTime();
}
public Employee_1(double asalary, int year, int month, int day)
{
this("NO."+nextId+"Employee", asalary, year, month, day);
}
public String getname()
{
return name;
}
public double getsalary()
{
return salary;
}
public Date gethireDay()
{
return hireDay;
}
public int getId()
{
return id;
}
private String name="Nike";
private double salary=5000;
private static int nextId;
private int id;
private Date hireDay;
static
{
Random generator=new Random();
nextId=generator.nextInt(10000);
}
{
id=nextId;
nextId++;
}
}package sep_19th_2011;class Manager extends Employee_1
{
public Manager(String name, double salary, int year, int month, int day)
{
super(name, salary, year, month, day);
bonus=0;
}
public double getsalary()
{
double basesalary=super.getsalary();
return basesalary+bonus;
}
public void setbonus()
{
bonus=salesincome*1.15;
}
private double bonus;
private double salesincome=2000;}今天在试验子类和父类继承的问题,上面代码中红色的部分是出错的地方。
1.在MAIN方法下nextId始终显示错误,problem面板上显示nextId cannot be resolved to a variable。是不是在继承情况下,子类无法访问父类的静态初始化块中的变量?
2.用DATE定义hireday,出现的problem是date cannot be resolved to a type。这个又是什么原因呢?
import java.util.GregorianCalendar;
import java.util.Random;public class Mgr_Emp
{
public static void main(String[] args)
{
Manager boss=new Manager("Kevin", 80000, 1977, 8, 22);
boss.setbonus();
Employee_1[] staff=new Employee_1[4];
staff[0]=boss;
staff[1]=new Employee_1("Harry", 56666, 1986, 4, 12);
staff[2]=new Employee_1(40000, 1984, 3, 22);
for(Employee_1 e:staff)
System.out.println("Id:"+e.getId()+"Name"+e.getname()+" ,salary"+e.getsalary());
System.out.println("N ID is:"+nextId);
}
}class Employee_1
{
public Employee_1(String aname, double asalary, int year, int month, int day)
{
name=aname;
salary=asalary;
GregorianCalendar calendar=new GregorianCalendar(year, month-1, day);
hireDay=calendar.getTime();
}
public Employee_1(double asalary, int year, int month, int day)
{
this("NO."+nextId+"Employee", asalary, year, month, day);
}
public String getname()
{
return name;
}
public double getsalary()
{
return salary;
}
public Date gethireDay()
{
return hireDay;
}
public int getId()
{
return id;
}
private String name="Nike";
private double salary=5000;
private static int nextId;
private int id;
private Date hireDay;
static
{
Random generator=new Random();
nextId=generator.nextInt(10000);
}
{
id=nextId;
nextId++;
}
}package sep_19th_2011;class Manager extends Employee_1
{
public Manager(String name, double salary, int year, int month, int day)
{
super(name, salary, year, month, day);
bonus=0;
}
public double getsalary()
{
double basesalary=super.getsalary();
return basesalary+bonus;
}
public void setbonus()
{
bonus=salesincome*1.15;
}
private double bonus;
private double salesincome=2000;}今天在试验子类和父类继承的问题,上面代码中红色的部分是出错的地方。
1.在MAIN方法下nextId始终显示错误,problem面板上显示nextId cannot be resolved to a variable。是不是在继承情况下,子类无法访问父类的静态初始化块中的变量?
2.用DATE定义hireday,出现的problem是date cannot be resolved to a type。这个又是什么原因呢?
解决方案 »
- 无法解析是什么错误?
- 我现在做一个BBS,做到主题页面,单行和双行颜色不要相同,也就是说,邻行颜色不能相同,怎么做?前辈们给思路
- 一个类型不兼容的问题.
- 如何将string类型数据插入到SQL中Varchar(255)中!
- 兰州工业高等专科学校
- 帮忙看看下面这段到底应该怎样理解?
- 关于JAVA访问数据库两个问题
- 有几个问题想问各位高手。第一、用java开发应用程序分为几个方向。第二、java的学习分几个层次。第三、java以后的发展方向。这个包括两个一个是技术发展方向、一个是应用发展方向。本问题的分数我可以一直加!
- Arrays.sort(),collectins.sort()这些排序的方法好像是大小写区分的。大写在前,小写在后。如何大小写不区分排序。
- 急!!!!!!!!!!!一个Application无法连接数据库,找不到java.sql.*.怎末配置啊?
- 自定义annotation属性可选问题
- 如何计算一个字符串中包含多少个合法英文单词呢?
。Main类和Manage,Employee_1的关系是同包。具有包权限,但是访问不了私有权限。你可以这样改。在Employee_1 中把nextId的声明中private删除(就是赋予了包权限)。然后在Main类中main方法中访问,而且你访问的时候也不对。从一个类访问另外一个类的静态成员变量要加上类名称的格式是:类名.静态成员变量。这里面应该是Employee_1.nextId。你是刚接触java吧。类继承还有成员变量的访问权限,你可以看下java编程思想第四版。网上有电子版的。里面关于面向对象这块讲的很详细。可以看看。
2.第二个问题是因为你没有导入相应的包。只要在开头导入就行了。在import java.util.Random;下面写上import java.util.Date;就行了。