1 분 소요


클래스의 구성요소로는 필드, 생성자, 메서드가있다.

클래스

  1. 데이터와 함수의 결합

  2. 설계도

  3. 사용자 정의타입

사용자정의타입

우리가 정의한 타입 – 원하는 타입을 직접 만들 수 있다.

1번

int hour;
int minute;
int second;


2번

int hour1, int hour2, int hour3;
int minute1, int minute2, int minute3;
int second1, int second2, int second3;


이런 코드가 있다고 한다면, 내가 쓰고자하는 변수들을 모아서 하나의 클래스를 생성하는것이 사용자정의타입이라고 할 수 있다.


class Time {
	int hour;
	int minute;
	int second;
}


1번을 사용자정의 타입을 이용하여 간결하게 바뀔수 있다.

Time t = new Time();


2번도 장황한 변수들을 세줄로 간결하게 표현될수 있다.

Time t1 = new Time();
Time t2 = new Time();
Time t3 = new Time();



생성자

클래스명 인스턴스명 = new 생성자명{()};


힙영역에 생성된 인스턴스는 힙 영역에 저장된 메모리를 사용한다.

힙영역은 개발자가 만들고 해제하는 임시 메모리 영역이다. 생성자를 호출하여 사용하면 바로 삭제되지 않고 가비지 컬렉션에 의해 소멸되는 영역이다.

클래스

처음 클래스를 생성하면 이런 형태의 화면을 볼 수 있다.

생성자

B 클래스에서 A클래스의 age로 접근은 한다고 보면 바로 age로 접근 하는 것이 아닌 생성자로 먼저 접근후에 멤버변수로 접근하는 형태라고 생각하면 된다.



위에서 설명한 내용을 바탕으로 설명을 다시 해보자면,

public class A {

	int age = 33;
	
	public A(){
	age = 22;

	}
}


public class B {

	public static void main(String[] args){
		A a = new A();
		System.out.println(a.age);
	}
}


클래스 A에서는 멤버변수 age와 생성자 내부의 로컬변수 age가 있다. 그러면 결과값으로는 당연히 22가 출력이 되는 것을 볼 수 있다.

그 이유는 호출되었을 때 기본생성자가 가장먼저 실행되기 때문에 age를 찾으러 갔다가 기본생성자에서 age를 만났기 때문에 22를 불러왔다라고 본다.



기본생성자와 필드생성자

생성자란 인스턴스가 생성될 때 호출되는 것이 인스턴스 초기화 메서드이다.

  1. 생성자의 이름은 클래스이름과 같다.

  2. 생성자는 리턴값이 없다.



기본 생성자

new 키워드를 사용하여 생성자를 호출하고 객체를 만든다.



필드생성자

필드 생성자는 필드에 데이터를 저장하거나 호출하는 역할을 한다.

생성자에게 매개변수가 추가된 것을 말한다. 매개변수를 받아서 실행후 외부로 보내기 위한 역할이다.



this 지시어

  • 객체의 자기 자신을 참조하는 기능을 가진 것을 말한다.

  • 현재실행되고 있는 객체에 대한 자기 자신 메모리를 가리킨다.

  • 생성자에서 다른 생성자를 호출한다.


  • 멤버변수설정
this. 멤버 변수명 = 매개 변수명;

인스턴스 생성 후에 메모리에 생성된 인스턴스가 자기 자신을 가리킬 때 사용될 수 있다.


  • 필드생성자설정
this[(매개 변수명1 ~ 매개변수명N)]

클래스 내에서 필드 생성자의 매개변수를 호출한다.

카테고리:

업데이트:

댓글남기기