我被赋予了一个空类,并指示用实体变量和方法填充它,这些实体变量和方法设置或从实例变量中获取值。然后我打开另一个java文件,其中提供了创建新Contact对象的代码,并指示添加使用该对象的其他代码来测试在Contact类中创建的所有方法。
我正在使用Eclipse程序进行编码/测试。唯一正确的是我的方法标题。当我用我所写的内容(下面)进行测试时,我得到一个null,null响应(就是当我删除写有关setPhoneNumber的内容时。当它包含在内时我得到一个更糟糕的错误
线程“main”中的异常java.lang.Error:未解析的编译 问题:无法将phoneNumber解析为变量。)
非常感谢有关获取/设置方法的任何帮助。 我对任何编程都是全新的,并且已经查看过几十个示例,并尝试了很多变化而没有成功。
public class Contact
{
//Instance Variables
private String firstName;
private String lastName;
private int phoneNumber;
public String getFirstName() //method to retrieve first name
{
return this.firstName;
}
public void setFirstName(String firstName) //method to set the first name
{
this.firstName = firstName;
}
public String getLastName()
{
return lastName;
}
public void setLastName(String lastName)
{
this.lastName = lastName;
}
public int getPhoneNumber()
{
return this.phoneNumber;
}
public void setPhoneNumber(int phoneNumber)
{
this.phoneNumber = phoneNumber;
}
public void call()
{
System.out.printf(getFirstName(), getLastName(), getPhoneNumber());
}
}
以下是用于测试上述Contact类的其他java文件:
public class ContactTestDriver
{
public static void main(String[] args)
{
Contact contact = new Contact();
//all above was given; below are my code additions
String myContact;
myContact = contact.getFirstName();
contact.setFirstName();
System.out.println(myContact);
myContact = contact.getLastName();
contact.setLastName();
System.out.println(myContact);
int myNumber;
myNumber = contact.getPhoneNumber();
contact.setPhoneNumber(phoneNumber);
System.out.println(myNumber);
}
}
经过一些有用的评论后,我做了一些改变,但仍然没有成功。我的错误是“myContact无法解析为变量”
以下是修订后的代码: 公共课联系 { //实例变量 private String firstName; private String lastName; private int phoneNumber;
public void setFirstName(String firstName) //method to set the first name
{
this.firstName = firstName;
}
public String getFirstName() //method to retrieve first name
{
return this.firstName;
}
public void setLastName(String lastName)
{
this.lastName = lastName;
}
public String getLastName()
{
return lastName;
}
public void setPhoneNumber(int phoneNumber)
{
this.phoneNumber = phoneNumber;
}
public int getPhoneNumber()
{
return this.phoneNumber;
}
public void call()
{
System.out.printf("Who to call ", getFirstName(), getLastName(), getPhoneNumber());
}
}
这是测试Contact类的代码:
public class ContactTestDriver
{
public static void main(String[] args)
{
Contact contact = new Contact();
//all above was given; below are my code additions
String firstName = "a"; //define first name
contact.setFirstName(firstName); //then set it
myContact = contact.getFirstName(); //then get it
System.out.println(myContact);
String lastName;
contact.setLastName(lastName);
myContact = contact.getLastName();
System.out.println(myContact);
int myNumber = 123;
contact.setPhoneNumber(phonNumber);
myNumber = contact.getPhoneNumer();
System.out.println(myNumber);
}
}
答案 0 :(得分:0)
当您调用带有String parametar的contact.setFirstName();
时,您没有传递名字
public void setFirstName(String firstName){...}
以及contact.setLastName();
:这也需要发送参数
String lastName="//last name";
contact.setLastName(lastName);
你需要知道我们在getter方法之前使用setter方法
首先设置名称,然后获取
String firstName = "a";////define the first name
contact.setFirstName(firstName); //// then set it
myContact = contact.getFirstName(); /// then get it
System.out.println(myContact);
String lastName = "b";
contact.setLastName(lastName);
myContact = contact.getLastName();
System.out.println(myContact);
int myNumber = 123;
contact.setPhoneNumber(myNumber);
myNumber = contact.getPhoneNumber();
System.out.println(myNumber);
答案 1 :(得分:0)
这就是你所拥有的:
myContact = contact.getFirstName();
contact.setFirstName();
首先,你正在设置,然后你正在设置。扭转它们更有意义:
contact.setFirstName();
myContact = contact.getFirstName();
此外,像setFirstName这样的set方法应该接收一个String参数:
contact.setFirstName("Johny");
答案 2 :(得分:0)
您可以使用Eclipse调试工具。在调试模式下运行java类,并在需要分析数据的地方添加断点。
答案 3 :(得分:0)
getter只是一个获取字段的方法,而setter正在设置一个新字段。 你必须先设定一些值,即
int myNumber;
myNumber = contact.getPhoneNumber();
contact.setPhoneNumber(phoneNumber);
System.out.println(myNumber);
int myNumber= "983445556"; // here you are creating an instance
或者你可以通过
来完成 contact.setPhoneNumber(32435435345);
类似于休息案例
答案 4 :(得分:0)
此处,phoneNumber不是main
方法
int myNumber;
myNumber = contact.getPhoneNumber();
contact.setPhoneNumber(phoneNumber);
应该定义。