05 클래스와 객체

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

○ 클래스

정의 : 객체를 정의해 놓은 것

용도 : 객체를 생성하는 데 사용

○ 객체

정의 : 실제로 존재하는 것, 사물 또는 개념

용도 : 객체가 가지고 있는 기능과 속성에 따라 가능

유형의 객체(사물), 무형의 객체(논리나 개념)

○ 클래스를 잘 만들어 놓으면 객체 생성할 때 고민이 줄어든다!

 

객체와 인스턴스

○ 인스턴스화 : 클래스로부터 객체를 만드는 것

○ 인스턴스 : 어떤 클래스로부터 만들어진 객체

객체보단 인스턴스가 좀 더 구체적인 의미를 가짐(이 클래스를 통해 만들어진 객체다!)

 

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

○ 속성 : 멤버 변수. 특성, 필드, 상태

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

○ 클래스로부터 객체를 생성하면 클래스에서 정의된 속성과 기능을 가진 객체가 만들어짐

 

인스턴스의 생성과 사용

○ 클래스명 변수명; -> 클래스 타입의 참조변수를 선언함. 메모리에 참조변수를 위한 공간이 할당됨

변수명 = new 클래스명( ); -> new 연산자에 의해 클래스의 인스턴스가 메모리 빈 공간에 생성됨

                                       대입 연산자에 의해 인스턴스의 주소값이 참조변수에 저장됨

○ 인스턴스의 멤버변수를 사용할 때 참조변수.멤버변수! (C언어의 멤버연산자 . 와 유사)

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

○ 같은 클래스로부터 생성된 인스턴스의 멤버변수는 서로 다른 값 가질 수 있고 메서드는 동일

 

객체 배열

○ 참조변수들을 하나로 묶은 참조 변수 배열

○ 객체를 생성해 객체 배열의 각 요소에 저장해줘야 함

○ 다형성을 통한 다양한 객체를 한 배열에 담을 수 있음(배열은 같은 자료형으로 모인 구조!)

 

클래스의 또 다른 정의

○ 데이터와 함수의 결합

변수와 함수를 하나의 클래스에서 정의해 서로 관계가 깊은 변수와 함수를 함께 다룰 수 있음

○ 사용자 정의 타입

 

+ Recent posts