创建新字符串数组时不兼容的类型,并且在访问另一个类变量

时间:2016-02-27 10:48:24

标签: java

创建新字符串数组时不兼容的类型,并且在访问另一个类变量时无法找到符号。

我有两个班级:

  • SISTEM
  • MataKuliah

Sistem上课:

/*
    Test array

*/
import java.util.Scanner;

class Sistem
{
        public static void main (String args[]){
            int counter = 0, jumlahMk;
            String[] namaMk = new String[jumlahMk];


            Scanner in = new Scanner(System.in);
            MataKuliah mk = new MataKuliah();

            jumlahMk = in.nextInt();
            in.nextLine();
            while(counter<jumlahMk){
                namaMk[counter] = (new String[jumlahMk]);
                namaMk[counter] = in.nextLine();
                counter++;
            }

            mk.printNamaMatkul(namaMK);


        }//end main
}//end class

MataKuliah上课:

/*
    MataKuliah class
*/

class MataKuliah{
    void printNamaMatkul(String[] namaMk){
        System.out.println(Sistem.namaMk);

    }
}

我知道这是基本的,请帮助我! :)

2 个答案:

答案 0 :(得分:0)

您只能访问其他课程中的字段。更好的方法是传递您想要使用的数据,这就是您实际执行的操作。

express: {
  options: {
    // Enable Node's --harmony flag
    harmony: true,
    ...
  }
}

参数的名称不必与传递给它的参数匹配。即你可以写

void printNamaMatkul(String[] words){
    System.out.println(Arrays.toString(words));
}

但是将方法的名称设为通用

会更有意义
printNamaMatkul(namaMk);

答案 1 :(得分:0)

您的计划存在一些问题。

  1. namaMk[counter] = (new String[jumlahMk]);此声明不正确,因为您在此处尝试将String转换为String[]
  2. 您没有给出namaMk数组的大小。
  3. 您正在尝试通过System.out.println(Sistem.namaMk);
  4. 引用其他类的私有成员
  5. 您正在MataKuliah区块中直接创建班级static main的对象。
  6. 您需要更正上述所有问题才能运行代码。

    以下是更正后的代码段:

    public class MataKuliah {
        public void printNamaMatkul(String[] namaMK) {
            System.out.println(Arrays.toString(namaMK));
        }
    }
    
    class Sistem
    {
        public static void main (String args[]) {
            /* Create a new instance of Sistem */
            Sistem sistem = new Sistem();
            sistem.run();
        }
    
        private void run() {
            int counter = 0, jumlahMk;
    
            Scanner in = new Scanner(System.in);
            /* This will be valid now */
            MataKuliah mk = new MataKuliah();
    
            jumlahMk = in.nextInt();
            /* Create the String[] Array */
            String[] namaMk = new String[jumlahMk];
            in.nextLine();
            while(counter < jumlahMk){
                namaMk[counter] = in.nextLine();
                counter++;
            }
            mk.printNamaMatkul(namaMk);
        }
    }
    

    输入:

    3
    foo
    bar
    foobar
    

    输出:

    [foo, bar, foobar]