Java 调用对象数组
我想知道对“对象数组”进行函数调用的正确方法。我不确定,我的第一个想法是对象变量的作用域是导致函数调用错误的to函数的局部。我的第二个想法是,我应该先在main中声明对象Java 调用对象数组,java,arrays,object,Java,Arrays,Object,我想知道对“对象数组”进行函数调用的正确方法。我不确定,我的第一个想法是对象变量的作用域是导致函数调用错误的to函数的局部。我的第二个想法是,我应该先在main中声明对象 import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub //Function Calls r
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
//Function Calls
returnObjectArray();
scanner();
userInput(studentInfos,input ); //ERROR HERE is on the function call of Object Array
}
public static Object[] returnObjectArray() {
StudentInfo[] studentInfos = new StudentInfo[2];
return studentInfos;
}
public static Object scanner() {
Scanner input = new Scanner(System.in);
return input;
}
public static Object[] userInput(StudentInfo [] studentInfos, Scanner input) {
int emplid;
double quiz1;
for (int i = 0; i < studentInfos.length; i++) {
System.out.println("Enter student emplid number");
studentInfos[i] = new StudentInfo();
emplid = input.nextInt();
studentInfos[i].setEmplid(emplid);
System.out.println("Enter Quiz one percentage");
quiz1 = input.nextDouble();
studentInfos[i].setQuizScoreOne(quiz1);
System.out.println("Enter Quiz two percentage");
quiz1 = input.nextDouble();
studentInfos[i].setQuizScoreTwo(quiz1);
System.out.println("Enter Quiz three percentage");
quiz1 = input.nextDouble();
studentInfos[i].setQuizScoreThree(quiz1);
}
return studentInfos ;
}
}
导入java.util.Scanner;
公共班机{
公共静态void main(字符串[]args){
//TODO自动生成的方法存根
//函数调用
returnObjectArray();
扫描器();
userInput(StudentInfo,input);//对象数组的函数调用出现错误
}
公共静态对象[]returnObjectArray(){
StudentInfo[]StudentInfo=新的StudentInfo[2];
返回学生信息;
}
公共静态对象扫描仪(){
扫描仪输入=新扫描仪(System.in);
返回输入;
}
公共静态对象[]用户输入(StudentInfo[]StudentInfo,扫描仪输入){
int emplid;
双quiz1;
for(int i=0;i
在方法returnObjectArray()之外,对studentInfo[]的引用不可见;这是本地参考资料。但是,您可以在调用(main)方法中创建一个新引用,并为其分配被调用方法的返回值。
StudentInfo[]StudentInfo=returnObjectArray()代码>对studentInfo[]的引用在方法returnObjectArray()之外不可见;这是本地参考资料。但是,您可以在调用(main)方法中创建一个新引用,并为其分配被调用方法的返回值。
StudentInfo[]StudentInfo=returnObjectArray()
方法中声明的StudentInfo[]
的范围,returnObjectArray
是此方法的本地范围。此外,一旦方法返回,该数组将被垃圾收集,returnObjectArray
。方法中声明的Scanner
对象的情况类似,Scanner
首先,更换以下方法,如下所示:
public static StudentInfo[] returnObjectArray() {
StudentInfo[] studentInfos = new StudentInfo[2];
return studentInfos;
}
public static Scanner scanner() {
Scanner input = new Scanner(System.in);
return input;
}
StudentInfo[] studentInfos = returnObjectArray();
Scanner input = scanner();
userInput(studentInfos, input);
然后,将这些方法返回的值收集到相应类型的变量中,并将其传递给userInput
,如下所示:
public static StudentInfo[] returnObjectArray() {
StudentInfo[] studentInfos = new StudentInfo[2];
return studentInfos;
}
public static Scanner scanner() {
Scanner input = new Scanner(System.in);
return input;
}
StudentInfo[] studentInfos = returnObjectArray();
Scanner input = scanner();
userInput(studentInfos, input);
方法中声明的StudentInfo[]
的范围,returnObjectArray
是此方法的本地范围。此外,一旦方法返回,该数组将被垃圾收集,returnObjectArray
。方法中声明的Scanner
对象的情况类似,Scanner
首先,更换以下方法,如下所示:
public static StudentInfo[] returnObjectArray() {
StudentInfo[] studentInfos = new StudentInfo[2];
return studentInfos;
}
public static Scanner scanner() {
Scanner input = new Scanner(System.in);
return input;
}
StudentInfo[] studentInfos = returnObjectArray();
Scanner input = scanner();
userInput(studentInfos, input);
然后,将这些方法返回的值收集到相应类型的变量中,并将其传递给userInput
,如下所示:
public static StudentInfo[] returnObjectArray() {
StudentInfo[] studentInfos = new StudentInfo[2];
return studentInfos;
}
public static Scanner scanner() {
Scanner input = new Scanner(System.in);
return input;
}
StudentInfo[] studentInfos = returnObjectArray();
Scanner input = scanner();
userInput(studentInfos, input);
return和lost,那么可能想获取return?return和lost,那么可能想获取return?为什么studentInfo[]在方法returnObjectArray()之外不可见。因为studentInfo是一个局部变量,请将它想象成一堆框。一个大盒子是静态字段,里面是实例字段(你没有),然后在里面是所谓的局部变量。那个盒子就是方法。方法无法到达变量的其他“框”(方法)内部。在您的情况下,您需要将returnObjectArray返回的数组分配给main中的局部变量,然后您可以将其传递给另一个方法。此外,您应该使用IDE(IntelliJ是我个人最喜欢的),IDE将帮助您更容易地解决这些问题。为什么studentInfo[]在方法returnObjectArray()之外不可见.由于studentInfo是一个局部变量,请将其想象为一堆框。一个大盒子是静态字段,里面是实例字段(你没有),然后在里面是所谓的局部变量。那个盒子就是方法。方法无法到达变量的其他“框”(方法)内部。在您的情况下,您需要将returnObjectArray返回的数组分配给main中的一个局部变量,然后您可以将其传递给另一个方法。此外,您应该使用IDE(IntelliJ是我个人的最爱),IDE将帮助您更轻松地解决这些问题。