2017-01-26 2 views
1

У меня есть два отдельных файла: один из них - WonderfulArrayList, а другой - ArrayListMain (я экспериментирую с ArrayLists, и я не совсем уверен, что делать), и поэтому у меня есть метод в файле WonderfulArrayList, но основной файл не может увидеть метод, который я назвал booladdData, который вернет true, как только данные будут добавлены в список массивов. Мой файл WonderfulArrayList заключается в следующем:Класс ArrayList отдельно от основного файла Java

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; 
       } 
    } 

Как вы можете видеть, я booladdData экземпляр с ArrayList, названный arr. Теперь, если вы посмотрите на мой основной файл:

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

Почему все члены и методы 'WonderfulArraylist' написаны как' static'? Есть ли какая-то конкретная причина, или вы просто видели некоторые компиляционные ошибки и подумали, что это правильное решение? –

ответ

1

Вы должны позвонить WonderfulArrayList.booladdData(arr) вместо arr.booladdData(). Метод booladdData() определяется как метод класса вашего класса WonderfulArrayList. Это не метод экземпляра Java ArrayList.

Вы также можете прочитать в объект -ориентированное программирование. Все в вашем коде static.

+2

Еще лучше, возьмите статику из всего, что в этом классе. –

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 
Смежные вопросы