Java/자바

클래스와 인스턴스 그리고 객체

필리힐리 2021. 1. 13. 09:18

클래스는 설계도 인스턴스는 그 제품이다

객체는 변수와 메소드의 집합체이다, 객체를 프로그램 안에 있는 작은 프로그램으로 보자

 

연관되어 있는 것들을 묶고 반복되고 중복되는 걸 제거하기 위해 만들어졌다

클래스와 인스턴스가 없다면 많은 코드들이 중구난방으로 섞일 수 있어 유지보수가 어렵다

이 문제를 해소하기 위해 언어 개발자들이 만든 개념이 객체지향프로그램이다

변수는 객체의 상태, 메소드는 행위

 

Calculator c = new Calculator();

객체를 생성한다는 건 우리가 데이터타입을 직접 만드는 거라고 볼 수 있다

Calculator라는 클래스가 들어갈 수 있는 메모리를 확보해놓고 생성

메모리에 c라는 변수가 들어갈 수 있는 공간을 확보해 놓고 그 안에 Calculator 클래스를 복제해서 대입

 

인스턴스와 클래스의 맴버

 

static field - 클래스 변수, non static field - 인스턴스 변수

앞에 static이 붙으면 class 변수다

프로그램상에서 클래스가 먼저 만들어지고 인스턴스가 만들어지기 때문에 

인스턴스에는 클래스의 정보가 있지만 클래스는 인스턴스의 정보가 없다 이런 이유로

인스턴스에서 클래스 변수에는 접근할 수 있지만 클래스 변수에서 인스턴스 변수로는 접근이 불가능하다

 

클래스 변수의 효용

 

1. 인스턴스는 그 안에 있는 메소드들이 하나의 완성된 부품처럼 연관이 되어 있어

그 결과를 한 번에 보여주고 싶을 때 사용한다

클래스는 인스턴스 값을 사용하지 않고 일회용으로 각각 결과를 보여주고 싶을 때 사용한다

 

2. 변수 값을 모든 인스턴스가 공유하게 하고 싶을 때 사용

 

3. 변하지 않는 변수 값을 지정하고 싶을 때 사용

 

 

 

 

 

 

 

'Java > 자바' 카테고리의 다른 글

상속과 생성자  (0) 2021.01.14
유효범위  (0) 2021.01.13
객체지향프로그래밍  (0) 2021.01.12
메소드  (0) 2021.01.12
배열  (0) 2021.01.11