Java中使用方法的输入和输出变量数组?
我有两个班,测试班和主班。类测试有两个属性a和b。我想让程序与数组和用户输入的值一起工作Java中使用方法的输入和输出变量数组?,java,arrays,Java,Arrays,我有两个班,测试班和主班。类测试有两个属性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{ publ
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());
}
}
公共类主{
公共静态void main(字符串[]args){
扫描仪ss=新扫描仪(System.in);
扫描仪s=新的扫描仪(System.in);
int x,i;
系统输出打印(“多少行?”);
x=s.nextInt();
//方法输入数据
测试ts[]=新测试[x];
对于(i=0;i首先,应该在主方法之外声明方法。只需将方法的节复制到测试文件中。然后,实例化测试对象:
Testing test = new Testing(...)
test.inputData()
test.outputData()
我不明白,你为什么要这样做,但你可以这样尝试
一,
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;
}
}
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;
}
}
二,
正如@Fabiotk所说,您可以使用inputData
和outputData
方法非静态
创建类对象
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;
}
}
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;
}
}
不能。您有一个测试实例数组。它必须类似于测试类中的一个静态打印方法,它将接受一个测试实例数组。您可以这样做,但这将是一个错误的关注点分离。
输入法也是如此
您可以在测试中编写一个print方法,输出特定测试实例的a和b值,然后在主方法中调用该print方法
可能是这样的:
public class Testing {
// ...
public void getDataFromUser(Scanner s) {
System.out.print("Enter Value A :"); this.a = s.nextLine();
System.out.print("Enter Value B "); this.b = s.nextInt();
}
public void printToSysout() {
System.out.print("Value A"+i+" "+getA());
System.out.print("Value B"+i+" "+getB());
}
}
然后在主方法中保持循环,如:
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
// ..get x and such
for (i=0; i<x; i++) {
ts[i] = new Testing(); // create a no-args constructor for Testing
ts[i].getDataFromUser(s);
}
System.out.println("Output---");
for(i=0; i<x; i++) {
ts[i].printToSysout();
}
}
publicstaticvoidmain(字符串[]args){
扫描仪s=新的扫描仪(System.in);
//…得到x之类的
对于(i=0;i您可以这样做,但是这些方法应该在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
测试ts[]=新测试[x];
对于(i=0;i
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());
}
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());
}
}