생성자(Constructors)
- new를 통해 새로운 Instance를 생성할때 반드시 한번 사용되는 특별한 method이다. - Class의 이름과 동일하다. - return type을 적지 않는다. (void도 없다) - class내에 생성자가 하나도 없으면, 기본적으로 파라미터가 없는 생성자가 자동으로 삽입된다.
- 하나의 Class에 여러개의 Constructor가 존재 할 수 있다.(오버로딩이 가능하다.)
Data Scope
- 클래스를, 같은 패키지 내 다른 class나, 외부 패키지에서 사용 및 참조 될 수 있는 데이터 영역이 존재한다. 클래스 접근지정자
- 다른 클래스에서 이 클래스를 사용할 수 있는지 허용여부를 지정하는것을 말한다. - public : public접근 지정자로 선언된 클래스는 동일한 패키지에 존재하지 않더라도 접근이 가능하다. - default(접근지정자 생략시) : 다른 패키지에 존재한다면 접근이 불가능하다. 같은 패키지 내에 있는 클래스만 접근 가능하다.d. 멤버(메소드, 필드) 접근 지정자- default, private, protected, public 네가지가 있다. - public = 패키지의 내부, 외부 혹은 같은 클래스, 다른 클래스에서 도 접근이 가능하다. - private = 패키지와는 상관없이, 같은 클래스에서만 접근이 가능하다.- protected = 같은 패키지 내의 모든 클래스에서 접근이 가능하다 / 다른 패키지의 클래스라도, 이 클래스를 상속받은 자식의 경우 접근이 가능하다. - default(또는 package-private) = 동일한 패키지 내에 있는 모든 클래스가 접근이 가능하다. 접근지정자가 생략된경우에 해당한다.
캡슐화
-캡슐화된 객체는 block box와 같다고 생각할 수 있다.- 데이터는 메소드를 이용하여 변경하는것이 유지보수성이 간편하다.
상속
-부모
클래스(슈퍼클래스)에
정의된 필드와 메소드를 자식클래스(서브클래스)가
물려받는것이다.
- 주의할점은,
클래스를
상속하는것이지 객체를 상속하는것이 아니라는 점이다.
- 상속의
장점은 클래스를 계층적으로 분류 및 관리 할 수 있고
필드와 메소드를 재사용 할 수 있다는 점이다.
자바 상속 특징
- 상속의
횟수에 제한을 두지 않는다. (여러번
상속 받을 수 있다)
- 다중
상속을 지원하지 않는다. (한번에
하나만 상속 받을 수 있다. extends 다음에는
오직 하나의 클래스 이름만 작성 할 수 있다.)
- 최상위에
있는 클래스는 java.lang.Object 클래스
이다. (표현하지
않더라도 자동으로 컴파일러에 의해 이루어진다)
상속과 접근 지정자 -상속을 한다 해도 접근 지정자에 영향을 받는다.
- private 멤버: 슈퍼클레스의 멤버에 private 접근지정자가 사용되면 서브클래스는 상속을 받아도 해당 멤버를 (직접) 사용 할 수 없다
- Protected 멤버: 같은 패키지에 속한 다른 클래스에 접근을 허용한다 /패키지 와 상관없이, 상속받는 서브클래스에만 접근을 허용한다. - Public 멤버: 패키지와 상관없이 서브클래스 뿐만 아니라 어떤 클래스에서도 접근 할 수 있다. - Default 멤버: 같은패키지의 모든 클래스에서 접근이 가능하다.
|
댓글