홈 › 초급 › 04 / 8

클래스, 객체, 생성자, 오버로딩

섹션 7진행 0 / 8

클래스와 객체

데이터와 기능을 하나로 묶는 클래스를 설계하고, 그 설계도로 객체를 만들어 사용합니다. 이 레슨을 끝내면 this가 무엇을 가리키는지, static이 왜 객체 없이 호출되는지, 자바가 왜 "무조건 값 전달"인지 메모리 수준에서 설명할 수 있습니다.

1. 왜 배우는가

지금까지는 int quantity, String customerName, double price 같은 변수들이 따로 떠다녔습니다. 주문 하나를 표현하려면 변수 5개, 주문 100건이면 배열 5개를 인덱스로 맞춰 관리해야 합니다. 주문에 "배송지"가 추가되면 배열을 하나 더 만들고 모든 코드를 고쳐야 합니다. 이 방식은 확장이 안 됩니다.

클래스(class)는 "주문이란 번호, 고객, 금액, 상태를 가지고, 결제·취소·배송 시작을 할 수 있는 것"이라고 하나의 단위로 정의하는 방법입니다. 데이터(필드)와 기능(메서드)이 같은 상자에 들어가서, 주문 100건은 Order[] orders가 되고 배송지 추가는 Order 클래스 한 곳만 고치면 됩니다.

이것이 객체 지향 프로그래밍(OOP, Object-Oriented Programming)의 출발점입니다. 자바의 모든 라이브러리, 스프링 프레임워크, 여러분이 앞으로 읽을 모든 실무 코드가 클래스와 객체로 되어 있습니다. 이 레슨은 이후 모든 레슨의 기초이며, 특히 this, static, call by value 세 가지는 면접 단골 질문입니다.