2017-01-26 12 views
1

WonderfulArrayListという名前のファイルと、ArrayListMainという名前の別々のファイルが2つあります(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は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を見ることができます。

私が間違っていることを知っていますか?

+2

はなぜWonderfulArraylist' '内のすべてのメンバーとメソッドがstatic''として書かれていますか?特定の理由があるのか​​、コンパイルエラーを見て、それが正しい修正だと思ったのですか? –

答えて

1

arr.booladdData()の代わりにWonderfulArrayList.booladdData(arr)に電話する必要があります。メソッド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 
関連する問題