编写一个方法,该方法接受对象作为参数,并使用其方法执行某些操作(java)

编写一个方法,该方法接受对象作为参数,并使用其方法执行某些操作(java),java,Java,我有老师提供的清单,他想让我知道每个概念。我对他们都很了解,除了名单上的最后一个: -熟悉变量、声明和初始化以及int、double、String和Boolean等基本数据类型 -了解条件逻辑。能够写出if语句 -能够编写一些基本的for或while循环 -能够编写一个简单的方法,它接受一些参数并返回一些信息 -对对象有足够的了解,能够声明、实例化它们,并使用它们的方法进行操作 -能够编写一个接受对象作为参数的方法,并使用其方法执行某些操作 我做了一个小项目来测试我对这些东西的了解程度,我没有任

我有老师提供的清单,他想让我知道每个概念。我对他们都很了解,除了名单上的最后一个:

-熟悉变量、声明和初始化以及int、double、String和Boolean等基本数据类型

-了解条件逻辑。能够写出if语句

-能够编写一些基本的for或while循环

-能够编写一个简单的方法,它接受一些参数并返回一些信息

-对对象有足够的了解,能够声明、实例化它们,并使用它们的方法进行操作

-能够编写一个接受对象作为参数的方法,并使用其方法执行某些操作

我做了一个小项目来测试我对这些东西的了解程度,我没有任何参考资料,甚至谷歌: (这也是位于底部的代码,但更容易查看)

我不确定我在这个项目中使用了最后一个需求(粗体),但是如果我使用了,请让我知道(以及在哪里)

如果我没有使用它(我很确定是这样),我如何在这个项目中实现它

我没有尝试太多,因为我根本不知道如何在Java中以粗体显示步骤

package banking;

public class Accounts {
    String name;
    double balance;

    public Accounts() {
        name = "";
        balance = 0.0;
    }

    public void setName(String newName) {
        name = newName;
    }

    public String getName() {
        return name;
    }

    public double getBalance() {
        return balance;
    }

    public void addFunds(double addedAmount) {
        balance = balance + addedAmount;
    }

    public void withdraw(double withdrawnAmount) {
        balance = balance - withdrawnAmount;        
    }

}




package banking;
import java.util.Scanner;

public class BankSimulator {
    public static void main(String[] args) {

        Accounts a1 = new Accounts();

            Scanner scAccountName = new Scanner(System.in);
            System.out.println("Hello and welcome to the banking system. Please enter a name to create an account, no spaces: ");
            a1.setName(scAccountName.next());
            System.out.println("Account name: " + a1.getName());

        int count = 0;
        while(count == 0) {

            int toDo;
            Scanner scToDo = new Scanner(System.in);
                System.out.println("What would you like to do next?"  + "\n" +
                "Change account name: press 1"  + "\n" +
                "See account name: press 2"  + "\n" +
                "Check balance: press 3"  + "\n" + 
                "Add money to balance: press 4"  + "\n" +
                "Withdraw money from balance: press 5" + "\n" +
                "Exit program: press 6: "); 

                toDo = scToDo.nextInt();

            if(toDo == 1) {

                Scanner scNewAccountName = new Scanner(System.in);
                    System.out.println("Enter new account name: ");
                    a1.setName(scNewAccountName.next());
                    System.out.println("Account name: " + a1.getName());
            }
            else if(toDo == 2) {
                System.out.println("Account name: " + a1.getName());
            }
            else if(toDo == 3) {
                System.out.println("Current balance: $" + a1.getBalance());
            }
            else if(toDo == 4) {
                Scanner scAddMoney = new Scanner(System.in);
                System.out.println("Desired amount to add: $");
                a1.addFunds(scAddMoney.nextDouble());
                System.out.println("Money successfully added to balance."); 
            }
            else if(toDo == 5) {
                Scanner scWithdrawMoney = new Scanner(System.in);
                System.out.println("Desired amount to withdraw: $");
                a1.withdraw(scWithdrawMoney.nextDouble());
                System.out.println("Money successfully withdrawn from balance.");
            }
            else if(toDo == 6) {
                System.out.println("Thank you for using our banking system. Until next time.");
                count = 1;
            }
        }
    }
}

我不太明白你的问题。但是如果您要编写一个方法,该方法接受一个对象作为参数,并使用它的方法来做一些事情,您可以这样尝试

public interface Human {
    void say();
}

public void test(Human human) {
    ...
    human.say();
    ...
}
.....
public static void main(String[] args) {
    ...
    object.test(new Human{
        @Override
        public void say() {
            System.out.println("saying...")
        }
    })    

}
或者简单地传递lambda作为参数

object.test(() -> System.out.println("saying"))

如果您的问题确实不理解以下要点:

-能够编写一个接受对象作为参数的方法,并使用其方法执行某些操作

你已经在做了!让我们来分析一下

“编写一个接受对象作为参数的方法”

这意味着我们需要编写一个方法,在它的方法中接受一个对象——类的一些实例化。因此,改写它的一种方法可能是:“我们需要一个动作,它需要一个对象(随后能够执行动作)来执行它的动作。”

因此,您创建了一个新帐户,
a1
,使用以下行:
Accounts a1=new Accounts()

行中:
a1.setName(scAccountName.next()),您正在使用
方法(
setName
),该方法正在传递对象的结果 (
scAccountName
)的方法(
.next()

因此,如果我们将其分解:

  • 方法:
    .setName()
  • 传递的对象:
    SCAAccountName
  • 对象的方法:
    .next()

恭喜=)

你到底有什么问题?您不明白如何对对象调用方法吗?(提示:您已经在做了!)您不知道如何将对象作为参数传递吗?(提示您已经在做了!)您不能想出一个要实现的示例吗?提示:考虑“从代码中转移X $ > 帐户到另一个帐户。我建议在堆栈溢出中读取,这样您就可以缩小您的问题。