IT 개발노트
클래스와 객체의 정의와 용도 본문
1. 클래스와 객체의 정의와 용도
- 클래스의 정의 : 클래스란 객체를 정의해 놓은 것이다.
- 클래스의 용도 : 클래스는 객체를 생성하는데 사용된다.
- 객체의 정의 : 실제로 존재하는 것. 사물 또는 개념.
- 객체의 용도 : 객체의 속성과 기능에 따라 다름.
-> 클래스는 설계도에 비유할 수 있으며, 객체는 설계도에 의해 만들어진 사물에 비유할 수 있다.
1.2 객체와 인스턴스
- 객체(object)는 인스턴스(instance)를 포함하는 일반적인 의미
- 인스턴스화 : 클래스로부터 인스턴스를 생성하는 것.
1.3 객체의 구성요소 - 속성과 기능
- 객체는 속성과 기능으로 이루어져 있다.
-> 객체는 속성과 기능의 집합이며, 속성과 기능을 객체의 멤버(member, 구성요소)라고 한다.
- 속성은 변수로, 기능은 메서드로 정의한다.
-> 클래스를 정의할 때 객체의 속성은 변수로, 기능은 메서드로 정의한다.
1.4 인스턴스의 생성과 사용
- 인스턴스의 생성방법
클래스명 참조변수명; // 객체를 다루기 위한 참조변수 선언
참조변수명 = new 클래스명(); // 객체생성 후, 생성된 객체의 주소를 참조변수에 저장
Tv t;
t = new Tv();
Tv t = new Tv(); // 위에 두줄을 한줄로
-> 사용하지 않는 객체는 가비지컬렉터가 자동적으로 제거해주기 때문에 사용되지 않는 객체를 관리하지 않아도 되기 때문에 메모리 관리하기가 편리하다는 장점이 있다.
- 참조변수.메서드명으로 객체에 접근해 사용할 수 있다.
- 하나의 인스턴스를 여러 개의 참조변수가 가리키는 경우(가능)
- 여러 개의 인스턴스를 하나의 참조변수가 가리키는 경우(불가능)
1.5 클래스의 또 다른 정의
1.5.1 클래스 - 데이터와 함수의 결합
- 변수 : 하나의 데이터를 저장할 수 있는 공간
- 배열 : 같은 타입의 여러 데이터를 저장할 수 있는 공간
- 구조체 : 타입에 관계없이 서로 관련된 데이터들을 저장할 수 있는 공간
- 클래스 : 데이터와 함수의 결합(구조체 + 함수)
--> c언어에서는 문자열을 char[]로 다루었지만, java에서는 문자열을 char[] + 관련함수를 하나의 클래스인 String 클래스로 정의하였다.
1.5.2 클래스 - 사용자 정의 타입(User-defined type)
- 프로그래머가 직접 새로운 타입을 정의할 수 있다.
- 서로 관련된 값(변수)을 묶어서 하나의 타입으로 정의한다.