在主类中创建的集合,怎么才能在同一个包下的其他类中调用其get方法呢,实在是搞不懂了,为什么在同一个包下却不能调用阿。
package ktodoss;
public class Dog{
int number;
String name;
int price;
public Dog(int number,String name,int price){
this.number = number;
this.name = name;
this.price = price;
}
public void setNumber(int number){this.number = number;}
public int getNumber(){return number;}
public void setName(String name){this.name = name;}
public String getName(){return name;}
public void setPrice(int price){this.price = price;}
public int getPrice(){return price;}
public void findDog(int ob) {
for(int i=0;i<3;) {
if(listDog.get(i).number != ob) {
i++;
}
else {
System.out.print("编号对应的狗的为");
System.out.println(listDog.get(i));
System.out.print("狗的编号为");
System.out.println(listDog.get(i).number);
System.out.print("狗的名字为");
System.out.println(listDog.get(i).name);
System.out.print("狗的价格为");
System.out.println(listDog.get(i).price);
break;
}
}
}
}
package ktodoss;
import java.util.*;
import java.util.Scanner;
public class DogManage{
public static void main(String[] ages){
int max=0;
List<Dog> listDog = new ArrayList<Dog>();
Dog Dog1 = new Dog(1,"1",11);
Dog Dog2 = new Dog(2,"2",22);
Dog Dog3 = new Dog(3,"3",33);
listDog.add(Dog1);
listDog.add(Dog2);
listDog.add(Dog3);
max += (listDog.get(0).price+listDog.get(1).price+listDog.get(2).price);
System.out.println("所有狗的价格总和为"+max);
Scanner in = new Scanner(System.in);
int b = in.nextInt();
Dog1.findDog(b);
}
}
为什么会显示错误呢,求指正,如图:
findDog 方法中将 这个listDog作为入参就行了
public void findDog(int ob, List<Dog> listDog){
}
listDog 是定义在主函数里的局部变量啊。解决的方法是,把 listDog 设置为 DogManage 的公共静态变量:
package ktodoss;
import java.util.*;
import java.util.Scanner;
public class DogManage{
public static List<Dog> listDog = new ArrayList<Dog>();
public static void main(String[] ages){
int max=0;
Dog Dog1 = new Dog(1,"1",11);
Dog Dog2 = new Dog(2,"2",22);
Dog Dog3 = new Dog(3,"3",33);
listDog.add(Dog1);
listDog.add(Dog2);
listDog.add(Dog3);
max += (listDog.get(0).price+listDog.get(1).price+listDog.get(2).price);
System.out.println("所有狗的价格总和为"+max);
Scanner in = new Scanner(System.in);
int b = in.nextInt();
Dog1.findDog(b);
}
}
然后在 Dog.java 中,把 listDog 改为 DogManage.listDog 就行了