Search
Duplicate
😀

04. Java, Class 포괄

태그
Class 의 구성요소
1. 멤버 변수 - 클래스 멤버변수 ㄴ 클래스의 상태 ㄴ Class 메모리 로드 시 1번만 할당됨 - 인스턴스 멤버변수 ㄴ 객체의 상태 ㄴ 객체 생성시마다 할당됨 2. 메서드 - 클래스 메서드(static) ㄴ 클래스 관점에서의 행위 ㄴ 객체 식별을 해야만 하는 작업이 아닌 경우 ㄴ 객체를 생성 안하고 메서드 실행이 가능하다! - 인스턴스 메서드 ㄴ 객체 관점에서의 행위 ㄴ 객체 식별을 해야하는 작업인 경우 ㄴ 객체 관련 작업을 포함 3. 생성자 - 객체 초기화의 다양성을 제공한다. 4. 중첩 클래스(Nested Class, Inner Class) - 클래스 안에 클래스가 있는 형태 - outer 클래스의 멤버들을 상속받은 것처럼 사용 가능하다. (실제 상속받은건 X) - 생성과 동시에 정의해서 1회성으로 사용하는 익명 내부클래스도 존재한다. 5. initializer (초기화자) - Static initializer ( static { 실행문장 } ) ㄴ 클래스 메모리 로드 시 자동실행 - instance initializer ( { 실행문장 } ) ㄴ 객체 생성시마다 자동실행 ㄴ 생성자가 있기 때문에 잘 사용되지 않는다.
Class 작성
Package 선언문
package domain; 물리적으로 폴더의 기능을 한다. Unique한 특성을 가지기 위해 domain name을 역순으로 하여 사용한다.
Import 문
import class_Name; import Interface_Name; import의 단위는 패키지가 아니라 Class, interface이다. 현재 클래스 안에서 참조, 사용하는 클래스가 자신과 같은 패키지가 아닌 경우에는 명시 (단, java.lang 패키지는 자동으로 import됨)
Class 정의
[접근지정자] [활용지정자] class c_Name [extend 부모_Name] [ implements 인터페이스,,,] 접근지정자 (공개 범위) - outer Class ⇒ default, public 사용 가능 - Inner Class ⇒ default, public, private, protected 사용 가능 활용지정자 (사용방법) - final ⇒ 상속 금지 - abstract ⇒ 추상 클래스 Class_Name - 명사형 - 첫글자는 대문자 사용, 나머지는 Camel Case
Class 정의 - (1) 멤버변수
[접근지정자] [활용지정자] Data_Type 변수_Name [ = 초기값] 접근지정자 - private ⇒ 클래스 내에서만 접근 가능 - public ⇒ 모든 클래스에서 접근 가능 - protected ⇒ 자식인 경우 public, 나머지는 default로 동작한다. - default ⇒ 같은 패키지 내의 클래스에서 접근 가능 활용지정자 - static ⇒ class 멤버변수 - final ⇒ 상수 - transient ⇒ 객체직렬화 대상 제외 (다시 공부하자...) 변수_Name - 명사형 - 첫글자는 소문자, 나머지는 Camel Case
Class 정의 - (2) 메서드
[접근지정자] [활용지정자] Return_Type method_Name([매개변수,,,]) [throws 구문] {} 접근지정자 - private, public, protected, default 활용지정자 - static ⇒ class 메서드 - final ⇒ 재정의 불가 - Synchronized ⇒ 객체의 점유권을 가지고 있는 경우에만 사용할 수 있음 (세마포어와 비슷) - abstract ⇒ 구현부가 생략될때만 사용 가능 (하위 클래스를 통해 재정의하라고 명시) method_Name - 동사형 - 첫글자는 소문자, 나머지는 Camel Case
Class 정의 - (3) 생성자
[접근지정자] Class_Name([매개변수,,,]) [throws 구문] {} 접근지정자 - private, public, protected, default