Language/Java

4.1 객체 지향 프로그래밍 (클래스와 객체)

리져니 2021. 7. 6. 20:45

특징

1. 코드의 재사용성 

- 기존의 코드를 이용하여 새로운 코드를 작성할 수 있다.

2. 코드 관리 용이

- 코드간의 관계를 이용해서 쉬운 코드 변경이 가능하다.

3. 신뢰성이 높은 프로그래밍 가능

- 코드의 중복 제거 및 제어자와 메서드를 이용한 데이터 보호

 

클래스와 객체

클래스: 객체를 정의해 놓은 것으로 객체를 생성하는데만 쓰임.

객체:  실제로 존재하는 것. 사물 또는 개념

클래스 객체
제품 설계도 제품
TV 설계도 TV
붕어빵 기계 붕어빵

 

객체와 인스턴스

인스턴스(instance): 어떤 클래스로부터 만들어진 객체를 그 클래스의 인스턴스 라고 한다.

객체: 모든 인스턴스를 대표하는 포괄적인 의미

ex) 책상은 책상 클래스의 인스턴스다, 책상은 객체다

* 인스턴스와 객체는 같은 의미임. 엄격히 구분할 필요는 없지만, 문맥에 따라 구별하는 것이 좋다

 

객체의 구성요소 - 속성, 기능

속성: 맴버변수, 특성, 필드, 상태

기능: 메서드, 함수, 행위

* 클래스란 객체를 정의한 것이므로 클래스에는 객체의 모든 속성과 기능이 정의되어있다.

속성 기능
크기, 길이, 높이, 색상, 볼륨, 채널 등 켜기, 끄기, 볼륨, 높이기, 볼륨
낮추기, 채널 변경하기 등

 

인스턴스의 생성과 사용

클래스로부터 인스턴스를 생성하는 방법

* 인스턴스는 참조변수를 통해서만 다룰 수 있으며, 참조변수의 타입은 인스턴스의 타입과 일치해야한다.

같은 클래스로부터 생성되었을지라도 각 인스턴스의 속성(맴버변수)은 서로 다른 값을 유지할 수 있으며, 메서드의 내용은 모든 인스턴스에 대해 동일하다.

class Tv{	// Tv 클래스
	String color;
    boolean power;
    int chennel;
    
    void power(){
    	power = !power;
        }
        
    void channelUp(){
    	channel++;
        }
    
    void channelDown(){
    	channel--;
        }
 }
 
 
 class Main{
 	public static void main(String[] args){
    	Tv = tv;			// Tv 인스턴스를 참조하기 위한 변수 t 선언
        t = new Tv();		// Tv 인스턴스 생성
        t.channel = 7;		// Tv 인스턴스의 맴버변수 channel에 7 대입
        t.channelDown();	// Tv 인스턴스의 메서드 channelDown() 호출
    }
}

 

객체 배열

많은 수의 객체를 다뤄야할 때, 배열로 다루면 편리하다.

클래스로부터 객체 배열 생성하기

Tv[] tvArr = new Tv[3];	// 길이가 3인 객체 배열 tvArr 생성

// 객체를 생성해서 배열의 각 요소에 저장
tvArr[0] = new Tv();
tvArr[1] = new Tv();
tvArr[2] = new Tv();

* 객체 배열을 생성하는 것은, 그저 객체를 다루기 위한 참조 변수들이 만들어진것 뿐이다.

 

Tv[] tvArr = new Tv{new Tv(), new Tv(), new Tv()};

위의 코드처럼 선언과 동시에 초기화가 가능하다.

 

 

 

728x90

'Language > Java' 카테고리의 다른 글

4.3 객체 지향 프로그래밍 (오버로딩, 생성자)  (0) 2021.07.08
4.2 객체 지향 프로그래밍 (변수와 메서드)  (0) 2021.07.07
문자열 함수 종류  (0) 2021.07.05
3. 연산자  (1) 2021.07.01
[JAVA] 2. 변수(Variable)  (0) 2021.06.29