首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Java中使用方法输入输出变量数组?

在Java中使用方法输入输出变量数组?
EN

Stack Overflow用户
提问于 2015-12-08 20:02:29
回答 4查看 148关注 0票数 1

我有两个类,测试类和主类。类测试有两个属性a和b。我想让程序与数组和用户输入的值一起工作。

代码语言:javascript
复制
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;
 }
}

下一个是我的主类

代码语言:javascript
复制
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()。但我不知道该怎么做。如果你能帮我,我将不胜感激。

EN

回答 4

Stack Overflow用户

发布于 2015-12-08 20:07:32

首先,这些方法应该在main方法之外声明。只需将方法的部分复制到测试文件即可。然后,实例化一个测试对象:

代码语言:javascript
复制
Testing test = new Testing(...)
test.inputData()
test.outputData()
票数 1
EN

Stack Overflow用户

发布于 2015-12-08 20:14:03

我不明白你为什么要这么做,但你可以试着这样做;

1.

Testing.java;

代码语言:javascript
复制
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;

代码语言:javascript
复制
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所说,你可以做inputDataoutputData方法non-static,并使用创建类对象。

Testing.java;

代码语言:javascript
复制
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;

代码语言:javascript
复制
  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);
    }
}
票数 1
EN

Stack Overflow用户

发布于 2015-12-08 20:23:34

你可以这样做,但是这些方法应该在main方法之外创建:要调用这些方法,你应该在main方法中这样做:

代码语言:javascript
复制
  Testing  ts = new Testing();
    ts.inputData(4);
    ts.outputData(3);

要创建方法,请执行以下操作:

代码语言:javascript
复制
  //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变成:

代码语言:javascript
复制
 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;
   }

这一点:

代码语言:javascript
复制
 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:

代码语言:javascript
复制
 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());
   }
 }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34155408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档