菜鸟,关于list

林昭希 2011-10-08 08:00:20
package my_project;

import java.util.ArrayList;

class employee {
private String name;
private float salary;
private String idno;
public Object getIdno;

public employee(String name, float salary, String idno) {
this.name = name;
this.salary = salary;
this.idno = idno;
}

public void setName(String name) {
this.name = name;
}

public String getName() {
return name;
}

public void setSalary(float salary) {
this.salary = salary;
}

public float getSalary() {
return salary;
}

public void setIdno(String idno) {
this.idno = idno;
}

public String getIdno() {
return idno;
}

}

class employer {
// ArrayList al = new ArrayList();
ArrayList<employee> al = null;


public employer() {
al = new ArrayList<employee>();
}

public void addemp(employee emp) {
al.add(emp);
}

public void show_info(String idno) {
for (int i = 0; i < al.size(); i++) {
employee employee = (employee) al.get(i);
if (employee.getIdno.equals(idno)) {
System.out.println("该员工的信息是:" + employee.getName() + " "
+ employee.getIdno() + " " + employee.getSalary());
}
}
}
}

public class Array_List {

public static void main(String[] args) {
employee emp1 = new employee("maozedong", 1000, "SB001");
employer eeeee = new employer();
eeeee.al.add(emp1);
eeeee.show_info("SB001");
System.out.println("第1个人的信息:" + emp1.getName() + " ;" + emp1.getIdno()
+ " ;" + emp1.getSalary());

}

}




/**
上面的代码报错了,请问各位牛人,怎么改啊?
显示出来他的信息!谢谢了!
*/
...全文
220 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
林昭希 2011-10-09
  • 打赏
  • 举报
回复
_方式是甲骨文常用的方法,是合法的。
TKD03072010 2011-10-09
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 lin_zhaoxi 的回复:]

看来我的问题还是很多的,我的好好加油了,谢谢各位大神的帮助啊,我先去调一调了
[/Quote]
基本语法 跟 命名规范 得花点心思
  • 打赏
  • 举报
回复
额。。。。我的错,误会了,小尴尬。。。。呵呵
长时间不接触Java什么都忘了,,,
  • 打赏
  • 举报
回复
弱弱的问一句,为什么在下面的命名中要把类命名成Array_List?上面不是ArrayList么?为什么要多一个短横线?而且没有的话是错的?这是什么命名规则,麻烦楼主讲一下,谢
林昭希 2011-10-08
  • 打赏
  • 举报
回复
恩恩 ,解决了,CSDN牛人真还多啊,只不过再次的问一下,还可以对代码进行优化吗?
我的意思是在main函数里面只需创建对象,调用方法,而在其他的类里面写方法,然后实现对所有的对象输出其信息,有用Arraylist进行吗?其次,问一下,那个Arraylist的传入的参数有什么要求啊?
拜托各位大神尽量详细一点,不甚感激!!!再谢啊!!!
林昭希 2011-10-08
  • 打赏
  • 举报
回复
看来我的问题还是很多的,我的好好加油了,谢谢各位大神的帮助啊,我先去调一调了
24K純帥 2011-10-08
  • 打赏
  • 举报
回复
getIdno没初始化,为什么你是4个属性,构造函数只初始化3个。。
风尘中国 2011-10-08
  • 打赏
  • 举报
回复
首先提醒楼主,java命名规范要求类的首字母大写,你这代码还不符合规范
代码里面的主要问题就是Employee的getIdno这个应该是调用方法,代码如下


import java.util.ArrayList;

class Employee {
private String name;
private float salary;
private String idno;
// public Object getIdno;

public Employee(String name, float salary, String idno) {
this.name = name;
this.salary = salary;
this.idno = idno;
}

public void setName(String name) {
this.name = name;
}

public String getName() {
return name;
}

public void setSalary(float salary) {
this.salary = salary;
}

public float getSalary() {
return salary;
}

public void setIdno(String idno) {
this.idno = idno;
}

public String getIdno() {
return idno;
}

}

class Employer {
// ArrayList al = new ArrayList();
ArrayList<Employee> al = null;


public Employer() {
al = new ArrayList<Employee>();
}

public void addemp(Employee emp) {
al.add(emp);
}

public void show_info(String idno) {
for (int i = 0; i < al.size(); i++) {
Employee employee = al.get(i);
if (employee.getIdno().equals(idno)) { //这里进行了修改
System.out.println("该员工的信息是:" + employee.getName() + " "
+ employee.getIdno() + " " + employee.getSalary());
}
}
}
}

public class Array_List {

public static void main(String[] args) {
Employee emp1 = new Employee("maozedong", 1000, "SB001");
Employer eeeee = new Employer();
eeeee.al.add(emp1);
eeeee.show_info("SB001");
System.out.println("第1个人的信息:" + emp1.getName() + " ;" + emp1.getIdno()
+ " ;" + emp1.getSalary());

}

}

淡定的峰哥 2011-10-08
  • 打赏
  • 举报
回复

employee.getIdno.equals(idno)
=>
employee.getIdno().equals(idno)
plusbug 2011-10-08
  • 打赏
  • 举报
回复
“class employee {
private String name;
private float salary;
private String idno;
public Object getIdno;

的 public Object getIdno; 去掉
然后
“public void show_info(String idno) {
for (int i = 0; i < al.size(); i++) {
employee employee = (employee) al.get(i);
if (employee.getIdno.equals(idno)) {”
的 if条件改成 employee.getIdno().equals(idno) 就好了

错误原因是 你的employee类中定义了一个与方法同名 空对象,然后调用方法时你采用了调用该对象的方式,该对象未被初始化,所以报错为 空指针异常
fainfy 2011-10-08
  • 打赏
  • 举报
回复
eeeee.addemp(emp1);

62,614

社区成员

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

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