프로그래밍/JAVA

[JAVA의 정석]6_객체지향개념_클래스와 인스턴스

개발자 덕구🐾 2022. 4. 27. 21:22
728x90

역시 백엔드 개발자는 자바지!

열심히 익혀보자.
기말고사 전까지
객체지향의 개념과 자바(제네릭, 쓰레드)등 를 이해하는 것이 목표!





일론머스크는 어떻게 항공 쪽은 아는게 없지않느냐 어떻게 사업을 했냐는 질문에
그는 관련 책을 읽었다. 라고 했다.
나도 프로그래머가 되기 위해서 책을 읽자 라는 생각이 들어 자바의 정석이라는 책을 읽고 익힐것이다.



 

자바 마스터가 되자는 의미에서 만들어본 썸네일(?)





객체지향언어는
- 코드의 1. 재사용성이 높고, 2. 관리(유지보수)가 용이하며 3. 신뢰성이 높은 프로그래밍을 가능하게 한다.

- 코드 간에 서로 관계를 맺어 줌으로써 유기적으로 프로그램을 구성할 수 있다. 




클래스는 ' 객체를 정의해놓은 것'이다. 또는 ' 객체의 설계도 또는 틀'을 의미한다.

'상태''행위'를 가지는 자바의 기본단위이다. 


그리고 그대로 객체를 만들 수 있다.
클래스는 붕어빵 틀이고 객체는 만들어진 붕어빵이다.

 

붕어빵 틀을 통해서 붕어빵을 만들어야지만 붕어빵을 먹을 수 있듯

클래스를 통해 객체를 만든 후에야 객체를 사용할 수 있다. 

 

 

 

 

  클래스로부터 객체를 만드는 과정을 클래스의 인스턴스화라고 한다. 

 

객체과 인스턴스의 차이

객체와 인스턴스는 같은 의미이지만
객체는 모든 인스턴스를 대표하는 포괄적인 의미를 가지고 ,
인스턴스는 어떤 클래스로부터 만들어진 것인지를 강조하는 구체적인 의미를 가진다.

같은 의미이기 때문에 엄격히 구분할 필요는 없지만 문맥에 따라 구분하여 사용하면 좋다.



객체는 기능과 속성으로 이루어져있다.
동일한 의미를 가지는 여러 용어를 사용하는데 주로
속성은 멤버변수(member variable), 기능은 메서드(method)를 사용한다.

 

 

객체는 속성과 기능의 집합-! 





2.4 인스턴스의 생성과 사용

 

class TV {
    String color;
    boolean power;
    int channel;

    void power() {power = !power;}
    void channelUp() {++channel;}
    void channelDown() {--channel;}

}

public class tv_example {
    public static void main(String args[]) {
        TV t;
        t = new TV();
        t.channel = 7;
        t.channelDown();
        System.out.println("현재 채널은 " + t.channel + " 입니다.");
    }
}


출력 :

 

TV t ;

=> TV 클래스 타입의 참조변수 t를 선언. 메모리에 참조변수 t를 위한 공간이 만들어진다.

t = new TV();

=> new를 통해 TV클래스의 인스턴스가 생성된다 . 이 인스턴스의 주소값이 참조변수 t에 대입연사자(=)에 의해서 저장된다.

참조변수가 인스턴스를 가리키고 있다. 또는 참조하고 있다. 라고 말한다.

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


이 두줄의 코드를 한 줄 로

TV t1 = new TV();

와 같이 작성할 수 있다.








2.5 객체 배열

 

 

객체 배열은 참조변수들을 하나로 묶은 참조변수 배열인 것이다. 

 

 

TV[] tvArr = new TV[3]; // TV 타입의 참조변수 배열


아직 그저 객체를 다루기 위한 참조변수들이 생성된 상태이다.

 

 




객체를 생성하고 각 요소에 저장해야만 비로소 연결이 된것이다.

tvArr[0] = new TV();
tvArr[1] = new TV();
tvArr[2] = new TV();








구조체 : 서로 관련된 다양한 타입의 데이터를 하나의 집합으로 저장할 수 있는 공간
클래스 : 데이터와 함수의 결합 (구조체 + 함수)

 

                                            



반응형