在Java中,如何从不同的类调用变量并将其添加到ArrayList的末尾?

在Java中,如何从不同的类调用变量并将其添加到ArrayList的末尾?,java,arraylist,Java,Arraylist,我正在尝试制作一个程序来练习ArrayList,它接受几个用户输入的数字,并将输入的正数相加。然后它应该打印所有的正数,总数在末尾,例如[1,-2,3,-4,5]变成[1,3,5,9]。我知道我的代码是不正确的,因为这不是从另一个类调用方面的方式,但我已经尝试了几种方法,我一直在研究如何使用ArrayList来实现这一点。任何帮助都将不胜感激 import java.util.ArrayList; import java.util.Arrays; import java.util.Scanner

我正在尝试制作一个程序来练习ArrayList,它接受几个用户输入的数字,并将输入的正数相加。然后它应该打印所有的正数,总数在末尾,例如[1,-2,3,-4,5]变成[1,3,5,9]。我知道我的代码是不正确的,因为这不是从另一个类调用方面的方式,但我已经尝试了几种方法,我一直在研究如何使用ArrayList来实现这一点。任何帮助都将不胜感激

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
import java.util.*;
import java.io.*;


class Main {
 
  public static void main(String[] args) {

    Scanner scan = new Scanner(System.in);
    System.out.println("Enter the length of your ArrayList: ");
    int black = scan.nextInt();
    
      Scanner scan2 = new Scanner(System.in);
    ArrayList<Integer> list = new ArrayList<Integer>();
    
    System.out.println("Enter numbers: ");
    for(int i = 0; i < black; i++) {
        list.add(scan.nextInt());
    }

    /* call azure and add to the end of list */
    System.out.println(appendPosSum(newC));

  }

    
    public static int appendPosSum(ArrayList<Integer> list) {
    int azure = 0;
    ArrayList<Integer> newC = new ArrayList<Integer>();
    for(int i = 0; i < list.size(); i++) {
      if(list.get(i) > 0) {
        newC = list.get(i);
        azure += list.get(i);
      }
    }
    return azure;
    return newC;
  }
}
import java.util.ArrayList;
导入java.util.array;
导入java.util.Scanner;
导入java.util.*;
导入java.io.*;
班长{
公共静态void main(字符串[]args){
扫描仪扫描=新扫描仪(System.in);
System.out.println(“输入ArrayList的长度:”);
int black=scan.nextInt();
扫描仪scan2=新扫描仪(System.in);
ArrayList=新建ArrayList();
System.out.println(“输入数字:”);
对于(int i=0;i0){
newC=list.get(i);
azure+=list.get(i);
}
}
返回蔚蓝;
返回newC;
}
}

建议:创建类的实例:

您可以使用以下代码在主类中创建另一个类的实例:

other root = new other();
确保类名是正确的。例如,如果该类被称为Wonderful,则代码应为:

Wonderful root = new Wonderful();
因此,通过引用root,您就引用了精彩的类

否则:继承类:如果您想“连接”这些类,而其他类与Main类似,这是不可能的,您可以使用继承。继承类似于族谱或分类法:一个类/对象与另一个类共享变量或方法。例如,公共类程序员扩展了人。在本例中,程序员继承了人类的所有特征,但也有自己的特征。因此,如果您编写了
公共类other extensed Main
,other将是Main的一个扩展,具有自己的特性。下面是一个继承的例子:

public class Panda extends Animal{
    public Panda() {
        super("Panda");
        System.out.println("Panda0");
    }
    
    public Panda(String name) {
        System.out.println("Panda1");
    }
    
    public String getName() {
        System.out.println("Panda: getName");
        return "Panda: "+ super.getName();
    }
    
    public String toString() {
        System.out.println("Panda: toString");
        return getName();
    }
}

请注意,super用于引用“parent”或扩展类中的方法,因此,由于您有两个主要方法,如果您使用继承,则其他方法的main将是
main()
,而主类main将是
super.main()

,感谢您的提示!我终于让它工作了,现在看起来是这样的:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
import java.util.*;
import java.io.*;

public class Main {

  public static void main(String[] args) {

    Scanner scan = new Scanner(System.in);
    System.out.println("Enter the length of your ArrayList: ");
    int black = scan.nextInt();

    Scanner scan2 = new Scanner(System.in);
    ArrayList<Integer> list = new ArrayList<Integer>();
    
    System.out.println("Enter numbers: ");
    for(int i = 0; i < black; i++) {
        list.add(scan.nextInt());
    }

    System.out.println(appendPosSum(list));
        
    }
    
    public static ArrayList<Integer> appendPosSum (ArrayList<Integer> list){        
        ArrayList<Integer> newList = new ArrayList<>();             
        int sum = 0;
        for(int num : list) {
            if(num > 0) {
                newList.add(num);
                sum += num;
            }
        }       
        newList.add(sum);       
        return newList;
    }
    
}
import java.util.ArrayList;
导入java.util.array;
导入java.util.Scanner;
导入java.util.*;
导入java.io.*;
公共班机{
公共静态void main(字符串[]args){
扫描仪扫描=新扫描仪(System.in);
System.out.println(“输入ArrayList的长度:”);
int black=scan.nextInt();
扫描仪scan2=新扫描仪(System.in);
ArrayList=新建ArrayList();
System.out.println(“输入数字:”);
对于(int i=0;i0){
newList.add(num);
sum+=num;
}
}       
newList.add(总和);
返回newList;
}
}