繁体   English   中英

从main调用方法并将Array从一个类传递到另一个类

[英]Call method from main and pass Array from one class to another

我面临静态方法的障碍。

  1. 如何调用此方法?
  2. 如何将数组传递给另一个类,以便我可以编辑数组。

谢谢

import java.util.Scanner;

class getArray {

    public static void change(String x[]){

        Scanner keyboard = new Scanner(System.in);
        String dayName[] = {"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"};

        String[] day = new String[7];
        for(int i=0;i<7;i++){

            System.out.print(dayName[i]+ " ");
            day[i] = keyboard.nextLine();

            String str = (dayName[i]+" "+day[i]);
            x[i] = str; 

        }

        System.out.println(" ");
        for(int j=0;j<7;j++){
            System.out.println(x[j]);
        }  
    }

}

class toParse{//would parse the integer out from String[x]

}

class averageTemp{//calculate average of weather

}



public class UniSeven2 {
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here

    }
}

如评论中指出的,请尝试不使用静态方法。 说:

import java.util.Scanner;

class getArray {

public String change(String x[]){

    Scanner keyboard = new Scanner(System.in);
    String dayName[] =  {"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"};

    String[] day = new String[7];
    String str;
    for(int i=0;i<7;i++){

        System.out.print(dayName[i]+ " ");
        day[i] = keyboard.nextLine();

        str = (dayName[i]+" "+day[i]);
        x[i] = str; 

    }

     return str; 
}

}

现在,您可以从所需的任何类中访问“修改后的”字符串。

静态方法属于类本身,而不是由类创建的实例。 因此,当从类的外部调用静态方法时,将在类级别调用它。

所以,说我们有以下。

MyClass {
     public static void myStaticMethod(int[] myIntArray) {
          //Do something
     }
     public void myNonStaticMehtod(int[] myIntArray) {
          //Do something
     }
}

从另一个类调用这些方法时,将以下列方式调用它们。

非静态方法因为非静态方法属于类的给定实例,所以我们必须首先创建该类的实例,然后从该实例调用该方法。

int[] myIntArray = new int[4];
MyClass myClass = new MyClass();
myClass.myNonStaticMethod(myIntArray);

静态方法静态方法属于类本身,应从类级别而不是从类的实例调用。

int[] myIntArray = new int[4];
MyClass.myStaticMethod(myIntArray);

无关紧要的是,您正在创建的类似乎应该改为方法。 从面向对象编程的角度考虑,类是对象(例如汽车或人)的框架。 该类的方法应表示这些对象可以执行的某些操作。 例如car.speedUp()加速汽车,或car.getSpeed()加速汽车的当前速度。

希望这对您有所帮助!

编辑:添加了数组作为方法参数,以帮助回答您的第二个问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM