클래스와 객체
객체 지향 프로그래밍
객체 지향 프로그래밍(Object-Oriented Programming, OOP)은 컴퓨터 프로그래밍 패러다임의 하나이다. 객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 객체들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지를 주고 받고, 데이터를 처리할 수 있다.
객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용된다. 또한 프로그래밍을 더 배우기 쉽게 하고 소프트웨어 개발과 보수를 간편하게 하며, 보다 직관적인 코드 분석을 가능하게 하는 장점을 갖고 있다.
클래스 구조 파악하기
public class Car {
//맴버 변수
int yearModel;
String modelName;
int speed;
boolean reverse;
//생성자
public Car(int yearModel, String modelName) {
this.yearModel = yearModel;
this.modelName = modelName;
}
//메서드
public void accelerateSpeed() {
this.speed += 5;
System.out.println("부우웅~~~ (가속) 현재속도 : " + this.speed + "km/h");
}
public void breakSpeed() {
System.out.println("끼이익~~~ (감속) 현재속도 : " + this.speed + "km/h");
this.speed -= 5;
}
public void horn() {
System.out.println("삐익~~~");
}
public int getSpeed() {
return this.speed;
}
}
클래스의 구성요소
클래스
같은 종류의 집단에 속하는 속성(attribute)과 행위(behavior)를 정의한 것으로 객체지향 프로그램의 기본적인 사용자 정의 데이터형
객체
클래스의 인스턴스(실제로 메모리상에 할당된 것)이다. 객체는 자신 고유의 속성(attribute)을 가지며 클래스에서 정의한 행위(behavior)를 수행할 수 있다.
Car avante = new Car(2017, "아반떼");
Car stinger = new Car(2017, "스팅어");
Car 클래스를 인스턴스화해서 avante, stinger 객체를 만들었다.
맴버변수(인스턴스 변수, 멤버 변수, 속성)
클래스 안에 생성되어있는 변수로 객체의 속성이나 현재 상태 값
메서드
클래스 안에 생성되어 있는 함수로 객체가 할 수 있는 행위를 정의한다.
메서드의 결과는 상태값을 변경하거나, 행동에 대한 결과값을 반환한다.