【发布时间】:2020-05-21 22:16:30
【问题描述】:
我正在 Codecademy 上学习 Java,最近完成了一个计算汽车贷款每月还款额的项目。问题是我不明白解决方案,Codecademy 论坛上没有人回答我的问题。
为什么实例变量是在主方法范围内创建的,而不是在类被声明之后?在这个项目之前我们没有看到任何这样的例子,我不明白。
代码如下:
//Calculates monthly car payment
public class CarLoan {
//Why aren't the variables created here rather than in the main method?
public static void main(String[] args) {
int carLoan = 10000;
int loanLength = 3;
int interestRate = 5;
int downPayment = 2000;
if (loanLength <=0 || interestRate <=0) {
System.out.println("Error! You must take out a valid car loan.");
} else if (downPayment >= carLoan) {
System.out.println("The car can be paid in full.");
} else {
int remainingBalance = carLoan - downPayment;
int months = loanLength * 12;
int monthlyBalance = remainingBalance / months;
int interest = (monthlyBalance * interestRate) / 100;
int monthlyPayment = monthlyBalance + interest;
System.out.println(monthlyPayment);
}
}
}
【问题讨论】:
-
如果变量不需要存在于更广泛的范围内(即方法完成后不需要保留它们的值),则不需要在方法。
-
没有什么能阻止您在那里创建变量。话虽如此,在将要使用它们的地方声明变量通常是一个好习惯。如果只在方法中使用,则在方法中声明。
-
更明确地说:这些不是实例变量(又名字段),它们是局部变量,并且我很难相信您的 Java 培训指南还没有教过您有关局部变量的知识,如果它正在教您有关实例变量的知识。参见例如The Java™ Tutorials - Variables.
-
@Andreas 关于变量的课程只讨论了数据类型。下一课,面向对象的 java,在方法中提到了 java 变量,但它没有称它们为局部变量,也没有说任何关于它们的东西,只是它们不能在方法范围之外使用。这是课程的总结表:codecademy.com/learn/learn-java/modules/…
标签: java methods instance-variables main-method