import java.util.*;public class Test
{
public static void main(String[] args)
{
Employee[] staff = new Employee[3];
staff[0] = new Employee("abc", 5000);
staff[1] = new Employee("efg", 6000);
staff[2] = new Employee("opq", 7000);
for(int i=0; i<staff.length; i++)
{
System.out.println("name = " + staff[i].getName() + ", salary = " + staff[i].getSalary() + ", and his id is " + staff[i].getId());
}
}
}class Employee
{
private String name;
private double salary;
private int id;
private static int nextId = 1;//为什么此处不在下面的构造器中赋值,像id一样?
public Employee(String n, double s)
{
name = n;
salary = s;
id = 0;
}
public String getName()
{
return name;
}
public double getSalary()
{
return salary;
}
public void setId()
{
id = nextId;
nextId++;
}
public int getId()
{
return id;
}
} 我觉得id应该是1, 2, 3,但是结果是
另外,nextId为什么不在构造器中赋值?
{
public static void main(String[] args)
{
Employee[] staff = new Employee[3];
staff[0] = new Employee("abc", 5000);
staff[1] = new Employee("efg", 6000);
staff[2] = new Employee("opq", 7000);
for(int i=0; i<staff.length; i++)
{
System.out.println("name = " + staff[i].getName() + ", salary = " + staff[i].getSalary() + ", and his id is " + staff[i].getId());
}
}
}class Employee
{
private String name;
private double salary;
private int id;
private static int nextId = 1;//为什么此处不在下面的构造器中赋值,像id一样?
public Employee(String n, double s)
{
name = n;
salary = s;
id = 0;
}
public String getName()
{
return name;
}
public double getSalary()
{
return salary;
}
public void setId()
{
id = nextId;
nextId++;
}
public int getId()
{
return id;
}
} 我觉得id应该是1, 2, 3,但是结果是
另外,nextId为什么不在构造器中赋值?
解决方案 »
- java 如何用IO流修改文件的指定位置!
- 为什么在eclipse中修改了项目而在运行后页面中没改
- 可不可以import我自己写的java文件?
- 怎样在JAVA应用程序中设置类路径
- 在Applet上是否可以显示提示对话框
- 搜寻搜索引擎接口
- 请大家教我一下,如何使用定时器,包括用什么头文件,怎么样使用,我搜索了一下也没有什么详细的
- setLayout(new FlowLayout(FlowLayout.LEFT))这句错在哪里?
- 在线程中,重新生成一个类的实例问题?
- JBuilder的Swing中的Button的icon属性都可以接受什么图形文件类型?我用.jpg好象不行!
- 请教,java数组如何存储超过int范围数据
- How to make a template for sysout the multi-localVal
import java.util.*;public class Test111 {
public static void main(String[] args) {
Employee[] staff = new Employee[3];
staff[0] = new Employee("abc", 5000);
staff[1] = new Employee("efg", 6000);
staff[2] = new Employee("opq", 7000); for (int i = 0; i < staff.length; i++) {
System.out.println("name = " + staff[i].getName() + ", salary = "
+ staff[i].getSalary() + ", and his id is "
+ staff[i].getId());
} }
}class Employee {
private String name;
private double salary;
private int id;
private static int nextId = 1;// 为什么此处不在下面的构造器中赋值,像id一样? public Employee(String n, double s) {
name = n;
salary = s;
id = nextId++; //因为构造函数赋值为0
} public String getName() {
return name;
} public double getSalary() {
return salary;
} public void setId() {
id = nextId;
nextId++;
} public int getId() {
return id;
}}
private static int nextId = 1;//为什么此处不在下面的构造器中赋值,像id一样?
这个变量是一个静态变量,在类初始化之前就被初始化,所以要有初始值。