티스토리 뷰

Java/기본

030. Class 구성 요소

따강아지 2022. 5. 16. 22:53

Class 구성 요소

 

1. Field

  • 인스턴스 변수 ( or 멤버 변수 ) : 클래스( Class )에 포함된 변수로 클래스 안에 있는 모든 곳에서 접근 가능하다 
    -> 클래스의 전역 변수  
  • 지역 변수 : 메서드( Method )에 포함된 변수로 해당 메소드에서만 유효하다. 

1-1. Field 선언

private 자료형 변수이름 [ = 초기값 ]

private int num;
private int num = 20 ;     // 선언과 초기화 동시 진행 

1-2. 메모리 구조

  • 인스턴스 변수는 객체 안에 저장 ( heap )
  • 지역 변수는 stack에 저장

 

 

 


1-3. 인스턴수 변수는 초기값 강제 설정

private int num;
private int num = 20 ;     

num = 0
num01 = 20


1-4. 지역변수는 stack에 저장되므로 초기화 없으면 오류 발생 


2. Method

클래스의 기능을 의미하여 Operation이라 한다.

2-1. Method 선언

자바제어자 반환 Type Method명( 매개변수 ) {
        실행 문 ;
        [ return 값 ]   // 반환 type 이 void 이면 생략
}

- 매개변수 : 입력 매개 변수로 복수인 경우 , 로 구분 한다. ( 자료형(Type) 매개변수이름 [ , 자료형(Type) 매개변수 이름,… ] ) 


2-2. 자바 제어자

  • 접근 지정자  :  접근 가능 범위 선언
    - public, private, default, protected
  • static :
    - 클래스의 멤버(필드, 메서드, 이너 클래스)에 사용
    - 정적 멤버 ( Static Member )
    - 객체 생성 없이 “객체명. 정적 멤버명“으로 사용
  • final : 불변 값 표현
    -  필드, 지역변수, 메서드, 클래스 앞에 위치하며 각 의미가 틀림
  • abstract :
    - 기능을 정의하지 않는 추상한 것을 상속받은 곳에서 구현
    - 추상 메서드(abstract method ), 추상 클래스 ( abstract class )
접근 지정자 접근(사용) 가능 범위
public 동일 패키지의 모든 메서드 + 다른 패키지의 모든 클래스
protected 동일 패키지의 모든 메서드 + 다른 패키지의 자식 클래스
default ( or package ) 동일 패키지의 모든 메서드  ( 접근 지정자 생략 가능 )
private 동일 클래스

2-3. 메서드 오버 로딩 (Method Overloading)

메서드명과 입력 매개변수로 JVM은 메서드명은 같은데 입력 매개변수의 개수가 틀리면 다르게 인식하는 것을 이용하는 것으로 이것을 메서드 오버로딩 ( Method Overloading )이라 한다.


2-4. 가변 입력 매개 변수

MethodOverloading을 이용하면 매개변수 개수를 계속 만들어지는 단점을 극 복 하기 위해 동일 자료형으로 매개변수의 개수를 동적으로 지정해 줄 수 기능으로 매개변수는 배열로 인식한다.


3. 생성자(Constructor)

  • 객체를 생성할 때 사용하는 기능으로 2가지의 문법적 규칙이 있다.
  • 반드시 클래스명과 동일해야 하고 반환형이 없어야 한다.
  • 클래스에 생성가가 없는 경우 컴파일러가 입력 매개 변수가 없는 기본 생성자를 추가해 준다.
  • MethodOverloading을 사용하여 여러 매개 변수를 가질 수 있다.


4. this()

  • 클래스 내의 다른 생성자를 호출할 때는 생성자 함수 내부의 첫 번째에 사용해야 한다.
  • 클래스 내의 멤버 변수를 참조하는 경우는 this. 을 사용한다. 


5. Inner Class

  • 클래스 내부에 있는 클래스를 의미한다.
  • 클래스 멤버 : 인스턴스 멤버 이너 클래스, 정적  멤버  이너 클래스
  • 지역 변수 : 지역 이너 클래스로  한정적으로 사용 한다.

'Java > 기본' 카테고리의 다른 글

032. Java Class 상속  (0) 2022.05.24
031. Java 외부 구성 요소  (0) 2022.05.16
029. 클래스 ( Class )  (0) 2022.05.11
028. 객체 지향 프로그램 ( OOPL )  (0) 2022.05.09
027. 자바 : 제어문  (0) 2022.03.14