public static void main(String[] args) {
Cars[] cars = new Cars[5];
cars[0] = new Cars("BMW", 318, "SomeText");
carDetails(0);
}
private static void carDetails( int index ) {
System.out.println( cars[index].getName() + " "
+ cars[index].getModel() + " "
+ cars[index].getSomeText());
}
我有一个带有构造函数的分离Car类(String,int,String) 以及字段和访问者。我不能编译这个因为我得到了错误 在carDetails方法中。 (汽车[索引] ....)它说:
无法找到符号 符号:变量汽车 location:clas Main
为什么我在carDetails方法中看不到汽车元素? 提前谢谢!
答案 0 :(得分:2)
变量cars
在方法main中本地定义,并且在方法carDetails()
中不可见/可访问。您可以通过在
static Cars[] cars = new Cars[5];
答案 1 :(得分:1)
一种方法中的代码无法在另一种方法中查看变量。如果您需要其他地方可访问的变量,请将它们设为类的静态成员。
class Foo {
private static Car[] cars;
public static void main(String[] args) {
cars = new Car[5];
cars[0] = new Car("BMW", 318, "SomeText");
carDetails(0);
}
private static void carDetails( int index ) {
System.out.println( cars[index].getName() + " "
+ cars[index].getModel() + " "
+ cars[index].getSomeText());
}
}
答案 2 :(得分:0)
将功能更改为:
private static void carDetails(Cars[] cars, int index )
carDetails(cars, 0);
然后也进入汽车。
答案 3 :(得分:0)
将该参数简单传递给方法
private static void carDetails( Cars cars ) {
System.out.println( cars.getName() + " "
+ cars.getModel() + " "
+ cars.getSomeText());
}
从主要调用此方法如
carDetails(cars[0]);
答案 4 :(得分:0)
要执行您想要的操作,您必须将数组作为参数传递给方法。
public static void main(String[] args) {
Cars[] cars = new Cars[5];
cars[0] = new Cars("BMW", 318, "SomeText");
carDetails(0, cars);
}
private static void carDetails( int index, Cars[] cars ) {
System.out.println( cars[index].getName() + " "
+ cars[index].getModel() + " "
+ cars[index].getSomeText());
}
答案 5 :(得分:0)
因为汽车是在主要方法中声明的,并且只在内部可见。对于可见性,您应该将参数传递给carsDetail函数,或者将其声明为类中的静态成员。
static Cars[] cars = new Cars[5];
public static void main(String[] args) {
cars[0] = new Cars();
carDetails(0);
}
private static void carDetails(int index) {
System.out.println(cars[index].getName() + " "
+ cars[index].getModel() + " "
+ cars[index].getSomeText());
}
或
static Cars[] cars = new Cars[5];
public static void main(String[] args) {
cars[0] = new Cars();
carDetails(cars, 0);
}
private static void carDetails(Cars[] cars, int index) {
System.out.println(cars[index].getName() + " "
+ cars[index].getModel() + " "
+ cars[index].getSomeText());
}