Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用类的对象作为其他类的参数_Java - Fatal编程技术网

Java 使用类的对象作为其他类的参数

Java 使用类的对象作为其他类的参数,java,Java,我正在为我的一门非常java的初学者课程创建一台ATM机作为java项目,我对如何使用一个类的对象作为另一个类的参数感到困惑。我知道如何使用继承,但在本例中,User和BankAccount处于同一级别,这也让我在本例中感到困惑 这是我目前的代码: 银行帐户类别 package atm; public class BankAccount { public double balance; private int accountNumber = 333220; publ

我正在为我的一门非常java的初学者课程创建一台ATM机作为java项目,我对如何使用一个类的对象作为另一个类的参数感到困惑。我知道如何使用继承,但在本例中,User和BankAccount处于同一级别,这也让我在本例中感到困惑

这是我目前的代码:

银行帐户类别

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!很明显,它起了作用,现在我不会忘记在将数据类型分配给对象之前检查它们。再次感谢!非常感谢你的帮助,艾哈迈德!很明显,它起了作用,现在我不会忘记在将数据类型分配给对象之前检查它们。再次感谢!