[Java의 정석]Chapter6.객체지향 프로그래밍(01~04)
Chapter 6. 객체지향 프로그래밍
01. 객체지향 언어
- 기존의 프로그래밍 언어에 몇 가지 새로운 규칙을 추가한 보다 발전된 형태의 것
- 규칙을 이용해 코드 간에 서로 관계를 맺어 줌으로써 보다 유기적으로 프로그램 구성 가능
🍉 객체지향언어의 주요특징
1. 코드의 재사용성이 높음
: 새로운 코드를 작성할 때 기존의 코드를 이용하여 쉽게 작성 가능
2. 코드의 관리가 용이(유지보수 용이)
: 코드간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경 가능
3. 신뢰성이 높은 프로그래밍 가능(중복 코드 제거)
: 제어자와 메서드를 이용해서 데이터를 보호하고 올바른 값을 유지하도록 하며, 코드의 중복을 제거하여 코드의 불일치로 인한 오작동을 방지
02. 클래스와 객체
🍕 클래스
클래스의 정의
: 객체를 정의해놓은 것, 객체의 설계도 또는 틀클래스의 용도
: 객체를 생성하는데 사용
🍟객체
객체의 정의
: 실제로 존재하는 사물(유형) 또는 개념(무형), 클래스에 정의된 내용대로 메모리에 생성된 것
▶ 유형의 객체 → 책상, 의자, 자동차, TV 등
▶ 무형의 객체 → 수학공식, 프로그램 에러와 같은 논리나 개념객체의 용도
: 객체가 가지고 있는 기능과 속성에 따라 다름
→클래스는 단지 객체를 생성하는데 사용될 뿐, 객체 그 자체는 아님
→원하는 기능의 객체를 사용하기 위해서 먼저 클래스로부터 객체를 생성하는 과정이 선행되어야 함
→객체를 사용한다는 것은 객체가 가지고 있는 속성과 기능을 사용한다는 뜻
→클래스를 정의하고 클래스를 통해 객체를 생성하는 이유는 설계도를 잘 만들어 놓으면 제품을 만드는 일이 쉬워지기 때문
: TV를 보기 위해서, TV(객체)가 필요한 것이지 TV설계도(클래스)가 필요한 것이 아니며, TV설계도(클래스)는 단지 TV(객체)를 만드는 데만 사용될 뿐
03. 객체의 구성요소 - 속성과 기능
-
객체는
속성
과기능
의 구성요소로 이루어짐 -
일반적으로 객체는 다수의 속성과 다수의 기능을 가짐. 즉, 객체는 속성과 기능의 집합
-
객체가 가지고 있는 속성과 기능을 그
객체의 멤버(구성원, member)
라고 함 -
클래스는 객체를 정의한 것이므로, 클래스에는 객체의 모든 속성과 기능이 정의되어 있음
-
클래스로부터 객체를 생성하면, 클래스에 정의된 속성과 기능을 가진 객체가 만들어지는 것
ex) TV 속성 : 크기, 길이, 높이, 색상, 볼륨, 채널 등 기능 : 켜기, 끄기, 볼륨 높이기, 볼륨 낮추기, 채널 변경하기 등
💡 객체지향 프로그래밍에서는 속성과 기능을 각각 변수와 메서드로 표현
- 속성(property) → 멤버변수(variable)
- 기능(function) → 메서드(method)
ex) 채널 → int channel
채널 높이기 → channelUp( ){ . . . }
속성(변수) : 색상, 전원, 채널, 볼륨, 크기, 길이 등
기능(메서드) : 켜기, 끄기, 볼륨 낮추기 높이기, 채널 변경하기 등
class Tv {
String color; //색깔
boolean power; //전원상태
int channerl; //채널
void power() { power = !power; }
void channelUp() { channel++; }
void channelDown() { channel; }
}
04. 객체와 인스턴스
- 클래스로부터 객체를 만드는 과정을
클래스의 인스턴스화(instantiate)
라고 하며, 어떤 클래스로부터 만들어진 객체를 그 클래스의인스턴스(instance)
라고 함
▶ 인스턴스는 객체와 같은 의미지만 객체는 모든 인스턴스를 대표하는 포괄적인 의미(객체와 인스턴스를 엄격히 구분할 필요는 없음)
▶ 인스턴스는 어떤 클래스로부터 만들어진 것인지를 보다 강조하는 의미를 가짐
🚩 책상은 인스턴스다. 책상은 객체다 → 책상은 책상 클래스의 인스턴스다
Author And Source
이 문제에 관하여([Java의 정석]Chapter6.객체지향 프로그래밍(01~04)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@wendy1126/Java의-정석Chapter6.객체지향-프로그래밍0104저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)