본문 바로가기
JAVA

JAVA(2) 클래스, 객체, 인스턴스

by cooky2 2021. 3. 13.

 

 

클래스(Class)

: 객체를 만들어 내기 위한 설계도, 연관되어 있는 변수와 메서드의 집합.

ex) 회원가입을 하기 위해서 회원가입 입력 값(변수) 절차(변수)를 하나의 문서로 만들어서 컴퓨터에 저장해둔 것.

즉, 아직 회원가입이 되진 않고 양식만 존재하는 상태를 말한다! 

 

실제로 인스턴스화 하기 전에는 의미가 없는 양식에 불과하지만 static과 같은 예외가 있다고 한다. 

static의 의미는 접근 가능한 범위 내에 있는 모든 클래스에서 해당 필드나 메서드를 공유한다는 뜻이다. 

처음부터 인쇄물이 한 장밖에 없고 더 이상의 복사를 허용하지 않는다는 것. 인쇄물이 한장 밖에 없으므로 벽에다가 붙여두고

누가 보거나 수정하게 되면 언제나 원본이 변경된다.

따라서 새로운 인스턴스를 생성할때는 클래스 내의 static필드나 메서드는 복사하지 않고 바로 호출해서 사용한다는 것. 

 

반대로 static이 아닌 경우 복사본을 여러 개 생성해서 사용하기 때문에

각자의 종이를 수정하더라도 원본이나 다른 사람의 것에는 영향을 미치지 않게 된다.

static을 쓰지 않은 경우 인스턴스 생성을 꼭 해줘야 사용이 가능하다. 

 

 

 

객체(Object)

: 클래스에 정의된 내용대로 메모리에 생성된 것.

하나의 역할을 수행하는 메소드와 변수(데이터) 묶음.

배열은 어떤 데이터들을 순서대로 담는데, 객체는 무언가를 담는다는 느낌에서 배열과 비슷하지만 순서가 없다. 

데이터나 함수를 담을 수 있는 그릇 같은 것이고 키와 값으로 구성되어있다. 

중괄호를 이용해서 선언할 수 있고 키와 값은 :콜론으로 구분하며 쉼표를 이용하여 여러 개를 추가할 수 있다. 

 

 

인스턴스(Instance)

:클래스를 담은 일종의 클래스 변수 

ex) 만들어 둔 회원가입 양식을 누군가 쓰기 위해 출력해서 위에다가 이름을 쓴 상태와 같다.

컴퓨터 속에만 존재하던 양식을 실제 사용하기 위해 물리적인 실체로 소환한 것. 

컴퓨터 내에서는 메모리에 실제로 올라와서 사용할 수 있는 상태가 된 것을 의미한다. 

 

 

 

댓글