자료구조/예제/1장 추상 데이터 타입과 객체지향 방법

From DISLab
Jump to navigation Jump to search

1.1 Java 입문

프로그램 1.1 Java 프로그램

package ds.ch01;

public class JavaOne {
    static int count = 1;

    public static void main(String[] args) {
        System.out.println("The count is " + count);
    }
}

프로그램 1.2 메소드 정의와 호출의 예

package ds.ch01;

public class MinTest {
    public static void main(String[] args) {
        int a = 3;
        int b = 7;
        System.out.println(min(a, b));
    }

    public static int min(int x, int y) {
        return x < y ? x : y;
    }
}

1.1.2.4 매개변수 전달

package ds.ch01;

public class Test {
    public int value;

    static void callByValueTest() {
        int i = 99;
        System.out.println("before : i = " + i);
        changeValue(i);
        System.out.println(" after : i = " + i);
    }

    static void changeValue(int j) {
        j = 88;
    }

    static void callByReferenceTest() {
        Test t = new Test();
        t.value = 99;
        System.out.println("before : i = " + t.value);
        changeValue(t);
        System.out.println(" after : i = " + t.value);
    }

    static void changeValue(Test j) {
        j.value = 88;
    }

    public static void main(String[] args) {
        callByValueTest();
        callByReferenceTest();
    }
}

실행결과

before : i = 99
 after : i = 99
before : i = 99
 after : i = 88

프로그램 1.3 생성자와 equals(), toString()을 포함하고 있는 Date 클래스

package ds.ch01;

public class Date {
    private int month;
    private int day;
    private int year;

    public Date() {
        month = 1;
        day = 1;
        year = 2022;
    }

    public Date(int month, int day, int year) {
        this.month = month;
        this.day = day;
        this.year = year;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null || !(obj instanceof Date))
            return false;
        Date d = (Date)obj;
        return d.month == month && d.day == day && d.year == year;
    }

    @Override
    public String toString() {
        return month + "/" + day + "/" + year;
    }

    public static void main(String[] args) {
        Date date1 = new Date();
        Date date2 = new Date(1, 1, 2022);

        System.out.println(date1);
        System.out.println(date1);        
        System.out.println(date1 == date2);
        System.out.println(date1.equals(date2));
    }
}

실행결과

1/1/2022
1/1/2022
false
true