Java/기본개념

Java (Class, Interface)

후니코드 2016. 11. 1. 10:56

구성요소 및 개념

클래스 & 인스턴스 & 객체

클래스 구성 요소

  • 변수
  • 메소드
    • 생성자: 특수 메소드
      • 반환타입 없음
      • 클래스 생성에 있어 초기화 블럭
      • 클래스 명과 동일.
    • 특화된 개념: getter, setter
  • 초기화 블럭
    • static
      • 프로그램이 실행 되는 시점에 한 번 실행
    • (instance)
      • 클래스가 생성 될 때 한 번 실행.
  • This, super
    • 생성자이기도 하고 변수이기도 함.
    • This: 생성된 클래스(객체) 자체
    • Super: 생성된 클래스(객체)의 부모 클래스

상속

  • 오버로드 (Overload)
    • 동일 이름의 멤버를 여러개 작성
    • 상이한 메소드로 작동
  • 오버라이드 (Override)
    • 상속에서 동일 이름으로 재작성
    • 상위 클래스의 멤버와 동일하게(멤버 명, 매개변수 타입) 사용
  • 최종 정의가 최우선 실행.

접근제어자

  • Public
    • 모든 곳에서 생성 및 상속 가능
  • Protected
  • (default)
    • 동일 패키지 내에서만  생성 및 상속 가능
  • Private
    • 동일 클래스 내에서만 사용 가능
    • 클래스 외부에서 사용, 상속 불가

변경금지자 (final)

  • Class : 상속 불가
  • 메소드: 재정의 금지
  • 변수: 값의 변경 금지

생명주기 고정자

  • static: 메인메모리 상주/고정 지정

정의 예약자 abstract

  • 실 사용/생성 클래스에서 정의 후 사용을 의무화

인터페이스

  • Abstract 메소드
  • Final 변수
  • 모든 멤버는 public
  • Default / static method 개념 추가 @ java v 1.8

내부 클래스

  • 클래스 내부에서 별도의 클래스를 정의 할 수 있다.
  • 종류
    • Instance
      • 기본적으로 Static 멤버를 가질 수 없다.
        • Static 멤버가 final일 경우는 가질 수 있다.
    • Static
      • 내부 클래스만 적용 가능
    • Local
      • 메소드 내부에서 선언/정의
    • Anonymous(익명)
      • 객체의 선언과 생성을 동시에.
      • 생성자 대신 다음을 사용
        • 조상클래스 이름()
        • 인터페이스 이름()
  • 접근
    • 일반 멤버와 유사
      • Static은 static에만 접근 가능
      • Final 로 선언되면, 상수개념임. (상수는 전역/접근자에 따른 접근성)

*** 참고 ***

Interface 와 Abstract Class 의 차이:

인터페이스는 생성자가 없다.