java FILO(2)

Study/JAVA 2014. 10. 13. 12:33

참조변수를 추가로 생성해 Stack를 두 가지로 분할


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
public class Filo {
 
    public static void main(String[] arvs) {
        Init init1 = new Init();
        Init init2 = new Init();
        init1.push(100);
        System.out.print("init1.push1: " + 100 + "\t");
        init1.push(200);
        System.out.print("init1.push2: " + 200 + "\t");
        init1.push(300);
        System.out.println("init1.push3: " + 300 + "\n");
 
        init2.push(900);
        System.out.print("init2.push1: " + 900 + "\t");
        init2.push(800);
        System.out.print("init2.push2: " + 800 + "\t");
        init2.push(700);
        System.out.println("init2.push3: " + 700 + "\n");
 
        System.out.println(" init1.pop1 : " + init1.pop());
        System.out.println(" init1.pop2 : " + init1.pop());
        System.out.println(" init1.pop3 : " + init1.pop() + "\n");
 
        System.out.println(" init2.pop1 : " + init2.pop());
        System.out.println(" init2.pop2 : " + init2.pop());
        System.out.println(" init2.pop3 : " + init2.pop());
    }
}
 
class Init {
    static int[] array = new int[3];
    static int tos;
 
    Init() {
    }
 
    int pop() {
        if (tos <= 0)
            tos = 0;
        return array[tos--];
    }
 
    void push(int num) {
        array[tos] = num;
        tos++;
        if (tos >= 2)
            tos = 2;
    }
}




이런 출력결과가 나타났다 위의 소스에서 변수의 제어자 static를 제거해야 했다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
public class Filo {
 
    public static void main(String[] arvs) {
        Init init1 = new Init();
        Init init2 = new Init();
        init1.push(100);
        System.out.print("init1.push1: " + 100 + "\t");
        init1.push(200);
        System.out.print("init1.push2: " + 200 + "\t");
        init1.push(300);
        System.out.println("init1.push3: " + 300 + "\n");
 
        init2.push(900);
        System.out.print("init2.push1: " + 900 + "\t");
        init2.push(800);
        System.out.print("init2.push2: " + 800 + "\t");
        init2.push(700);
        System.out.println("init2.push3: " + 700 + "\n");
 
        System.out.println(" init1.pop1 : " + init1.pop());
        System.out.println(" init1.pop2 : " + init1.pop());
        System.out.println(" init1.pop3 : " + init1.pop() + "\n");
 
        System.out.println(" init2.pop1 : " + init2.pop());
        System.out.println(" init2.pop2 : " + init2.pop());
        System.out.println(" init2.pop3 : " + init2.pop());
    }
}
class Init {
     int[] array = new int[3];
     int tos;
 
    Init() {
    }
 
    int pop() {
        if (tos <= 0)
            tos = 0;
        return array[tos--];
    }
 
    void push(int num) {
        array[tos] = num;
        tos++;
        if (tos >= 2)
            tos = 2;
    }
}






항상 제어자 씀에 있어 조심해야할 것 같다.




'Study > JAVA' 카테고리의 다른 글

추상클래스 Vs 인터페이스  (0) 2014.10.13
Equals 메서드  (0) 2014.10.13
java FILO(1)  (0) 2014.10.13
Scanner 함수를 이용한 대소문자 변환 소스  (0) 2014.10.13
인터페이스를 이용한 다중상속  (0) 2014.10.10
Posted by 차희빈

차희빈

달력