[CH6. 객체지향프로그래밍1] 클래스와 객체

1. 객체지향 언어

  1. 코드의 재사용성이 높다.
  2. 코드의 관리가 용이하다.
  3. 신뢰성이 높은 프로그래밍을 가등하게 한다.

2. 클래스와 객체

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

클래스: 객체를 정의 해놓은것으로 객체를 생성할때 사용한다.

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

2.2 객체와 인스턴스

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

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

1
2
속성(propertiy) - 맴버변수(member variable), 특성(attribute), 필드(field), 상태(state)  
기능(function)- 매서드(method), 행위(behavior), 함수(function)
  • TV의 속성과 기능
속성 기능
크기, 길이, 높이, 색상, 볼륨, 채널 등 켜기, 끄기, 볼륨 높이기, 볼륨 낮추기, 채널 변경하기

속성-> 맴버변수
기능->매서드

  • TV 클래스
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    class Tv {
    //Tv의 속성(맴버변수)
    String color;
    boolean power;
    int channel;

    //Tv의 기능(매서드)
    void power(){ power=!power;}
    void channelUp(){++channel;}
    void channelDowun(){--channel;}
    }

2.4 인스턴스의 생성과 사용

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

Tv t;
t = new Tv();

  • TvTest.java
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    class Tv {
    //Tv의 속성(맴버변수)
    String color;
    boolean power;
    int channel;

    //Tv의 기능(매서드)
    void power(){ power=!power;}
    void channelUp(){++channel;}
    void channelDowun(){--channel;}
    }


    class TvTest{
    public static void main(String args[]){
    Tv t; // 메모리에 참조변수 t의 공간 생김
    t = new Tv(); // t에 객체 주소값이 저장, 메모리 공간에 TV 클래스 인스턴스가 생김
    t.channel = 7; //t에 저장된 주소에 있는 인스턴스 멤버변수 channel에 7저장
    t.channelDown(); //t가 참조하는 Tv인스턴스 channelDowun매서드 호출->channel1감소
    }
    }

2.5 클래스의 또 다른 정의

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

    1. 변수 - 하나의 데이터를 저장할 수 있는 공간
    2. 배열 - 같은 종류의 여러 데이터를 하나의 집합으로 저장할 수 있는 공간
    3. 구조체 - 서로 관련된 여러 데이터를 종류에 관계없이 하나의 집합으로 저장할 수 있는 공간
    4. 클래스 - 데이터와 함수의 결합(구조체+함수)

    5. 클래스 - 사용자 정의 타입

서로 관련된 변수를 묶어서 하나의 타입으로 새로 추가

1
2
3
int hour;
int minute;
float second;

1
2
3
4
5
class Time{
int hour;
int minute;
float second;
}

댓글

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×