ArrayList类与Java主文件分开

时间:2017-01-26 00:58:55

标签: java arraylist

我有两个单独的文件,一个名为WonderfulArrayList,另一个名为ArrayListMain(我正在尝试使用ArrayLists,我不太清楚该怎么做)所以我有一个WonderfulArrayList文件中的方法,但是主文件看不到我命名为booladdData的方法,一旦将数据添加到数组列表中,该方法将返回true。我的WonderfulArrayList文件如下:

import java.util.*;
import java.io.*;

public class WonderfulArrayList{ //implement WonderfulArrayList
     public static int ADDNums;
     public static int index;
     public static int HEADNums;
     public static  ArrayList<Integer> arr = new ArrayList<Integer>(15);

     public static boolean booladdData(ArrayList<Integer>arr){
              arr.add(ADDNums);
              return true;
              }
    }

如您所见,我使用名为arr的ArrayList实例化booladdData。现在,如果你看看我的主文件:

public class ArrayListMain{

  //public ArrayList<Integer> arr = new ArrayList<Integer>(15);
  public static void main(String[]args){

          ArrayList<Integer> arr = new ArrayList<Integer>(15);
        int MenuNum = 0;
        int ADDNums = 0;
        Object Obj = new Object();

        Scanner scanner1 = new Scanner(System.in); //set up scanner for user input

        while(MenuNum != 7){ //menu loop
              Menu(MenuNum);  
              MenuNum = scanner1.nextInt();

              if(MenuNum == 1){

                 arr.booladdData();
                 }

出于某种原因,即使我知道booladdData是作为公共创建的,并且它们都在同一个文件夹中,但主文件没有范围可以在单独的文件中看到booladdData。

知道我做错了吗?

2 个答案:

答案 0 :(得分:1)

您应该拨打WonderfulArrayList.booladdData(arr)而不是arr.booladdData()。方法booladdData()被定义为WonderfulArrayList类的类方法。它不是Java ArrayList的实例方法。

您可能还想阅读面向对象的编程。代码中的所有内容都是static

答案 1 :(得分:0)

您需要创建自己的类型而不是ArrayList

package com.jbirdvegas.test;

import java.util.ArrayList;

public class MainClazz {
    public static void main(String[] args) {
        // notice I'm creating my type `MyArrayList` instead of `ArrayList` type
        MyArrayList myArrayList = new MyArrayList();
        myArrayList.add("blah");
        System.out.println("My message:" + myArrayList.getSomething());
    }
}

class MyArrayList extends ArrayList {
    public String getSomething() {
        return "something";
    }
}

打印:

My message: something