객체지향 언어란?
객체지향 언어의 특징
- 기존의 프로그래밍 언어에 몇 가지 규칙을 추가한 것일 뿐이라 크게 다르지 않다.
- 새로운 코드를 작성할 때 기존의 코드를 이용해서 쉽게 작성할 수 있기 때문에 재사용성이 높다.
- 코드 간의 관계를 맺어줌으로써 보다 적은 노력으로 코드 변경이 가능해 관리가 쉬워졌다.
- 제어자와 메서드를 이용해서 데이터를 보호하고, 코드의 중복을 제거하여 코드의 불일치로 인한 오류를 방지해 신뢰성 높은 프로그램의 개발을 가능하게 한다.
클래스와 객체
클래스(설계도)
- 정의 - 객체를 정의해 놓은 것이다
- 용도 - 객체를 생성하는 데 사용된다
객체(설계대로 만들어진 무언가)
- 정의 - 실제로 존재하는 것. 사물 또는 개념
- 용도 - 객체의 속성과 기능에 따라 다름
객체(Object)와 인스턴스(Instance)
- 객체 - 클래스의 인스턴스라고도 불리며 모든 인스턴스를 대표하는 포괄적인 의미를 가짐, OOP의 관점에서 클래스의 타입으로 선언되었을 때 객체라고 부름
- 인스턴스 - 인스턴스는 객체에 포함되며 OOP의 관점에서 선언된 객체가 메모리에 할당되어 실제 사용될 때 인스턴스라고 부름
- 인스턴스화(Instantiate) - 클래스로부터 인스턴스를 생성하는 것, 범주나 개념으로부터 실제 하는 객체를 만드는 과정, 클래스 ---- 인스턴스화 ---> 인스턴스(객체)
객체의 구성요소
- 객체는 속성과 기능의 집합이며, 속성과 기능을 객체의 멤버(member, 구성요소)라고 한다.
- 클래스를 정의할 때 객체의 속성은 변수로, 기능은 메서드로 정의한다.
class Tv {
// 속성(변수)
String color; // 색상
boolean power; // 전원 상태
int channel; // 채널
// 기능(메서드)
void power() { // 전원 켜기/끄기
power = !power;
}
void channelUp() { // 채널 올리기
channel++;
}
void channelDown() { // 채널 내리기
channel--;
}
}
[출처] - 남궁 성, Java의 정석 - 기초 편, 도우 출판
'Java의 정석' 카테고리의 다른 글
객체 지향 개념 - 3 클래스의 또 다른 정의 (0) | 2022.03.02 |
---|---|
객체 지향 개념 - 2 인스턴스의 생성과 사용 (0) | 2022.02.28 |
Array (0) | 2022.02.24 |
Overflow (0) | 2022.02.23 |
Variable, Constant, Literal (0) | 2022.02.22 |