package learn;
import java.util.*;
import java.io.*;
public class Tyg { /**
* @param args
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
EnMan en=new EnMan();
BufferedReader re=new BufferedReader (new InputStreamReader(System.in));
while(true){
System.out.println("请选择你要进行的操作:");
System.out.println("1:表示添加一个雇员");
System.out.println("2: 表示显示一个雇员");
System.out.println("3:表示修改一个雇员");
System.out.println("4:表示删除一个雇员");
System.out.print("5:表示退出系统");
String operaType=re.readLine();
if(operaType.equals("1")){
System.out.println("雇员的名字为:");
String name=re.readLine();
System.out.println("雇员的编号为:");
String no=re.readLine();
System.out.println("雇员的薪水为:");
float sal=Float.parseFloat(re.readLine());
Emg em=new Emg(name,no,sal);
en.addE(em);
}
else if(operaType.equals("2")){
System.out.println("请输入编号:");
String no=re.readLine();
en.showInfo(no);
}
else if(operaType.equals("3")){
System.out.println("请输入编号:");
String no=re.readLine();
System.out.println("请输入薪水:");
float newsal=Float.parseFloat(re.readLine());
en.changeE(no, newsal);
}
else if(operaType.equals("4")){
System.out.print("请输入编号:");
String no=re.readLine();
en.delE(no);
}
else if(operaType.equals("5")){
System.exit(0);
}
}
}}
class Emg
{
private String name;
private String no;
private float sal;
public Emg(String name,String no,Float sal)
{this.name=name;
this.no=no;
this.sal=sal;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getNo() {
return no;
}
public void setNo(String no) {
this.no = no;
}
public float getSal() {
return sal;
}
public void setSal(float sal) {
this.sal = sal;
}}
class EnMan
{
private ArrayList al=null;
public void EnMan(){
al=new ArrayList();
}
public void addE(Emg e1){
al.add(e1);
}
public void showInfo(String no){
for(int i=0;i<al.size();i++ )
{ Emg e2=(Emg)al.get(i);
if(e2.getNo().equals(no)){
System.out.println("该员工的信息是:");
System.out.println("该员工的编号是"+no);
System.out.println("该员工的工资是"+e2.getSal());
System.out.println("该员工的姓名是"+e2.getName());
}
}
}
//修改工资
public void changeE(String no,Float newsal){
for(int i=0;i<al.size();i++ )
{ Emg e2=(Emg)al.get(i);
if(e2.getNo().equals(no)){
e2.setSal(newsal);
}
}
}
public void delE(String no){
for(int i=0;i<al.size();i++ )
{ Emg e2=(Emg)al.get(i);
if(e2.getNo().equals(no)){
al.remove(i);
//al.remove(e2);
}
}
}
}
import java.util.*;
import java.io.*;
public class Tyg { /**
* @param args
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
EnMan en=new EnMan();
BufferedReader re=new BufferedReader (new InputStreamReader(System.in));
while(true){
System.out.println("请选择你要进行的操作:");
System.out.println("1:表示添加一个雇员");
System.out.println("2: 表示显示一个雇员");
System.out.println("3:表示修改一个雇员");
System.out.println("4:表示删除一个雇员");
System.out.print("5:表示退出系统");
String operaType=re.readLine();
if(operaType.equals("1")){
System.out.println("雇员的名字为:");
String name=re.readLine();
System.out.println("雇员的编号为:");
String no=re.readLine();
System.out.println("雇员的薪水为:");
float sal=Float.parseFloat(re.readLine());
Emg em=new Emg(name,no,sal);
en.addE(em);
}
else if(operaType.equals("2")){
System.out.println("请输入编号:");
String no=re.readLine();
en.showInfo(no);
}
else if(operaType.equals("3")){
System.out.println("请输入编号:");
String no=re.readLine();
System.out.println("请输入薪水:");
float newsal=Float.parseFloat(re.readLine());
en.changeE(no, newsal);
}
else if(operaType.equals("4")){
System.out.print("请输入编号:");
String no=re.readLine();
en.delE(no);
}
else if(operaType.equals("5")){
System.exit(0);
}
}
}}
class Emg
{
private String name;
private String no;
private float sal;
public Emg(String name,String no,Float sal)
{this.name=name;
this.no=no;
this.sal=sal;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getNo() {
return no;
}
public void setNo(String no) {
this.no = no;
}
public float getSal() {
return sal;
}
public void setSal(float sal) {
this.sal = sal;
}}
class EnMan
{
private ArrayList al=null;
public void EnMan(){
al=new ArrayList();
}
public void addE(Emg e1){
al.add(e1);
}
public void showInfo(String no){
for(int i=0;i<al.size();i++ )
{ Emg e2=(Emg)al.get(i);
if(e2.getNo().equals(no)){
System.out.println("该员工的信息是:");
System.out.println("该员工的编号是"+no);
System.out.println("该员工的工资是"+e2.getSal());
System.out.println("该员工的姓名是"+e2.getName());
}
}
}
//修改工资
public void changeE(String no,Float newsal){
for(int i=0;i<al.size();i++ )
{ Emg e2=(Emg)al.get(i);
if(e2.getNo().equals(no)){
e2.setSal(newsal);
}
}
}
public void delE(String no){
for(int i=0;i<al.size();i++ )
{ Emg e2=(Emg)al.get(i);
if(e2.getNo().equals(no)){
al.remove(i);
//al.remove(e2);
}
}
}
}
跑出了空指针异常。
完全可以单步DEBUG出问题所在。
import java.io.*;public class Tyg { /**
* @param args
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
EnMan en = new EnMan();
BufferedReader re = new BufferedReader(new InputStreamReader(System.in));
while (true) {
System.out.println("请选择你要进行的操作:");
System.out.println("1:表示添加一个雇员");
System.out.println("2: 表示显示一个雇员");
System.out.println("3:表示修改一个雇员");
System.out.println("4:表示删除一个雇员");
System.out.print("5:表示退出系统");
String operaType = re.readLine();
if (operaType.equals("1")) {
System.out.println("雇员的名字为:");
String name = re.readLine();
System.out.println("雇员的编号为:");
String no = re.readLine();
System.out.println("雇员的薪水为:");
float sal = Float.parseFloat(re.readLine());
Emg em = new Emg(name, no, sal);
en.addE(em); } else if (operaType.equals("2")) {
System.out.println("请输入编号:");
String no = re.readLine();
en.showInfo(no); } else if (operaType.equals("3")) {
System.out.println("请输入编号:");
String no = re.readLine();
System.out.println("请输入薪水:");
float newsal = Float.parseFloat(re.readLine());
en.changeE(no, newsal); } else if (operaType.equals("4")) {
System.out.print("请输入编号:");
String no = re.readLine();
en.delE(no);
} else if (operaType.equals("5")) {
System.exit(0);
}
} }}class Emg {
private String name; private String no; private float sal; public Emg(String name, String no, Float sal) {
this.name = name;
this.no = no;
this.sal = sal; } public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String getNo() {
return no;
} public void setNo(String no) {
this.no = no;
} public float getSal() {
return sal;
} public void setSal(float sal) {
this.sal = sal;
}}class EnMan {
private static ArrayList al = null; static {
al = new ArrayList();
} public void addE(Emg e1) { al.add(e1);
} public void showInfo(String no) {
for (int i = 0; i < al.size(); i++) {
Emg e2 = (Emg) al.get(i);
if (e2.getNo().equals(no)) {
System.out.println("该员工的信息是:");
System.out.println("该员工的编号是" + no);
System.out.println("该员工的工资是" + e2.getSal());
System.out.println("该员工的姓名是" + e2.getName()); }
}
} // 修改工资
public void changeE(String no, Float newsal) {
for (int i = 0; i < al.size(); i++) {
Emg e2 = (Emg) al.get(i);
if (e2.getNo().equals(no)) {
e2.setSal(newsal);
}
} } public void delE(String no) {
for (int i = 0; i < al.size(); i++) {
Emg e2 = (Emg) al.get(i);
if (e2.getNo().equals(no)) {
al.remove(i);
//al.remove(e2);
}
} }
}
试试
public void EnMan(){
al=new ArrayList();
} public EnMan(){
al=new ArrayList();
}
这才是构造函数
al=new ArrayList();
}
去掉这个void也可以解决问题 有void就不是构造函数了 你这里没有任何地方对al数组进行初始化 向它添加元素当然是 NULLPOINTEXCEPTION了