클래스 -> 어떤 기능을 위한 변수와 함수를 그룹화
객체 -> 클래스의 기능을 부여한 특수한 변수(클래스 쓰기위한 변수)
클래스 하나를 통해서 같은 형식(구조)를 갖지만 내용은 다른 객체를 여러개 생성할 수 있다.
ex) 글 목록에 속한 게시글들은 모두 같은 구조지만, 내용은 각자 다르다.
객체를 생성하고 나면 각 객체가 포함하는 멤버변수들의 값을 각각 다르게 할당해야 한다.
메서드는 각 객체들이 수행해야 하는 기능
ex) 게시글 -> 읽기, 쓰기, 수정, 삭제 등...
객체 할당 후 각각 값을 다르게 설정해야 하므로
클래스 작성 시 멤버변수를 선언하면서 값 대입하는 것은 큰 의미 없음.
public class는 파일 내 1개밖에 존재 못하니까 무조건 파일 따로 생성
클래스 내 멤버변수는 무조건 private 붙여서 보안을 강화하고
메서드는 public 붙여서 사용가능하게 하자 !
Alt + Shift + S 누르고 Constructor Using Fields 하면 멤버변수에 맞게 생성자 자동생성
Alt + Shift + S 누르고 Getters and Setters 하면 멤버변수에 맞게 자동생성
==============================================================
상속 및 오버라이드
상속은 public과 protected만 가능
공통된 부분이 있는 경우 상위 클래스를 정의하고 상속받아서 사용하는게 추후 유지보수에도 용이
상속시 부모클래스에 생성자가 있는경우 반드시 부모클래스 생성자를 호출하지 않으면 자식클래스는 에러발생
파라미터가 있는경우 super(파라미터)로 전달받아서 재전달해야한다.
오버로드
하나의 클래스 안에서 이름이 동일한 메서드를 두 번 이상 정의하기 위한 방법
오버라이드는 상속받아서 부모 기능을 재정의하는 것.
super 키워드
메서드가 오버라이드 된 경우 super.메서드는 부모클래스의 메서드를 말하고 this.메서드는 오버라이드 된 메서드를 말함
부모클래스의 메서드 기능을 확장할때는 오버라이드된 메서드에 super.메서드를 호출하고 오버라이드 진행하면된다.
그러면 추후 수정 시에 수정할 곳은 부모클래스 뿐이다.
어노테이션
@Override -> 메서드에 적용하는 옵션으로 오타방지용
'Backend > Java' 카테고리의 다른 글
정규식 표현 종류 (0) | 2018.12.10 |
---|---|
클래스 디자인(설계) 패턴 (0) | 2018.12.10 |
Static (0) | 2018.12.10 |
객체 형변환, 객체 배열, 추상화, 인터페이스 (0) | 2018.12.07 |
2차배열, 단축키 (0) | 2018.12.05 |