ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Java 클래스
    Java 2024. 2. 26. 00:07
    728x90
    반응형

    클래스

    서로 관련있는 멤버(변수 및 메서드 등)의 집합
    접근 제한자가 public인 클래스의 이름은 해당 클래스가 위치하는 파일의 이름과 같아야 한다.
    명명법: 파스칼 케이스


    클래스의 구조

    [접근 제한자] [abstract|final]? class [클래스 이름] [extends 부모 클래스]? [implements 인터페이스,...]? {
                [멤버...]
        }


    abstract    : 해당 클래스를 추상 클래스로 지정
    final       : 해당 클래스를 최종 클래스로 지정하고 더 이상 상속할 수 없는 대상으로 지정.
    extends     : 상속받을 클래스 한 개를 지정
    implements  : 구현할 인터페이스 한 개 이상을 지정


    객체(Instance)

    객체화 연산(new)을 통해  참조 타입이 객체화된 대상을 의미


    생성자(Constructor)

    클래스가 객체화될 때 반드시 실행되는 일종의 메서드
    클래스 객체화 연산(new)시 타입 뒤에 적는 괄호(())는 생성자 호출이다.

    String str = new String("Hi");        // 생성자 호출

     

    생성자의 구조

    [접근 제한자] [클래스 이름] ([매개 변수, ...]){
        [구현부]
    }


        - 생성자의 이름은 반드시 클래스의 이름과 일치해야 한다.
        - 생성자는 추상적(abstract)이거나 최종적(final)이거나 정적(static)일 수 없다.
        - 반환 타입을 명시하지 않는다.
        - 객체화 연산 외에는 임의로 호출할 수 없다.
        - 생성자 구현부의 첫 구문은 반드시 부모 클래스의 생성자 호출(super(...))이거나 자신 클래스의 생성자 호출(this(...))이어야 한다.

    기본 생성자

    클래스를 만들 때 별도의 생성자를 명시하지 않을 경우 항상 생략되어 존재하는 생성자이다.


    기본 생성자의 구조

    public [클래스 이름](){
        super();
    }

     

    패키지(Package)

        - 클래스를 포함한 구성요소를 종류별, 목적별로 분류하기 위한 디렉토리(Directory) 구조이다.
        - 명명법 : 카멜 케이스 혹은 스네이크 케이스 혹은 단순 소문자 이어쓰기 등, 회사나 개발 환경에 따라 다름.

    접근 제한자(Access Modifier)

        - 어떠한 대상으로 하여금 이에 접근할 수 잇는 범위를 제한하기 위해 사용
        - public    : 접근을 제한하지 않음
        - protected : 같은 패키지 경로를 가지거나, 상속 관계에 있는 대상으로 접근을 제한
        - (default) : 같은 패키지 경로를 가지는 대상으로 접근을 제한한다. 단, 실제로 default라는 키워드를 적는 것이 아닌 접근 제한자를 생략하는 것이다.
        - private   : 동일 클래스 내에서만 접근을 허용한다.

    상속(Inheritance)

        - 어떠한 클래스가 다른 클래스로 하여금 다른 클래스의 기능을 그대로 물려받아 새로운 기능을 확장시키기 위해 사용
        - 어떠한 클래스에게 상속받을 클래스를 명시하지 않을 경우 모든 클래스는 자동으로 Object(java.lang.Object) 클래스를 상속받는 것으로 한다.
        - 최종(final)으로 명시된 클래스는 상속 대상일 수 없다.
        - 다중 상속 관계는 허용되지 않으며 반드시 한 개의 클래스만 상속받아야 한다.
        - 순환 상속 구조를 가질 수 없다.

    728x90
    반응형
Designed by Tistory.