【发布时间】:2019-03-11 14:18:51
【问题描述】:
我开始学习 Java 并且有一个小问题。我的类块中有一组实例,其中包含 2 个方法、1 个主要静态和 1 个 void
public class CurrencyConverter {
int rupee = 63;
int dirham = 3;
int real = 3;
int chilean_peso = 595;
int mexican_peso = 18;
int _yen = 107;
int $austrailian = 2;
int dollar = 0;
int Rupee = 63;
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
CurrencyConverter cc = new CurrencyConverter();
cc.printCurrencies();
}
void printCurrencies() {
System.out.println("rupee: " + rupee);
System.out.println("dirham: " + dirham);
System.out.println("real: " + real);
System.out.println("chilean_peso: " + chilean_peso);
System.out.println("mexican_peso: " + mexican_peso);
System.out.println("yen: " + _yen);
System.out.println("australian: " + $austrailian);
System.out.println("dollar: " + dollar);
System.out.println("Rupee: " + Rupee);
}
}
现在我的问题是,为什么我需要实例化 CurrencyConverter 类才能调用 printCurrencies()?无论如何,您通常不能只调用方法吗?我在同一个班级?
我尝试将 printCurrencies() 的访问修饰符更改为静态,但我的局部变量不是静态的
为什么我需要实例化?
【问题讨论】:
-
printCurrencies是一个实例方法 - 它作用于类的 instance,因此您需要先创建一个实例。请注意,static不是像 public/private 那样的 access 修饰符 - 它是一个修饰符,表示方法/字段/等是否与类型的实例或类型本身相关。另请注意,rupee等变量是字段,而不是局部变量。代码中唯一的 local 变量是cc。我建议在一本好的 Java 书籍或教程中详细了解static的含义。 -
查看这个线程,了解静态方法和实例方法之间的区别。 stackoverflow.com/questions/11993077/…
-
我建议你在问这些问题之前先学习 oops 概念。我相信下次你不会问..每个人都会遇到这种情况......别担心跨度>
-
别忘了给对你有帮助的人点赞
标签: java methods instantiation