我有两个类,测试类和主类。类测试有两个属性a和b。我想让程序与数组和用户输入的值一起工作。
public class Testing{
private String a,b;
public Testing(a,b){
this.a=a;
this.b=b;
}
public void getA(){
return a;
}
public void getB(){
return b;
}
}下一个是我的主类
public class Main{
public static void main(String[] args){
Scanner ss = new Scanner(System.in);
Scanner s = new Scanner(System.in);
int x,i;
System.out.print("How many lines? ");
x = s.nextInt();
//method inputData
Testing ts[] = new Testing[x];
for (i=0; i<x; i++)
System.out.print("Enter Value A :"); String a = ss.nextLine();
System.out.print("Enter Value B "); String b = s.nextInt();
ts[i] = new Testing(a,b);
}
//method outputData
System.out.println("Output---");
for(i=0; i<x; i++){
System.out.print("Value A"+i+" "+ts[i].getA());
System.out.print("Value B"+i+" "+ts[i].getB());
}
}它实际上工作得很好,但我想将下面//方法inputData和//方法outputData下面的代码从Main转移到测试中。所以,我只是从Main调用方法inputData()和outputData()。但我不知道该怎么做。如果你能帮我,我将不胜感激。
发布于 2015-12-08 20:07:32
首先,这些方法应该在main方法之外声明。只需将方法的部分复制到测试文件即可。然后,实例化一个测试对象:
Testing test = new Testing(...)
test.inputData()
test.outputData()发布于 2015-12-08 20:14:03
我不明白你为什么要这么做,但你可以试着这样做;
1.
Testing.java;
public class Testing {
private String a, b;
public Testing(String a, String b) {
this.a = a;
this.b = b;
}
public String getA() {
return a;
}
public String getB() {
return b;
}
public static int outputData(int x, Testing[] ts) {
int i;
for (i = 0; i < x; i++) {
System.out.print("Value A" + i + " " + ts[i].getA());
System.out.print("Value B" + i + " " + ts[i].getB());
}
return i;
}
public static Testing[] inputData(Scanner ss, Scanner s, int x) {
int i;
Testing ts[] = new Testing[x];
for (i = 0; i < x; i++) {
System.out.print("Enter Value A :");
String a = ss.nextLine();
System.out.print("Enter Value B ");
String b = s.nextLine();
ts[i] = new Testing(a, b);
}
return ts;
}
}和Main.java;
public class Main {
public static void main(String[] args) {
Scanner ss = new Scanner(System.in);
Scanner s = new Scanner(System.in);
int x, i;
System.out.print("How many lines? ");
x = s.nextInt();
//method inputData
Testing[] ts = Testing.inputData(ss, s, x);
//method outputData
System.out.println("Output---");
i = Testing.outputData(x, ts);
}
}2.
同样,正如@Fabiotk所说,你可以做inputData和outputData方法non-static,并使用创建类对象。
Testing.java;
public class Testing {
private String a, b;
public Testing(String a, String b) {
this.a = a;
this.b = b;
}
public String getA() {
return a;
}
public String getB() {
return b;
}
public int outputData(int x, Testing[] ts) {
int i;
for (i = 0; i < x; i++) {
System.out.print("Value A" + i + " " + ts[i].getA());
System.out.print("Value B" + i + " " + ts[i].getB());
}
return i;
}
public Testing[] inputData(Scanner ss, Scanner s, int x) {
int i;
Testing ts[] = new Testing[x];
for (i = 0; i < x; i++) {
System.out.print("Enter Value A :");
String a = ss.nextLine();
System.out.print("Enter Value B ");
String b = s.nextLine();
ts[i] = new Testing(a, b);
}
return ts;
}
}和Main.java;
public class Main {
public static void main(String[] args) {
Scanner ss = new Scanner(System.in);
Scanner s = new Scanner(System.in);
Testing test = new Testing("a", "b");
int x, i;
System.out.print("How many lines? ");
x = s.nextInt();
//method inputData
Testing[] ts = test.inputData(ss, s, x);
//method outputData
System.out.println("Output---");
test.outputData(x, ts);
}
}发布于 2015-12-08 20:23:34
你可以这样做,但是这些方法应该在main方法之外创建:要调用这些方法,你应该在main方法中这样做:
Testing ts = new Testing();
ts.inputData(4);
ts.outputData(3);要创建方法,请执行以下操作:
//method inputData
Testing ts[] = new Testing[x];
for (i=0; i<x; i++)
System.out.print("Enter Value A :"); String a = ss.nextLine();
System.out.print("Enter Value B "); String b = s.nextInt();
ts[i] = new Testing(a,b);
}方法inputData变成:
public int[] inputData(int x){
Testing ts[] = new Testing[x];
for (i=0; i<x; i++)
System.out.print("Enter Value A :"); String a = ss.nextLine();
System.out.print("Enter Value B "); String b = s.nextInt();
ts[i] = new Testing(a,b);
return ts;
}这一点:
System.out.println("Output---");
for(i=0; i<x; i++){
System.out.print("Value A"+i+" "+ts[i].getA());
System.out.print("Value B"+i+" "+ts[i].getB());
}成为方法outputData:
public void outputData(int x){
for(i=0; i<x; i++){
System.out.print("Value A"+i+" "+ts[i].getA());
System.out.print("Value B"+i+" "+ts[i].getB());
}
}https://stackoverflow.com/questions/34155408
复制相似问题