我试图让Bil从Person获得一个名字,方法是在Bil中将方法Bagare()与人物中的bilagare()对话。我的意图是让bilagare()通过avläsNamn()(也在Person中)获得名称。我究竟做错了什么?我确信有更简单的方法可以做到这一点,但它是Java类中的一个赋值,我们必须使用上面提到的类和方法。以下是Bil和Person两个班级
package Objektorientering_kap_4;
import javax.swing.JOptionPane;
public class Bil{
Person ba;
public String regNum(){
String registrering = JOptionPane.showInputDialog("Ange registreringsnummer, utan mellanslag");
char l1 = registrering.charAt(0);
char l2 = registrering.charAt(1);
char l3 = registrering.charAt(2);
char n1 = registrering.charAt(3);
char n2 = registrering.charAt(4);
char n3 = registrering.charAt(5);
String N = ""+n1+n2+n3;
int NS = Integer.parseInt(N);
if(registrering.length() == 6 && 000 <= NS && NS <= 999 ){
String regnum = registrering;
return(regnum);
}
else{
String error = "Error";
return(error);
}
}
public String bilmarke(){
String marke = JOptionPane.showInputDialog("Ange bilmärke");
return(marke);
}
public String modell(){
String bilmodell = JOptionPane.showInputDialog("Ange bilmodell");
return(bilmodell);
}
public String Bagare(){
String namn = ba.bilagare();
return(namn);
}
}
和
package Objektorientering_kap_4;
import javax.swing.JOptionPane;
public class Person{
private String namn, adress;
private Person makeMaka;
public Person(String n){
namn = "Sven";
}
public String avläsNamn(){
return namn;
}
public void sättAdress(String adr){
adress = adr;
}
public String avläsAdress(){
return adress;
}
public void bröllop(Person p){
makeMaka = p;
p.makeMaka = this;
}
public void skilsmässa(){
makeMaka.makeMaka = null;
makeMaka = null;
}
public Person giftMed(){
return makeMaka;
}
public String bilagare(){
String agare = avläsNamn();
return(agare);
}
}
答案 0 :(得分:1)
你永远不会初始化你的ba
变量,所以它是null,你不能通过该空引用调用Person
的任何方法。也许你应该传递给Bil
一个Person
对象的构造函数。
答案 1 :(得分:0)
Person ba
是人物对象的引用,而非实际实例。如果你想要一个人物对象,你需要写
Person ba = new Person("name");
否则你已经写好了。
Person ba = null;
因此,当您使用ba
时,您会获得NullPointerException
答案 2 :(得分:0)
使用Person
运算符new
创建Person ba = new Person()
对象的实例。