日期:2014-05-20  浏览次数:20800 次

请帮我看一下这个小程序
我首先建立了一个包,然后在主程序中运行不了。自己找不出错误,请帮忙。

package com.corejava;
import java.util.*;
public class Test2
{
private String name;
private double salary;
private int id;
private static int count = 0;
public Test2(String name, double salary)
{
this.name = name;
this.salary = salary;
count++;
   id = count;
}
}


主程序为
import com.corejava.*;
import java.util.*;

public class Test
{
public static void main(String[] args)
{
Employee[] student = new Employee[3];
student[0] = new Employee("abc", 200);
student[1] = new Employee("efg", 300);
student[2] = new Employee("opq", 400);

for(Employee i: student)
{
System.out.println("name = " + i.name + "salary = " + i.salary + ", and the id is " + i.getId());
}
}
}


运行时错误提示为



------解决方案--------------------
 Test2 类中都没有看到你定义的getId方法,找不到正常
------解决方案--------------------
 Test2 类中都没有看到你定义的getId方法,找不到正常 
------解决方案--------------------
getid()那来的?
------解决方案--------------------
私有的属性需要用get和set方法读写。
------解决方案--------------------
getId() 方法
------解决方案--------------------
有名字为Employee的类么
------解决方案--------------------
引用:
是我自己写错了,在大家帮助下我终于实现了输出。6楼说得很对,没有Employee类,应该是Test2类.我把正克制的主程序贴出来。

import com.corejava.*;
import java.util.*;

public class Test
{
public static void main(String[] args)
{
Test2[] student = new Test2[3];
student[0] = new Test2("abc", 200);
student[1] = new Test2("efg", 300);
student[2] = new Test2("opq", 400);

for(Test2 i: student)
{
System.out.println("name = " + i.name + "salary = " + i.salary + ", and the id is " + i.id);
}
}
}


另外,在包中我把各个变量变成public了,为什么不能private呢?
改后的包为

package com.corejava;
import java.util.*;
public class Test2
{
 public String name;
 public double salary;
 public int id;
 private static int count = 0;
public Test2(String name, double salary)
{
this.name = name;
this.salary = salary;
count++;
   id = count;
}
}


如果变量为private,会有如下错误提示

为什么呢?


你应该好好看看Java的基础,最起码把书的基本语法看一遍,然后遇到问题再来提问。
你的问题太基础了。这就是public private protected Package的各种访问权限的问题了。
public 在全部的类里面都可以引用;private 只能在本类中引用(注意,该类的子类都无法访问父类的private方法,只有这个类的内部类可以访问本类的private修饰的属性和方法);protected修饰的方法或属性,只能由子类来访问,别的类都不能访问。Package只能在同一个包的类进行访问。
去看书吧。你的问题太基础了,不合适拿出来提问。浪费你自己的积分!