프로그래밍/자바

4. 자바 중급 학습: 심화 개념부터 실전 코딩까지 초보자를 위한 A-Z 가이드

후라이펜 2025. 3. 9. 06:05
반응형

"자바 중급 학습: 심화 개념부터 실전 코딩까지 초보자를 위한 A-Z 완벽 가이드"

서론: 실전 코딩으로 한 단계 더

기초 단계를 지나 이제 자바의 심화 개념을 배워볼게요. 상속, 인터페이스, 컬렉션 같은 기능을 배우고, 투두 리스트를 만들어 실전 코딩을 연습합니다. 이제 코딩이 조금 익숙해졌죠? 더 멋진 프로그램을 만들 준비를 해볼까요?

3.1 핵심 개념
상속

상속이란?: 부모가 자식에게 재산을 물려주듯, 코드에서 기능을 물려주는 거예요. 예를 들어, "동물"이라는 부모가 있으면 "강아지"가 그 기능을 물려받을 수 있어요.

장점: 같은 코드를 반복해서 쓰지 않아도 돼요.

예제: 동물과 강아지를 만들어 봅시다.


class Animal {
    String name;
    void eat() {
        System.out.println(name + "이(가) 밥을 먹어요.");
    }
}

class Dog extends Animal { // Animal의 기능을 물려받음
    void bark() {
        System.out.println(name + ": 멍멍!");
    }
}

public class Main {
    public static void main(String[] args) {
        Dog myDog = new Dog();
        myDog.name = "초코";
        myDog.eat(); // 부모에게서 물려받은 기능
        myDog.bark(); // 강아지만의 기능
    }
}

출력: "초코이(가) 밥을 먹어요." → "초코: 멍멍!"

설명: extends로 상속받으면 부모(Animal)의 eat()을 강아지가 쓸 수 있어요.

인터페이스

인터페이스란?: 약속이에요. 예를 들어, "날 수 있다"는 약속을 지키면 어떤 동물이라도 날 수 있게 해줘요. 인터페이스는 해야 할 일을 정해주고, 어떻게 할지는 각자 알아서 정해요.

예제: 날아다니는 새를 만들어 봅시다.


interface Flyable {
    void fly(); // 약속: 날아야 함
}

class Bird implements Flyable { // 약속을 지킴
    String name;
    public Bird(String n) {
        name = n;
    }
    public void fly() {
        System.out.println(name + "이(가) 훨훨 날아요!");
    }
}

public class Main {
    public static void main(String[] args) {
        Bird sparrow = new Bird("참새");
        sparrow.fly();
    }
}

출력: "참새이(가) 훨훨 날아요!"

설명: implements로 약속(Flyable)을 지키면 fly()를 꼭 만들어야 해요.

컬렉션 (ArrayList)

컬렉션이란?: 데이터를 모아두는 가방이에요. 배열은 크기가 고정된 서랍장이었다면, ArrayList는 크기가 자유롭게 늘어나는 마법 가방이에요.

장점: 물건을 넣고 빼는 게 쉬워요.

예제: 과일을 가방에 넣어 봅시다.


import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
        ArrayList fruits = new ArrayList<>(); // 빈 가방
        fruits.add("사과"); // 가방에 넣기
        fruits.add("바나나");
        fruits.add("오렌지");
        System.out.println("첫 번째 과일: " + fruits.get(0)); // 꺼내기
        fruits.remove(1); // 바나나 빼기
        System.out.println("남은 과일: " + fruits);
    }
}

출력: "첫 번째 과일: 사과" → "남은 과일: [사과, 오렌지]"

설명: add로 추가하고, get으로 꺼내고, remove로 삭제해요.

반복문 (for)

반복문이란?: 같은 일을 여러 번 반복하는 거예요. 예를 들어, 가방에 든 과일을 하나씩 꺼내서 확인할 수 있어요.

예제: 과일을 하나씩 출력해 봅시다.


import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
        ArrayList fruits = new ArrayList<>();
        fruits.add("사과");
        fruits.add("바나나");
        for (int i = 0; i < fruits.size(); i++) {
            System.out.println("과일 " + (i + 1) + ": " + fruits.get(i));
        }
    }
}

출력: "과일 1: 사과" → "과일 2: 바나나"

설명: i가 0부터 가방 크기(size())까지 반복하면서 과일을 꺼내요.

3.2 실습: 투두 리스트 만들기

목표: 할 일을 추가하고 삭제하고 출력하는 프로그램을 만들어 봅시다.

단계별로 해보기:

  1. 가방 준비: ArrayList로 할 일 목록을 만들어요.
  2. 할 일 추가: 몇 가지 할 일을 넣어요.
  3. 삭제: 필요 없는 할 일을 빼요.
  4. 출력: 남은 할 일을 보여줘요.

코드:


import java.util.ArrayList;

public class TodoList {
    public static void main(String[] args) {
        ArrayList todos = new ArrayList<>();
        
        // 할 일 추가
        System.out.println("할 일을 추가해볼게요!");
        todos.add("자바 공부하기");
        todos.add("운동하기");
        todos.add("책 읽기");
        System.out.println("현재 할 일: " + todos);
        
        // 할 일 삭제
        System.out.println("운동하기를 끝냈어요!");
        todos.remove(1); // "운동하기" 삭제
        System.out.println("남은 할 일: " + todos);
        
        // 남은 할 일 출력
        System.out.println("남은 할 일을 하나씩 확인해볼게요!");
        for (int i = 0; i < todos.size(); i++) {
            System.out.println("할 일 " + (i + 1) + ": " + todos.get(i));
        }
    }
}

출력: "현재 할 일: [자바 공부하기, 운동하기, 책 읽기]" → "남은 할 일: [자바 공부하기, 책 읽기]" → "할 일 1: 자바 공부하기" → "할 일 2: 책 읽기"

소요 시간

6~8주.

결론

중급 단계에서 실전 코딩을 배웠어요!

태그

#자바중급 #상속 #컬렉션 #투두리스트 #2025프로그래밍

반응형