我有我的老师提供的清单,他想让我知道每个概念。除了列表中的最后一个,我对它们都很了解:
-熟悉变量,声明和初始化以及基本数据类型,例如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;
}
}
}
}
答案 0 :(得分:1)
如果您的问题确实无法理解以下项目符号:
-能够编写一个接受对象作为参数并使用其方法执行操作的方法
您已经在做!让我们来分解一下...
“编写一个接受对象作为参数的方法”
这意味着我们需要编写一个方法,该方法在其方法中包含一个对象(类的某些实例化)。因此,可能的一种重新措辞的方式可能是:“ 我们需要一个需要对象(随后能够执行动作)的动作才能执行其动作 ” / p>
因此,您使用以下行创建了一个新帐户a1
:Accounts 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(...)
}