클래스(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을 대입하면 된다.
'프로그래밍언어 > Java' 카테고리의 다른 글
접근수준지시자(public, private, protected, default) (0) | 2019.07.13 |
---|---|
정보은닉, 캡슐화 (0) | 2019.07.13 |
패키지와 클래스패스 / import (0) | 2019.07.12 |
변수(Variable)의 영역, 범위(Scope ) (0) | 2019.07.10 |
자바 간단 기초정리 (0) | 2019.07.05 |