객체 지향 프로그래밍(
OOP: Object Oriented Programming
)은 객체의 상태와 행동을 구체화하는 형태의 프로그래밍이다. 객체 지향 프로그래밍에서는 모든 데이터를 객체로 취급하며, 이러한 객체가 바로 프로그래밍의 중심이 된다.
객체(
Object
)란 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있고 다른 것과 식별 가능한 것을 말한다.
예를 들어
객체는 속성(status
)과 동작(behavior
)으로 구성되어 있다.
예를 들어 사람은
자바는 이러한 속성과 동작을 각각 필드(field
)와 메소드(method
)라고 부른다.
현실 세계에서 일어나는 모든 현상은 객체와 객체 간의 상호작용으로 이루어져 있다.
객체들 사이의 상호작용 수단은 메소드이다. 객체가 다른 객체의 기능을 이용하는 것이 바로 메소드 호출이다. 객체의 상호작용은 객체 간의 메소드 호출을 의미하며, 매개값과 리턴값을 통해서 데이터를 주고 받는다.
객체 지향 프로그래밍의 특징은 캡슐화, 상속, 다형성이다.
하나의 객체에 대해 그 객체가 특정한 목적을 위해 변수나 메소드를 하나로 묶고, 실제 구현 내용을 감추는 것을 말한다.
Access Modifier
)를 이용하여 객체의 필드와 메소드의 사용 범위를 제한한다.객체 지향의 꽃! 🌸
상속은 기존 상위 클래스에 근거하여 새롭게 클래스와 행위를 정의할 수 있도록 도와주는 것이다.
다형성은 상속을 통해 기능을 확장하거나 변경하는 것을 가능하게 해준다.
즉, 같은 형태이지만 실행 결과가 다양한 객체를 이용할 수 있는 성질이 바로 다형성이다!
클래스(
class
)는 객체를 정의하는 틀 또는 설계도와 같다.
클래스에는 객체를 생성하기 위한 필드와 메소드가 정의되어 있다.
instance
)라고 한다.①
클래스이름.java
로 소스 파일을 생성한다.
② 소스 파일 안에 다음과 같이 클래스를 선언해준다.접근제어자 class 클래스이름 { }
public class Car {
}
public class Car{
}
class Tree {
}
클래스로부터 객체를 생성할 때는
new
연산자를 사용하면 된다.
new 클래스이름();
new
는 클래스로부터 객체를 생성시키는 연산자이다.new
연산자 뒤에는 생성자가 오는데, 생성자는 클래스이름()
형태를 가지고 있다.new
연산자로 생성된 객체는 메모리 힙(heap
) 영역에 생성된다.new Car();
클래스이름 객체참조변수이름;
Car myCar;
클래스이름 객체참조변수 이름 = new 클래스이름();
Car myCar = new Car();