• 로그인 함 해보끄나?

  • Sarangnamu.net June 17, 2003
    Home Login Profile Study Open Project Q&A Google Code
    C++ 프로그래머 Java 맛보기 #18
    Last Modify : 20 February, 2011(11:09)

    이번엔 inner class 에 관해서 이야기 해도록 한다.

     

    InnerEvenIterator  는 class 내부에 존재하는 class 로 상위 클래스의 private 형태의 resouce 를 access 할 수 있다.  (friends?)

     

    public class DataStructure {
        //create an array
        private final static int SIZE = 15;
        private int[] arrayOfInts = new int[SIZE];
        
        public DataStructure() {
            //fill the array with ascending integer values
            for (int i = 0; i < SIZE; i++) {
                arrayOfInts[i] = i;
            }
        }
        
        public void printEven() {
            //print out values of even indices of the array
            InnerEvenIterator iterator = this.new InnerEvenIterator();
            while (iterator.hasNext()) {
                System.out.println(iterator.getNext() + " ");
            }
        }
        
        //inner class implements the Iterator pattern
        private class InnerEvenIterator {
            //start stepping through the array from the beginning
            private int next = 0;
            
            public boolean hasNext() {
                //check if a current element is the last in the array
                return (next <= SIZE - 1);
            }
            
            public int getNext() {
                //record a value of an even index of the array
                int retValue = arrayOfInts[next];
                //get the next even element
                next += 2;
                return retValue;
            }
        }
        
        public static void main(String s[]) {
            //fill the array with integer values and print out only values of even indices
            DataStructure ds = new DataStructure();
            ds.printEven();
        }
    }

     

    클래스를 간단하게 설명하자면은 숫자형 배열인 arrayOfInts 에 값을 0부터 14 까지 담고 내부 클래스를 이용해 arrayOfInts 값을 0, 2, 4, 6, 8, 10 .. 식으로 띄엄띄엄? 하게 출력하는 것이다.


    Comment


    입력하3 1508772070



    Locations of visitors to this page