2022_10_11 정리
Super
super.은 부모님클래스의 멤버변수를 참조할 수 있다.
생성자의 첫줄에는 this(), 혹은 super()를 사용해야한다.
사용 안하면 super()가 자동으로 부모클래스의 기본생성자를 호출함
다른 생성자를 호출할 때는 반드시 사용해야함.
자바의 모든 클래스는 Object클래스를 상속받고 있다.
Object클래스의 멤머변수나 메서드도 super. & super()를 통해서 참조가능
super.부모클래스의메서드(); 를 간혹가도 사용함
super.메서드() = 오버라이딩된 메서드에서 부모님의 원형 메서드가 필요할때 사용
접근제한자
접근 제한자는 클래스와 멤버변수, 메서드, 생성자에 붙을 수 있다
클래스에는 public이랑 default만 붙일 수 있다.
public - 중요 - 어떤 패키지든 사용 가능함
protected - 같은 클래스, 같은 패키지는 접근가능 / 상속관계일땐 super을 통한 접근은 가능
default - 같은 클래스 같은 패키지는 접근가능 / 패키지가 다르면 접근 불가능
private - 중요 - 같은 클래스가 아니면 사용 불가능
------
Public이나 Private 둘중 하나를 사용하는게 기본적임
Protected랑 Default는 잘 사용하진 않지만 그냥 납득만 하면됨
어디서든 사용 가능한 public // 같은 클래스가 아니면 사용 불간으한 private
객체지향 프로그래밍 기술
(은닉)
캡슐화 = 비슷한 내용끼리 묶어서 만드는것
은닉은 상세한 내부를 숨기고 필요한부분만 보이게 하는것이다.
클래스의 멤버변수의 접근제한자를 private로 설정한 뒤 사용함
setter메서드 = 변수의 값을 변경시키는데 사용되는 메서드
getter메서드 = 변수의 값을 얻어오는데 사용되는 메서드
암묵적인룰임 (국룰)
공개 메서드를 이용하여 데이터를 변경할땐 메서드 내에 데이터유효성검증 같은 루틴을 사용 할 수 있다
변수를 public으로 설정해두면 잘못된값이 저장될 수 있다.
/*
* 은닉된 변수에 접근할 때 클래스 설계자가 만들어 놓은
* getter & setter 메서드를 사용합니다.
*
* ------------국룰------------------
* 메서드명이
* get시작(값을 얻는다)
* set시작(값을 저장한다)
*
* Setter메서드
* 1. 값을 저장하는 메서드
* 2. public으로 선언하고 set + 멤버변수명으로 저장
* 3. ex) public void setYear(int year){ }
*
*/
/*
* Getter메서드
* 1. 값을 조회하는 메서드
* 2. public으로 선언하고 get + 멤버변수 명으로 지정
* 3. ex) public int getYear(){ }
*
*/
Getter Setter는 거의 대부분의 상황에서 만들기때문에 자동완성을 제공함
alt shift s -> Generate Getter Setter
source탭 -> Generate Getter Setter
생성자도 자동완성이 있다.
alt shift s - > generate construsctor using field
기본생성자도 자동완성이 가능하다.
ctrl + space + enter