[Java의 정석]Chapter6.객체지향 프로그래밍(01~04)

Hello_Wendy·2022년 4월 15일
0

자바의 정석

목록 보기
34/61
post-thumbnail

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)라고 함

인스턴스객체와 같은 의미지만 객체는 모든 인스턴스를 대표하는 포괄적인 의미(객체와 인스턴스를 엄격히 구분할 필요는 없음)
인스턴스어떤 클래스로부터 만들어진 것인지를 보다 강조하는 의미를 가짐

🚩 책상은 인스턴스다. 책상은 객체다 → 책상은 책상 클래스의 인스턴스다

profile
안녕 나의 새로운 세상

0개의 댓글