ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [자바의 정석] 객체지향 언어 & 클래스와 객체
    JAVA 2022. 10. 12. 12:11
    728x90
    반응형

    객체지향 언어 란?

    • 코드의 재사용성을 높여준다.
    • 코드의 관리가 쉬워진다.
    • 신뢰성이 높은 프로그램의 개발을 가능하게 한다.

    클래스와 객체

    클래스는 객체를 정의해 놓은 것을 말한다.
    객체는 속성과 기능을 가진 개념을 말한다.
      - 객체(Object)는 인스턴스(instance)를 포함하는 일반적인 의미이다.

    예를 들어 붕어빵 기계는 클래스이고 붕어빵은 객체가 된다.

    객체의 구성요소

    객체는 속성(변수)과 기능(메서드)으로 이루어져 있으며 속성과 기능을 합쳐서 멤버라고 한다.

    class Tv{
        // 속성(변수)
        String color;
        boolean power;
        int channel;
        
        // 기능(메서드)
        void power(){power = !power;}
        void channelUp(){channel++;}
        void channelDown(){channel--;}
    }

    인스턴스의 생성과 사용

    • 인스턴스를 생성한다는 것은 클래스로부터 인스턴스를 생성하는 것을 말한다.
    Tv t1; // 객체를 다루기 위한 참조변수 선언
    t1 = new Tv(); // 객체 생성 후, 생성된 객체의 주소를 참조변수에 저장한다.
    
    Tv t2 = new Tv(); // 위 과정을 한줄로 표현할 수 있다.
    • 인스턴스를 사용한다는 것은 객체의 속성과 기능을 사용하는 것을 말한다.
    Tv t = new Tv(); // 객체(Tv) 생성 후 참조변수(t)에 주소를 저장한다.
    
    t.channel = 7; // 속성(변수)에 값을 초기화해준다.
    t.channelDown(); // 기능(메서드)를 사용한다.
    
    System.out.println(t.channel); // 6

     

    • 여러 개의 참조 변수가 한 개의 인스턴스 주소를 가지고 있을 수 있다.
    • 한 개의 참조 변수가 여러 개의 인스턴스를 가지고 있을 수는 없다.
    // 지금은 각각의 참조변수에 다른 주소가 저장되어 있다.
    Tv t1 = new Tv(); 
    Tv t2 = new Tv();
    
    // 참조변수 t2에 t1에 저장되어 있는 객체의 주소를 저장한다.
    // 이제 t1,t2는 같은 주소 값을 가지게 된다.
    t2 = t1;
    
    t1.channel = 7; // t1에 저장되어 있는 객체의 속성(변수) 값을 초기화 해준다.
    
    System.out.println(t1.channel); // 7
    System.out.println(t2.channel); // 7
    
    // t2에 저장되어 있는 객체의 주소가 t1과 동일하기 때문에 가능하다.

    클래스의 또 다른 정의

    클래스는 구조체와 함수가 결합한 형태를 의미한다.

    • 구조체는 타입에 관계없이 서로 관련된 데이터들을 저장할 수 있는 공간을 말한다.
    // 클래스 없이 별도로 존재하는 변수
    int hour;
    int minute;
    int second;
    
    // 클래스를 사용해 서로 관련된 값을 묶어서 하나의 타입으로 정의
    class Time{
        int hour;
        int minute;
        int second;
    }

    배열을 통해 여러 개의 객체를 저장할 수 있다.

    class Time{
        int hour;
        int minute;
        int second;
    }
    
    // 배열을 통해 여러개의 객체를 한개의 참조변수로 접근할 수 있다.
    Time[] t = new Time[3];
    t[0] = new Time();
    t[1] = new Time();
    t[2] = new Time();
    
    // 사용하는 방법
    t[0].hour = 4;
    
    System.out.println(t[0].hour); // 4
    728x90
    반응형
Designed by Tistory.