对于类,我必须创建一个Java类定义来描述两个人的汽车贷款。它必须包含:
它还必须有一个getInfo()方法,它连接bankName和accountNumber。
以下是我在我试图创建的汽车贷款类中所拥有的内容,但我还必须创建另一个名为Person的类文件。
CarLoan.java:
package carloandemo.csc212hw01;
public class CarLoan {
public static void main(String[] args) {
String bankName;
bankName = "Chase";
int accountNumber;
accountNumber = 123456;
Person signer;
signer = "Rich";
Person coSigner;
coSigner = "Tim";
String print = getInfo(bankName, accountNumber, signer, coSigner);
System.out.println(print);
// System.out.println(getInfo() );
}
public static String getInfo(String bankName, int accountNumber, String signer, String coSigner) {
return "The bank is " + bankName + " and the account number is " + accountNumber + ". " + "The signer of the loan is " + signer + " and the co-signer is " + coSigner + ".";
}
}
Person.java:
package carloandemo.csc212hw01;
public class Person {
public String signer;
public String coSigner;
}
对于我分配Person变量签名者和coSigner值的代码,我收到一个错误,上面写着"不兼容的类型:字符串无法转换为Person"。因此,我也在String print语句中收到该错误。我怎样才能解决这个问题?我做错了什么?
答案 0 :(得分:4)
你不能这样做。
Person signer;
signer = "Rich";
您将签名者定义为Person
,并且您要分配String
值。
首先,您必须将signer
初始化为new Person()
,然后您可以在新实例中分配变量。
例如:
Person signer = new Person();
signer.signer = "Rich";
您可以通过以下方式更改代码:
public class Person {
public Person(String name, String surname) {
this.name = name;
this.surname = surname;
}
private String name;
private String surname;
//getter
}
public class CarLoan {
public static void main(String[] args) {
String bankName;
bankName = "Chase";
int accountNumber;
accountNumber = 123456;
Person signer = new Person("Rich" , "xxx");
Person cosigner = new Person("Tim" , "xxx");
//...
}
}
答案 1 :(得分:1)
这种情况下,错误消息正好告诉您问题是什么
“不兼容的类型:String无法转换为Person”?
你的问题在这里
Person signer;
signer = "Rich";
“Rich”是一个字符串,而不是一个人。
创建Person的新实例,然后将“Rich”分配给该实例的signer
属性。
Person person = new Person();
person.signer = "Rich";
注意看这段代码:
Person coSigner;
coSigner = "Tim";
String print = getInfo(bankName, accountNumber, signer, coSigner);
您可能实际上并不希望Person
对象包含signer
和coSigner
属性。更好的定义可能是
public class Person {
public String name;
// Other things that describe a person here
}
如果您以这种方式更改Person,您的最终代码将是
Person signer = new Person();
signer.name = "Rich";
Person coSigner = new Person();
coSigner.name = "Tim";
String print = getInfo(bankName, accountNumber, signer, coSigner);