추상 클래스(abstract class)와 인터페이스(interface)가 있음메서드 오버라이딩과 메서드 오버로딩(method overloading)이 있다.클래스를 만들기 위해 4단계가 필요하다
- 만들려고 하는 설계도를 선언.(클래스 선언)
- 객체가 가지고 있어야 할 속성(필드)을 정의.
- 객체를 생성하는 방식을 정의.(생성자)
- 객체가 가지고 있어야 할 행위(메서드)를 정의.

위와 같은 자동차 클래스를 만들어 보자.
클래스 선언
public class Car() {}
공개된(public) Car 클래스를 선언
클래스 필드 정의
String company; // 자동차 회사
String model; // 자동차 모델
String color; // 자동차 색상
double price; // 자동차 가격
double speed; // 자동차 속도 , km/h
char gear; // 기어의 상태, P,R,N,D
boolean lights; // 자동차 조명의 상태
필드는 객체의 속성으로 데이터를 저장
클래스 생성자 정의
public class Car() {
String company;
.
.
.
boolean lights;
public Car() {}
}
자동차 객체의 생성 방식을 선언
생성자는 반환 타입이 없고 클래스의 이름과 동일
()가 비어있는 생성자 => 기본 생성자(생략가능)
클래스 메서드 정의
public class Car() {
String company;
.
.
.
boolean lights;
public Car() {}
public gasPedal(double kmh) {
speed = kmh;
return speed;
}
}
반환타입이 double인 gasPedal메서드 선언
new 키워드를 사용해 클래스로부터 객체를 생성할 수 있다.
Car car = new Car();
Car클래스의 객체인 car 인스턴스 생성
Car car = new Car();
car.gasPedal(100);
참조변수 car를 이용해 객체 내부의 메서드에 접근해 실행 할 수 있다.
객체의 정의, 객체지향 프로그래밍, 클래스의 선언과 필드, 메서드 사용을 정리했다. 다음 글로 this, super, 상속, 추상클래스, 인터페이스를 알아보자