我正面临着使用静态方法的障碍。
谢谢
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
}
}
答案 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(),它获得汽车的当前速度。
希望这有用!
编辑:添加数组作为方法参数,以帮助回答您的第二个问题。