Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从main调用方法并将数组从一个类传递到另一个类_Java_Arrays_Methods - Fatal编程技术网

Java 从main调用方法并将数组从一个类传递到另一个类

Java 从main调用方法并将数组从一个类传递到另一个类,java,arrays,methods,Java,Arrays,Methods,我面临着静态方法的障碍 我怎么称呼这个方法 如何将数组传递给另一个类,以便编辑数组 多谢各位 import java.util.Scanner; class getArray { public static void change(String x[]){ Scanner keyboard = new Scanner(System.in); String dayName[] = {"Monday","Tuesday","Wednesday","Thu

我面临着静态方法的障碍

  • 我怎么称呼这个方法
  • 如何将数组传递给另一个类,以便编辑数组
  • 多谢各位

    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;
    类getArray{
    公共静态无效更改(字符串x[]){
    扫描仪键盘=新扫描仪(System.in);
    字符串dayName[]={“星期一”、“星期二”、“星期三”、“星期四”、“星期五”、“星期六”、“星期日”};
    字符串[]天=新字符串[7];
    
    对于注释中指出的(inti=0;i),尝试不使用静态方法。也就是说:

    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; 
    }
    
    import java.util.Scanner;
    类getArray{
    公共字符串更改(字符串x[]{
    扫描仪键盘=新扫描仪(System.in);
    字符串dayName[]={“星期一”、“星期二”、“星期三”、“星期四”、“星期五”、“星期六”、“星期日”};
    字符串[]天=新字符串[7];
    字符串str;
    
    对于(int i=0;i静态方法属于类本身,而不是由类创建的实例。因此,当从类外部调用静态方法时,您将在类级别调用它

    那么,假设我们有以下内容

    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(),它获取汽车的当前速度

    希望这是有帮助的


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

    “我面临静态方法的障碍。”从未说过更真实的话。从不依赖它们开始。让
    getArray\change
    返回结果数组。然后只需将数组传递给其他方法,就像你使用
    change
    一样……请遵循并大写每个类名的第一个字母。你的帖子帮助我学到了更多关于方法的事情。这是很有见地的,但当时我不得不学习如何让静态方法在我的课堂上发挥作用。所以我没有选择。谢谢你的回答,比我查阅的任何一本书都更具描述性。这真的很有帮助。我希望我能给你投票,但我是这个网站的新手,不能给这个答案投票。谢谢!