객체
생성자
객체 생성시 생성자를 적지 않아도 컴파일러가 기본 디폴트 생성자를 만들어 넣는다.
개발자가 만들어놓은 생성자가 있으면 컴파일러는 디폴트 생성자를 만들지 않는다.
this에 대한 이해
•
this()로 다른 생성자를 호출 하는 함수.
this(0) 시 기본 생성자에 0을 전달해 호출
•
this()는 아래 로직이 필요할 경우 코드 맨위에 존재 해야 한다.
패키지
•
내장 패키지 -> 자바에서 기본적으로 제공하는 패키지들
•
사용자 정의 패키지 -> 사용자가 정의하는 패키지들
패키지가 다르면 객체를 선언 할 수 없다. → default
패키지 선언 규칙
1.
패키지 이름은 모두 소문자로 구성
2.
인터넷 도메인 이름의 역순으로 이름ㅇ르 구성
3.
이름끝에 클래스를 정의한 주체 또는 팀의 이름
접근제한자(Access Modifier)와 정보 은닉
•
public : class 앞에 붙는다.
•
protected
•
default : class 앞에 아무것도 없는 기본 상태.
•
private
→ 변수와 메소드 대상으로는 4가지 다 해당 가능 하다.
public
패키지가 다르면 객체를 선언 할 수 없다. but public 이면 가능!
어디서든 인스턴스 생성이 가능하다.
default
defalut 동일 패키지로 묶인 클래스 내에서만 인스턴스 생성가능
protected
상속과 관련이 있다.
같은 패키지에서는 default와 같이 접근 제한이 없지만, 다른 패키지에서는 자식 클래스만 접근을 허용한다.
new연산자를 사용해서 생성자를 직접 호출 할 수 없고, 자식 생성자에서 super()로 A생성자를 호출 할 수 있다.
private
붙여진 내부 클래스 내에서만 접근이 가능 하다. 외부에서 접근 X
정보 은닉
클래스 내부에서 사용할 변수나 메서드를 private로 선언해서 외부에서 접근하지 못하도로곡 제한하는것을 말한다.
•
현업에서는 모든 변수는 무조건 private
•
모든 변수에 대해서 getter, setter 함수를 만들어서 값을 읽고 쓴다.
•
하나의 파일에서 public 클래스 두개가 못온다.
•
생성자 public 문제
상속
Extends 라는 키워드로 상속 받을 수 있다.
부모의 변수와 메서드를 자식 클래스가 사용할 수 있다.
•
Super