[Java] 클래스와 인스턴스
자바 클래스와 인스턴스
클래스와 인스턴스
클래스는 무엇인가 DATA + 함수 즉 자료와 행동 두 가지를 모두 묶어서 관리 할 수 있는 사용자 자료 형이다.
int, char를 이용해 변수를 선언 하면 선언된 변수는 메모리에 올라간다.
이와같이 클래스를 이용해 변수를 선언하여 메모리에 올라가면 인스턴스라고 한다.
클래스 자체는 사용이 불가능 하지만 클래스를 이용해 인스턴스(객체)를 만들면 그때 부터는 사용이 가능하다.
다음예를 통해 이해를 도와 보자.
다들 어린 시절 학교 앞에서 뽑기를 해본 적이 있을 것이다.
뽑기를 할때 국자에 소다와 설탕을 넣고 끓인 후 ☆ ♡ 등 모양의 틀로 찍고 그 모양대로 잘라먹은 기억을 다들 가지고 있을 것이다.
여기서 틀은 클래스라 생각 하자 틀을 찍어서 계속 뽑기를 여러개 만들 수 있는데 여기서 뽑기는 인스턴스라고 생각해보자
한개의 틀만 있으면 똑같은 뽑기를 계속 만들 수 있다.
아래는 human이라는 클래스를 작성 해 봤다.
이것은 단지 클래스이며 또다른 사용자 정의 데이터형이다.
클래스 만으로는 어떠한 것도 할 수 없다.
public class human { private int age; private String name; private String job;
public void showIntroduce() { System.out.println( "My Name is " + name ); System.out.println( "I`m " + age + " and my job is " + job ); } } |
자 아래는 위의 클래스를 가지고 인스턴스를 생성 하는 예이다.
아래 예 처럼 클래스는 한 개지만 한개의 클래스로 jack 인스턴스, hoke 인스턴스를 생성했다.
마치 int 자료형을 int a,b 여러게 할 당하는 것과 같은 것이다.
package sample; public class sample { public static void main(String[] args) { human jack = new human(); human hoke = new human(); } } |
인스턴스를 생성하는 것은 아래와 같다.
[클래스명] [인스턴스 명] = NEW 클래스 명() |
여기서 클래스 명() 은 마치 함수 모양이 똑같다고 생각이 들 것이다.
이것은 생성자라고 부르며 생성자에 대해서는 다음에 설명 하도록 하겠다.
이상으로 클래스와 인스턴스에 대해 알아 봤다.