자바 18일차

선장원·2021년 10월 27일

자바

목록 보기
21/24

18일차 (10/27)

깃 때문에 오늘도 늦었다 ㅠㅠ
오늘 깃 저장소를 다시만들었다
처음 저장소는 복구를 못하겠다 ㅠㅠ

키보드 바꿨더니 적응이 안된다
어색하다

상속

상속을 하는 이유

  • 기본적인 구조는 비슷하면서 조금씩 다른 클래스가 여러 개 있다면 이를 묶어서 쓰고자 할 때

공통 속성을 뽑아 낸다?

부모클래스 자식클래스

  • 부모클래스 : 물려 주는 클래스
    1. 사용권한을 준다(생성자, 메서드, 필드)
    1. private으로 지정한 요소는 상속하지 않음
  • 자식클래스 : 물려받는 클래스

상속은 주면 없어지는 것이 아니라 사용 권한을 주는 것

부모> 자식> 자식>~~~가능
두개의 클래스로부터 상속 받을 수는 없음.

상속문법

public class 자식클래스 extends 부모클래스 {

}

모든 매개변수 포함 생성자를 만들 때 부모클래스도 포함시켜서 생성하면
super() 메서드 안에 부모클래스 생성자가 생성된다
단 부모 생성자의 형식과 super()안의 형식이 일치해야 한다

생성자 순서

인터페이스(Interface)

스위치 느낌???

  • 메서드를 선언할 수 있지만 실행내용은 없음
    1. 리턴타입, 메서드이름, 매개변수만 정의할 수 있음
    1. 추상메서드(abstract method)라고 함
  • 인터페이스 클래스가 존재하고 이를 구현(implements)하는 클래스가 존재함

인터페이스 활용

  • 인터페이스는 생성자가 없음.
  • 우변에는 인터페이스의 구현클래스 생성자를 활용
BoardServiceInterface bs = new BoardServiceInt1();

다형성(多形性)(polymorphism)

  • 객체지향 프로그래밍의 특징이라고 많이 언급됨
  • 하나의 변수(객체)에 다양한 클래스를 대입할 수 있다.
    1. 대입하는 클래스는 자식클래스 또는 구현 클래스만 가능
BoardServiceInterface bs = new BoardServiceInt1();
bs = new BoardServiceInt2();

1을 쓰다가 다시 2로 바꿔서 사용이 가능하다?
메타몽같은 친구인가?

일관성

  • 인터페이스에서 만든 메서드는 구현된 클래스에서 반드시 만들어야해서 일관성이 있다

CRUD

C(Create) : 새로운 데이터 생성
R(Read) : 데이터 조회, 출력
U(Update) : 데이터 수정
D(Delete) : 데이터 삭제

method Override

메서드 재정의

  • 상속받은 메서드를 자식 클래스에서 실행 내용을 바꾸는 것
  • 메서드 이름, 리턴 타입, 매개변수는 변경할 수 없음. 실행 내용만 변경가능

@Override의 역할

  • 자바 컴파일러가 실행시 재정의가 제대로 됐는지 체크 해주도록 하는 역할
  • 재정의시 @Override를 붙이지 않고 메서드 이름 부모클래스와 다르게 쓴다든지 매개변수를 다르게 쓴다든지 하면 재정의 메서드로 인지하지 않고 자식클래스만 가지고 있는 메서드로 인식하게 됨.

자바11일차
https://velog.io/@captain1/자바-11일차에서 설명함

예외(Exception)

실행 도중 발생하는 일종의 오류

예외종류

  • NullPointException
  • IndexOutofBoundsException
  • 등등
    예외 발생시 프로그램이 멈추지 않고 실행을 하도록 처리

예외처리 코드

try {
실행블록
} catch(예외 클래스 e) {
예외 발생시 실행할 내용
} finally {
	필수항목은 아님
	try가 끝나거나 catch 부분이 끝나면 무조건 실행
}

예외클래스 e에 예외의 클래스이름을 적는다
throws 는 안쓰나?

catch를 여러개 사용가능
Exception으로 하면 모든 예외 처리?

generate hashcode() and equals()

마우스 오른쪽 클릭
source
generate hashcode() and equals()를 눌러서 생성
하면
DTO클래스안의 필드값이 같은지 비교할 수 있다.

내용물이 같으면 같은 hashcode값을 가지도록 만들어준다

https://velog.io/@captain1/자바-13일차에서 나중에 알아봅시다 라고 한 내용이다

내일부터 2~3일간 개인 프로젝트를 한다
친구반은 주제를 주고 만들었다고 하는데
우리는 자유주제에 직접 생각해서 다 만들어야해서
힘들다 ㅠㅠ
기획은 다했으니
내일부터 만들기를 시작해야겠다

profile
코딩도전기

0개의 댓글