클래스와 인스턴스
Class
Class란
- 객체를 정의해 놓은 것
- 객체의 설계도 또는 툴
- 객체를 생성하는데 사용됨
Class를 사용하는 이유
Class란
- 코드의 재사용성이 높다 (새로운 코드를 작성할 때 기존의 코드를 이용하여 쉽게 작성할 수 있다)
- 코드의 관리가 용이하다 (코드간의 관계를 이용해서 쉽게 코드를 변경할 수 있다)
- 신뢰성이 높은 프로그래밍을 가능하게 한다
Class 정의 방법
Class는 객체를 정의하는 과정으로 클래스에는 객체의 모든 속성과 기능이 정의되어 있다
1
2
3
4
5
6
7
8
9
10
class human {
// 속성(변수)
String job;
String sex;
String name;
int age;
// 기능(메서드)
void ageadd() { age++; }
void jobchange() { job="callmen" }
객체
- 객체는 실제로 존재하는 것 사물 또는 개념이다
- 객체의 용도는 객체가 가지고 있는 기능과 속성에 따라 달라진다
- 클래스에 정의된 내용대로 메모리에 생성된 것이다
객체의 구성 요소들
속성(property)
- 멤버변수(member variable)
- 특성(attribute)
- 필드(field)
- 상태(state)
기능(function)
- 메서드(method)
- 함수(function)
- 행위(behavior)
객체 생성 방법
위에서 생성한 Class를 사용해서 객체를 만드는 과정을 인스턴스화
라고 하며 Class로부터 만들어진 객체를 해당 Class의 인스턴스라고 한다
- 객체 : 모든 인스턴스를 대표하는 포괄적인 의미
- 인스턴스 : 어떤 클래스로부터 만들어진 것인지를 강조하는 보다 구체적인 의미
1
2
클래스명 참조변수명; // 클래스의 객체를 참조하기 위한 참조변수 선언
참조변수명 = new 클래스명(); // 클래스의 객체를 생성 후, 객체의 주소를 참조변수에 저장
new 연산자 : 인스턴스(객체)를 생성해주는 역할을 한다 메모리(Heap 영역)에 데이터를 저장할 공간을 할당받고 그 공간의 참조값을 객체에게 반환하여 주고 생성자를 호출한다
[객체 사용 과정]
graph LR
A(Class 정의하기 *설계도 그리기*)-->B(Class를 사용해서 객체 생성하기 *설계도를 이용해서 물건 생산하기*)-->C(만들어진 객체를 사용하기 *생산된 물건 사용하기*)
This post is licensed under
CC BY 4.0
by the author.