[Beyond SW] 헷갈리는 부분 (객체 생성)

이경민·2025년 11월 3일

한화시스템 Beyond SW

목록 보기
22/40

객체

import java.util.*;

public class ListExample {
    public static void main(String[] args) {
        List<String> alist = new ArrayList<>();
        alist.add("A");
        alist.add("B");
        alist.add("C");

        // ArrayList의 내용을 복사해서 LinkedList 생성
        List<String> list = new LinkedList<>(alist);

        System.out.println("alist: " + alist);
        System.out.println("list : " + list);

        // 하나를 수정해도 서로 다른 객체임!
        list.add("D");

        System.out.println("alist: " + alist);
        System.out.println("list : " + list);
    }
}

-> 출력결과
alist: [A, B, C]
list : [A, B, C]
alist: [A, B, C]
list : [A, B, C, D]

==> LinkedList는 alist의 데이터를 복사해서 새로 만든 객체이기 때문에 list에 추가해도 alist에는 영향이 없다!

표현설명
new LinkedList<>()빈 LinkedList 생성
new LinkedList<>(alist)alist의 모든 요소를 복사해 새로운 LinkedList 생성
괄호 안 인자생성자의 매개변수 (다른 컬렉션 객체)
효과다른 컬렉션을 기반으로 초기화 가능

다형성

다형성: 상위 인터페이스(List) 타입으로 하위 클래스(ArrayList) 객체를 참조 가능
List list = new ArrayList();
인터페이스 타입(List)으로 선언하면
구현체(ArrayList, LinkedList, Vector)를 쉽게 교체할 수 있습니다.

List list = new ArrayList(); 
// 나중에 LinkedList로 변경해도 나머지 코드 수정 불필요
list = new LinkedList();

향상된 for문

향상된 for문 이용해서 배열 출력하기

  • int 배열 출력
int[] numbers = {10, 20, 30, 40, 50};

for (int num : numbers) {
    System.out.println(num);
}
  • 객체 배열 출력
BookDto[] books = {
    new BookDto("자바 입문", "홍길동"),
    new BookDto("스프링 완전정복", "이몽룡")
};

for (BookDto book : books) {
    System.out.println(book.getTitle() + " / " + book.getAuthor());
}

0개의 댓글