(*본 게시물은 본인이 교육을 통해서 배우는 내용을 정리하는 글입니다. 부족한 부분이 많으니 참고해주시기 바랍니다. 혹시 정확한 의미를 알고 싶으시거나, 틀린 내용에 대해 조언해주시고 싶은 분들께서는 댓글을 남겨주시면 최대한 빠르게 답변하겠습니다. 감사합니다.
- Modifier(제한자)
- access 접근제한자 (아래로 갈수록 접근 제한이 강화)
- public
- 클래스, 변수, 생성자, 메서드
- 어디서든 접근 가능
- 표기: '+'
- protected
- 변수, 생성자, 메서드, 내부클래스(Inner Class, 클래스 바로 안쪽 클래스, 메소드 안의 내부클래스는 로컬내부클래스)
- 동일 패키지안에서 접근 가능
- but, 상속 관계에 있다면 다른 패키지여도 접근 가능
- 표기: '#'
- package friendly(or default 강사님은 default라는 것은 없다고 함.)(키워드는 아님)
- 접근제한자를 표시하지 않는것.
- 동일 패키지 안에서 접근 가능(protected와 공통점)
- 클래스, 변수, 메서드, 내부클래스
- 표기: '~' or 공백
- private
- 변수, 메서드, 생성자, 내부클래스
- 동일 클래스 안에서만 접근 가능
- 표기: '-'
- public
- usage
- static
- final
- abstract
- transient
- native
- access 접근제한자 (아래로 갈수록 접근 제한이 강화)
- OOP 특징
- Encapsulation
- 접근제한자
- 변수는 private, 메소드는 public
- 이유 : 입력 data 검증(변수에 직접 넣으면 if문으로 확인 불가하지만 setter로 넣으면 if문으로 검증가능), 권한 체크
- 상속 Inheritance
- 단일 상속
- extends 키워드를 이용한다.
- is-a 관계
- Object를 상속
- 필드, 메서드만 상속
- 부모객체를 참조할 때는 "super."
- 일반화(Generalization) - 분석/설계할 때 사용하는 상속 용어
- 재정의 Override
- 부모가 가진 메서드를 자식이 다시 재정의한 메서드를 만드는 것.
- 이름이 동일해야한다.
- 파라미터도 동일해야한다.
- 리턴타임도 동일해야한다.
- access modifier는 부모의 접근제한레벨보다 자식의 접근제한레벨이 더 public해야한다.
- 부모가 static이면 자식도 static이어야 한다.
- final 변수는 재정의 불가능(final 붙인거는 '상속은 해줄건데 고치지는 못한다~' 라는것)
- 부모에서 throws하지 않는 새로운 예외는 throws할 수 없다.
- Encapsulation
- Polymorphism (다형성)
- 상속 관계(is-a) 전제되야 한다.
- 다형적 객체
- 부모타입으로 선언
- 자식객체참조
- ex. Shape s = new Circle();
- 이종모음 Heterogeneous Collection
- 배열의 다형성이 적용되어서 여러 타입의 객체를 저장하는 것
- wrapper class
- 기본타입을 객체로 사용할 수 있도록 만들어 놓은 클래스
- Byte, Short, Integer, Long / Float, Double / Boolean / Character(문자)
- jdk 1.4.6에 생겼다.
- java SE 5(jdk 1.5)부터는 Auto Boxing을 지원한다.(=자동으로 wapper 적용, 자동으로 푸는것(unwrap)도 지원)
- Virtual Method Invocation
- 컴파일 타임때는 선언한 클래스(new로 만든 객체의 타입이 아니라 변수의 타입)의 메서드 참조
추상메서드(abstract method = body가 없이 이름만 있는 메소드)도 참조 가능.
(!중요! 추상메서드를 구현한 클래스는 반드시 abstract여야 한다. 하지만 그 역은 그럴 필요 없다. 그리고 추상클래스는 객체 생성은 안되지만 상속은 된다.) - 런타임시 생성한 클래스(new로 생성한 객체)의 메서드 실행
- 선언한 클래스에 없는 메서드 호출하고 싶으면 형변환을 해야한다.
- 컴파일 타임때는 선언한 클래스(new로 만든 객체의 타입이 아니라 변수의 타입)의 메서드 참조
- instanceof (자바의 키워드 중 하나)
- 객체가 어떤 클래스의 instance인지를 알려주는 키워드
- Tip
댓글 없음:
댓글 쓰기