객체지향 프로그래밍 개요
- 객제치향 프로그래밍(Object-Oriented Programming)은 객체를 바탕으로 객체 간의 강호 작용으로 프로그램을 개발하는 프로그래밍 기법
- 객체(Object)는 현실세계의 유무형의 하나의 독립적인 개체로 속성과 기능을 구성
- 객체지향 프로그래밍은 코드의 재사용성, 확장성, 유지보수성을 높여 소프트웨어 품질 향상에 기여
주요 특징 |
내용 |
추상화 |
객체의 공통적인 속성과 기능을 추출하여 클래스로 정의하는 특징 |
캡슐화 |
객체의 정보 노출을 최소화하고 꼭 필요한 정보만 제공하는 특징 |
상속 |
기존에 만들어 놓은 클래스의 확장 시켜 기능을 재사용하는 특징 |
다형성 |
하나의 객체가 여러 가지 타입으로 변환을 통해 다양한 기능을 제공하는 특징 |
객체와 클래스
- 클래스는 객체를 생성하는 틀이며, 속성과 메서드로 구성
- 현실세계의 객체를 추상화 시킨 대상이 클래스이며, 클래스를 통해 객체를 생성
- 인스턴스는 클래스로부터 생성된 메모리상의 객체

Car 객체
// Car 클래스 정의(설계)
public class Car {
// 속성(멤버 변수)
String name;
String color;
int speed;
// 기능(멤버 메서드)
public void speedUp(int speed) {
// this는 현재 클래스를 지칭
this.speed += speed;
}
public void speenDown(int speed) {
this.speed -= speed;
}
public void show() {
System.out.println("차량명 : " + this.name);
System.out.println("차량색 : " + this.color);
System.out.println("현재속도 : " + this.speed);
}
}
Car 객체 생성, 초기화
public class ClassTest {
public static void main(String[] args) {
// car 객체 선언
Car sonata;
// 객체 생성
sonata = new Car();
// 객체 초기화
sonata.name = "소나타";
sonata.color = "흰색";
sonata.speed = 0;
// 객체 상호작용
sonata.speedUp(100);
sonata.speenDown(20);
sonata.show();
}
}
차량명 : 소나타
차량색 : 흰색
현재속도 : 80