참조 자료형, 객체, 커스텀 클래스
[클래스 분류 ]
1. 메인(Main) 클래스 : main 메서드를 갖고 있는 커스텀 클래스, 개발자가 직접 만든 클래스.
2. Bulit - in 클래서 (=내장 클래스) : JDK 설치할 때 이미 포함되어 있는 미리 만들어둔 클래스.
3. Reference custom 클래스(= 참조 사용자 정의 클래스) : 개발자가 직접 만든 참조되는 클래스
! 커스텀 클래스에 main메서드가 있다면 메인 클래스, 없다면 레퍼런스 클래스(=참조되는 클래스)이다.
! 참조라는 말은 대상을 사용할 수 있다는 의미로 초기화, 재초 기화, 연산, 출력, 재활용 등을 할 수 있다는 의미이다.
[커스텀 클래스의 구성요소(Java)]
1. 필드(field) : 클래스 레벨의 변수를 말한다.
! 메서드 레벨의 변수는 지역변수(Local Variable)라고 한다.
2. 생성자(Constructor) : 필드를 초기화하고 객체를 생성한다.
3. 커스텀 메서드(Custom Method) : 필드에 저장된 데이터를 사용하여 필요한 기능을 만든다.
! 클래스의 모든 구성요소는 필수 기재 사항이 아닌 개발자에 의한 선택 기재 사항이다.
[자료형의 구분]
1. 기본 자료형(Primitive Datatype) 초기 자료형, 원시 자료형
1) 숫자형(정수형, 실수형, 문자형), 진리형(불리언형)이 있다.
2) 실제 리터럴을 데이터로 사용하며 변수는 실제 리터럴을 변수의 값으로 갖는다.
2. 참조 자료형(Reference Datatype, 레퍼런스 데이터 타입)
1) 모든 클래스, 인터페이스, 배열, 열거체가 참조자료형에 해당한다.
2) 실제 리터럴이 존재하는 있는 별도의 주소를 데이터로 사용한다.
참조 변수는 별도의 리터럴이 있는 주소를 변수의 값으로 갖는다.
참조 자료형을 사용할 수밖에 없는 이유는 리터럴의 크기를 특정 크기로 한정할 수 없기 때문이다.
[필드]
필수는 아니지만 수식어 private를 사용한다.
초기화할 때 연산자, 연산 결과 대입 가능하며 초기화 없이 사용이 가능하다.
필드 VS 지역변수 | |
*변수를 초기화 하지않아도 사용이 가능하다. | 변수 초기화를 하지 않으면 컴파일 에러가 발생한다. |
*필드를 초기화하지 않으면 기본값으로 적용이 된다. 기본값은 숫자형 0, 진리형 false, 참조형 **null이다.
**null은 참조 주소 미입력 상태를 의미한다. (null pointer는 참조할 주소 값이 없음을 의미한다.)
>>메모리 구조도 차이가 있다.
[생성자]
생성자명과 클래스명은 반드시 동일해야 한다. 반환 자료형(return 반환 값;이 없다. 써도 무방하나 의미가 없다.)이 없고 객체 생성과 필드 초기화가 목적이다.
필드의 개수에 따라 여러 종류의 객체를 생성할 수 있다.
만약 생성자가 1개이고 매개변수 값이 없는 경우, 생략하면 디폴드 생성자(NAC)가 자동 생성된다.
그러나 생성자가 여러 개라면 자동 생성 기능이 없어진다. 매개변수가 있는 호출이 있다면 맞춰서 적어줘야 한다.
생성할 때는 메서드 오버 로딩(자료형의 개수, 순서)을 주의해야 한다.