본문 바로가기

Java의 정석

객체 지향 개념 - 1 객체지향 언어? 클래스와 객체

객체지향 언어란?

객체지향 언어의 특징

  • 기존의 프로그래밍 언어에 몇 가지 규칙을 추가한 것일 뿐이라 크게 다르지 않다.
  • 새로운 코드를 작성할 때 기존의 코드를 이용해서 쉽게 작성할 수 있기 때문에 재사용성이 높다.
  • 코드 간의 관계를 맺어줌으로써 보다 적은 노력으로 코드 변경이 가능해 관리가 쉬워졌다.
  • 제어자와 메서드를 이용해서 데이터를 보호하고, 코드의 중복을 제거하여 코드의 불일치로 인한 오류를 방지해 신뢰성 높은 프로그램의 개발을 가능하게 한다.

클래스와 객체

클래스(설계도)

  • 정의 - 객체를 정의해 놓은 것이다
  • 용도 - 객체를 생성하는 데 사용된다

객체(설계대로 만들어진 무언가)

  • 정의 - 실제로 존재하는 것. 사물 또는 개념
  • 용도 - 객체의 속성과 기능에 따라 다름

객체(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의 정석 - 기초 편, 도우 출판

[출처] - http://jameskim79.ipdisk.co.kr:8000/apps/wordpress/java-%ED%81%B4%EB%9E%98%EC%8A%A4-%EA%B0%9D%EC%B2%B4-%EC%9D%B8%EC%8A%A4%ED%84%B4%EC%8A%A4%EC%9D%98-%EC%B0%A8%EC%9D%B4/

 

'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