编写一个接受一个对象作为参数的方法,并使用该方法做某事(java)

时间:2019-07-08 02:13:42

标签: java

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

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

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

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

-能够编写一个简单的方法,该方法带有一些参数并返回一些内容

-了解足够的对象,以便能够声明,实例化它们并使用它们的方法来做事

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

我从事一个小项目,以测试我对这些知识的了解程度,而我做到的却没有任何参考,甚至是google:https://gist.github.com/KamronKelley/3272e2c7c63741b2f47f87d6819b944e (这也是底部的代码,但这更易于查看imo)

我不确定在该项目中是否使用了最后一个要求(粗体显示),但如果确定,请告诉我(以及在哪里)。

如果我不使用它(我很确定是这样),我如何在该项目中实现它?

我没有做太多尝试,因为我根本不知道该怎么用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;
            }
        }
    }
}

2 个答案:

答案 0 :(得分:1)

如果您的问题确实无法理解以下项目符号:

  

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

您已经在做!让我们来分解一下...

  

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

这意味着我们需要编写一个方法,该方法在其方法中包含一个对象(类的某些实例化)。因此,可能的一种重新措辞的方式可能是:“ 我们需要一个需要对象(随后能够执行动作)的动作才能执行其动作 ” / p>

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

  

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

所以,如果我们将其分解:

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

恭喜=)

答案 1 :(得分:0)

我不太清楚您的问题。但是,如果您要 编写一种接受对象作为参数并使用其方法执行操作的方法 ,则可以尝试这样。

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

或者只是传递一个lambda作为参数。

f<-function(a,b,x,y,z){
...
return(...) 
}