반응형

클래스(Class)란?

 

 데이터(Data)와 메소드(Method)를 담아두는 곳이다.

 즉 데이터를 가진 변수와 이러한 변수들을 다루는 기능들을 담아둔 하나의 틀이다.

 

 확장자가 class인 클래스 파일은 정의되는 클래스 수만큼 생성된다.

 클래스의 수 = 생성되는 클래스 파일의수 

 

생성자란(constructor)?

 

 생성자는 인스턴스를 생성해주는 역할을 하는 특수한 메소드이다.

 반환 값 타입을 메소드 정의에 포함시키지 않으며, 이 때문에 메소드 내부에 return도 사용하지 않는다.

 

생성자의 특징

 

 반환값이 없는 메소드는 생성자가 유일하다.

  -따라서 환형이 존재하지 않는다. 즉 return이 없다.

 

클래스에는 반드시 생성자가 존재해야 한다.

  -생성자호출이 생략되었을시 컴파일러에 의해 자동으로 디폴트생성자(Default Constructor)가 삽입된다.

  -즉 생성자 호출규칙은 유지된다

 

인스턴스 생성시 단 한번만 호출 되며 인스턴스 변수의 초기화가 목적이다.

 

클래스 이름과 동일한 이름을 가진 메소드이다.

  -ex)class 이름이 Example일시 생성자는 public Example(){} 형태로 만들어진다.

class Example {
	public Example() {

	}
}

 

 

인스턴스(Instance)란?

 

 객체가 메모리에 할당되면서 실제 메모리를 차지하는것이다. == 인스턴스화 한다고 말한다

 

class Result {
	int num = 0; // 변수

	public int add(int num1, int num2) { // 메소드

	return num1 + num2;
	};
}

 

 예를 들어 위처럼 Result클래스가 있다고 가정해보자

 new Result(); // 선언시 '클래스 Result가 인스턴스화' 되어 실제 메모리 공간에 존재하게 된다.

 

 그러나 메모리상에 인스턴스를 만드는 것만으로는 사용할 수 없다.

 이를 사용하기 위해서는 인스턴스를 참조하는 변수가 필요한데 이 변수를 '참조변수'라고 한다.

 

 Result result1 // '참조변수 result1' 선언

 

 인스턴스화와 참조변수를 동시에 생성할 수 있으며 이러한 형태는 많이 봤을것이다.

 Result result1 = new Result();

 

 참조변수가 인스턴스와의 관계를 끊고 어느 인스턴스도 참조하고 싶지 않으면 참조변수에 null을 대입하면 된다.

 

 

 

반응형

+ Recent posts