Java调试笔记第一章(引用传递)

城市和省份(一对一)

class Province
{private int pnumber;
private String name;
private City cities[];
public Province(int pnumber,String name)
{this.pnumber=pnumber;
this.name=name;
}
public void setCities(City cities[])
{this.cities=cities;
}
public City[]getCities()
{return this.cities; //引用传递
}
//public void setPnumber(int pnumber)
// {this.pnumber=pnumber;
//}
//public int getPnumber()
// {return this.pnumber;
//}
//public void setPronce(String name)
// {this.name=name;
//}
//public String getName()
// {return this.name; //setter,getter设置
//}
public String getInfo()
{return"省份编号:"+this.pnumber+",名称:"+this.name;
}
}
class City
{private int cnumber;
private String name;
private Province province;
public void setProvince(Province province){
this.province=province;
}
public Province getProvince(){
return this.province;
}
public City(int cnumber,String name)
{this.cnumber=cnumber;
this.name=name;
}
//public void setCnumber(int cnumber)
// {this.cnumber=cnumber;
//}
//public int getCnumber()
// {return this.cnumber;
//}
//public void setName(String name)
// {this.name=name;
//}
//public String getname()
// {return this.name;
//}
public String getInfo()
{return"城市编号:"+this.cnumber+",名称:"+this.name;
}
}
//import Program Files.testdemo.Province
//import Program Files.testdemo.City
public class PCtest
{ public static void main(String args[]){
Province pro=new Province(1,"江苏省");
City c1=new City(1001,"南京");
City c2=new City(1002,"苏州");
City c3=new City(1003,"泰州");
pro.setCities(new City[]{c1,c2,c3});
c1.setProvince(pro);
c2.setProvince(pro);
c3.setProvince(pro);
System.out.println(c2.getProvince().getInfo());
//for(int x=0;x<getCities().length;x++){
//System.out.println(pro.getCities()[x].getInfo());
//}
}

}

程序出错NullPointerException 

错误原因可能:这是空指针异常,就是说你有一个变量是空引用.比如说你声明了一个变量,而你没new它,就是没创建实例,而在这时你用了这个变量,就会报空指针异常,我建议你看一下你的代码,看看有什么变量没创建.如果代码太多,那打断点看一下.

 

class Province
{private int pid;
private String name;
private City cities[];
public Province(int pid,String name)
{this.pid=pid;
this.name=name;
}
public void setCities(City cities[])
{this.cities=cities;
}
public City[]getCities()
{return this.cities; //引用传递
}
public Province(){} //无参构造
public void setPid(int pid)
{this.pid=pid;
}
public int getPid()
{return this.pid;
}
public void setName(String name)
{this.name=name;
}
public String getName()
{return this.name; //setter,getter设置
}
public String getInfo()
{return"省份编号:"+this.pid+",名称:"+this.name;
}
}
class City
{private int cid;
private String name;
private Province province;
public City(){} //无参构造
public City(int cid,String name)
{this.cid=cid;
this.name=name;
}
public void setProvince(Province province){
this.province=province;
}
public Province getProvince(){
return this.province;
}

public void setCid(int cid)
{this.cid=cid;
}
public int getCid()
{return this.cid;
}
public void setName(String name)
{this.name=name;
}
public String getname()
{return this.name;
}
public String getInfo()
{return"城市编号:"+this.cid+",名称:"+this.name;
}
}
//import Program Files.testdemo.Province
//import Program Files.testdemo.City
public class PCtest
{ public static void main(String args[]){
Province pro=new Province(1,"江苏省");
City c1=new City(1001,"南京");
City c2=new City(1002,"苏州");
City c3=new City(1003,"泰州");
pro.setCities(new City[]{c1,c2,c3});
c1.setProvince(pro);
c2.setProvince(pro);
c3.setProvince(pro);
System.out.println(c2.getProvince().getInfo());
for(int x=0;x<pro.getCities().length;x++){
System.out.println(pro.getCities()[x].getInfo());
}
}

}

 

posted @ 2018-03-29 13:48  Syiren  阅读(100)  评论(0编辑  收藏  举报