创建新字符串数组时不兼容的类型,并且在访问另一个类变量时无法找到符号。
我有两个班级:
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);
}
}
我知道这是基本的,请帮助我! :)
答案 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)
您的计划存在一些问题。
namaMk[counter] = (new String[jumlahMk]);
此声明不正确,因为您在此处尝试将String
转换为String[]
。namaMk
数组的大小。System.out.println(Sistem.namaMk);
MataKuliah
区块中直接创建班级static main
的对象。您需要更正上述所有问题才能运行代码。
以下是更正后的代码段:
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]