Java 使用类的对象作为其他类的参数
我正在为我的一门非常java的初学者课程创建一台ATM机作为java项目,我对如何使用一个类的对象作为另一个类的参数感到困惑。我知道如何使用继承,但在本例中,User和BankAccount处于同一级别,这也让我在本例中感到困惑 这是我目前的代码: 银行帐户类别Java 使用类的对象作为其他类的参数,java,Java,我正在为我的一门非常java的初学者课程创建一台ATM机作为java项目,我对如何使用一个类的对象作为另一个类的参数感到困惑。我知道如何使用继承,但在本例中,User和BankAccount处于同一级别,这也让我在本例中感到困惑 这是我目前的代码: 银行帐户类别 package atm; public class BankAccount { public double balance; private int accountNumber = 333220; publ
package atm;
public class BankAccount {
public double balance;
private int accountNumber = 333220;
public String user;
public BankAccount(){
balance = 0;
}
public BankAccount(double balance, int accountNumber, User user){
this.balance = balance;
this.accountNumber = accountNumber;
this.user = user; // HERE, THE CONSOLE TELLS ME I CAN'T CONVERT USER TO STRING. USER HAS ONLY STRINGS AS PARAMETERS. DO I NEED TO CAST? HOW WOULD I DO IT?
}
public void accountNumber(){
accountNumber++;
}
public int getAccountNumber(){
return accountNumber;
}
public void deposit (double amount){
balance += amount;
}
public void withDraw(double amount) {
balance -= amount;
}
public double getBalance (){
return balance;
}
public void transfer( BankAccount other,double amount){
withDraw(amount);
other.deposit(amount);
}
}
用户类别:
package atm;
public class User {
public String name;
public String lastName;
private int dOB;
public User (String aName, String aLast){
name = aName;
lastName = aLast;
}
public String getName(){
return name;
}
public String getLastName(){
return lastName;
}
public int getDOB(){
return dOB;
}
public String getUniqueKey(int dOB){
String uniqueKey = name.substring(0,1) + name.substring(name.length() -1) + dOB + lastName.substring(0,1) + lastName.substring(lastName.length()-1);
return uniqueKey.toLowerCase();
}
}
您的
user
实例必须具有数据类型user
而不是String
它一定是这样的:
public class BankAccount {
public double balance;
private int accountNumber = 333220;
public User user;
详细答案:
Java
提供两种类型的数据表示:基本类型
和引用类型
Java有八种内置数据类型,称为Java基本类型
这八种数据类型代表Java对象的构建块,因为所有Java对象都只是这些原语的复杂集合。(short
、int
、double
等)
引用类型保存对对象(类实例)的引用。
与在分配变量的内存中保存其值的基本类型不同,引用不保存它们引用的对象的值
相反,引用通过存储对象所在的内存地址指向对象
实例变量既可以是引用类型,也可以是基元类型在您的示例中,您使用的引用类型表示帐户属性“User”您的User
实例必须具有数据类型User
而不是String
它一定是这样的:
public class BankAccount {
public double balance;
private int accountNumber = 333220;
public User user;
详细答案:
Java
提供两种类型的数据表示:基本类型
和引用类型
Java有八种内置数据类型,称为Java基本类型
这八种数据类型代表Java对象的构建块,因为所有Java对象都只是这些原语的复杂集合。(short
、int
、double
等)
引用类型保存对对象(类实例)的引用。
与在分配变量的内存中保存其值的基本类型不同,引用不保存它们引用的对象的值
相反,引用通过存储对象所在的内存地址指向对象
实例变量既可以是引用类型,也可以是基元类型在您的示例中,您使用的引用类型表示帐户属性“User”您试图做的是为字符串对象引用一个用户对象,这就是为什么会发生“控制台告诉我无法将用户转换为字符串”的情况
您应该做的只是替换这一行:publicstringuser代码>
使用此:公共用户代码>因此对象引用与对象类型本身匹配。您试图做的是为字符串对象引用提供一个用户对象,这就是为什么会出现“控制台告诉我无法将用户转换为字符串”的情况
您应该做的只是替换这一行:publicstringuser代码>
使用此:公共用户代码>因此对象引用与对象类型本身匹配。此处错误:public String user。按公共用户更改它您将用户
字段声明为类型字符串
(公共字符串用户
),但它应声明为用户
。此处错误:公共字符串用户。按公共用户更改它您将用户
字段声明为类型字符串
(公共字符串用户
),但它应声明为用户
。非常感谢您的帮助,Ahmad!很明显,它起了作用,现在我不会忘记在将数据类型分配给对象之前检查它们。再次感谢!非常感谢你的帮助,艾哈迈德!很明显,它起了作用,现在我不会忘记在将数据类型分配给对象之前检查它们。再次感谢!