[英]Call method from main and pass Array from one class to another
我面临静态方法的障碍。
谢谢
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.