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

时间:2015-03-10 05:32:58

标签: java arrays methods

我正面临着使用静态方法的障碍。

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

    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
    
        }
    }
    

2 个答案:

答案 0 :(得分:0)

正如评论中指出的那样,尽量不要使用静态方法。那说:

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; 
}

}

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

答案 1 :(得分:0)

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

所以,说我们有以下......

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);

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

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

在一个不相关的注释中,您正在创建的类似乎应该是方法。从面向对象编程的角度来看,类是对象的框架,例如汽车或人。该类的方法应该表示这些对象可以执行的某些操作。例如car.speedUp()加速汽车,或car.getSpeed(),它获得汽车的当前速度。

希望这有用!

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