Java/객체지향

[객체지향][자바의 정석] - 1. 클래스와 객체

얄루몬 2021. 10. 11. 19:38

6.1 클래스와 객체

 

1.1 클래스와 객체의 정의와 용도

 

클래스의 정의 - 객체를 정의해 놓은 것이다.

클래스의 용도 - 클래스는 객체를 생성하는데 사용된다.

 

객체의 정의 - 실제로 존재하는 것, 사물 또는 개념이다.

객체의 용도 - 객체의 속성과 기능에 따라 다르다.

 

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

 

 

1.2 객체와 인스턴스

 

- 객체(Object)는 인스턴스(Instance)를 포함하는 일반적인 의미이다

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

- 인스턴스화(instantiate, 인스턴스화)

= 클래스로부터 인스턴스를 생성하는 것을 의미한다.

클래스 ----------------  (인스턴스화)  ------------------>인스턴스(객체)

 

1.3 객체의 구성요소 - 속성과 기능

 

- 객체는 속성과 기능으로 이루어져 있다.

    - 객체는 속성의 기능의 집합이며, 속성과 기능을 객체 멤버(member, 구성요소)라고 한다.

 

- 속성은 변수로, 기능은 메서드로 정의한다.

    - 클래스를 정의할 때 객체의 속성은 변수로, 기능은 메서드로 정의한다.

 

class Tv{
    //변수
    String color; //색
    boolean power; //전원상태(on/off)
    int channel; //채널
    
    //메서드
    void power() { //전원 on/off
    	power = ! power; } 
    void channeruup{ //채널 높이기
    	channel++; }
    void channelDown { //채널 낮추기
    	channel--; } 
}

 

1.4 인스턴스의 생성과 사용

 

- 인스턴스의 생성방법

Tv t; //클래스명 참조변수명 -> 객체를 다루기 위한 참조변수 선언
t = new Tv();  //new 클래스명(); -> 객체 생성 후, 생성된 객체의 주소를 참조변수에 저장.
//Tv t = new Tv();

- 인스턴스의 생성과 사용 2

Tv t;
t = new Tv();
t.channel = 7;
t.channelDown();
System.out.println(t.channel);

-인스턴스의 생성과 사용 3

Tv t;
t1 = new Tv();
t2 = new Tv();
t2 = t1 //t1의 값을 t2에 저장
t1.channel = 7;
System.out.println(t1.channel);
System.out.println(t2.channel);

-인스턴스의 생성과 사용 4

 

하나의 인스턴스를 여러 개의 참조변수가 가리키는 경우는 가능하다.

하나의 인스턴트를 여러 개의 참조변수가 가리키는 경우

 

여러개의 인스턴스를 하나의 참조변수가 가리키는 경우는 불가능하다.

여러 개의 인스턴스를 하나의 참조변수가 가리키는 경우

- 참조변수란 실제값을 저장하는 기본타입과 달리 주소값을 저장하는 변수이다.

 

 

 

1.5 클래스의 또 다른 정의

 

1. 클래스 - 데이터와 함수의 결합

    - 변수: 하나의 데이터를 저장할 수 있는 공간

    - 배열: 같은 타입의 여러 데이터를 저장할 수 있는 공간

    - 구조체: 타입에 관계없이 서로 관련된 데이터들을 저장할 수 있는 공간

    - 클래스: 데이터와 함수의 결합(구조체 + 함수) 

2. 클래스 - 사용자 정의 타입(User - defined type)

    - 프로그래머가 직접 새로운 타입을 정의할 수 있다.

    - 서로 관련된 값을 묶어서 하나의 타입으로 정의한다.

 

<정석>

class Time{

    int hour;
    int minute;
    int second;

}

 

 

 

class Time{

    int hour;
    int minute;
    int second;

}

Time t = new Time();


class Time{

    int hour1, hour2, hour3;
    int minute1, minute2, minute3;
    int second1, second2, second3;

}

Time t1 = new Time();
Time t2 = new Time();
Time t3 = new Time();

  


class Time{

    int[] hour = new int[3];
    int[] minute = new int[3];
    int[] second = new int[3];

}

Time[] t = new Time[3]
Time t[0] = new Time();
Time t[1] = new Time();
Time t[2] = new Time();

 

 

☞ 본 블로그 게시물의 작성은 자바의 정석 기초편 요약본을 보고 작성하였습니다.