study/개인공부

M1-W1-D4

잠수함 2021. 4. 29. 22:46
728x90

 추상클래스

- new를 하지 못하도록 해야한다.

- 코드의 재사용성

 

* 생성자

- 상속받은 생성자 호출시 부모생성자를 먼저 호출, super()이 생략되어 있다.

- 자식 생성자에서 부모생성자를 명시적으로 호출하지 않으면 자식생성자에서 기본적으로 부모생성자 호출, super()이 기본적으로 탑재

 

* 인터페이스

- 상수, 메소드 나열(선언시 구현은 되어있지 않음)

- 구현: implements 사용

- 인터페이스에는 다중 상속 지원가능

- 인터페이스 네이밍시 able을 붙여서 주로 사용

 

* 예외처리

- 예외사항을 받아서 시스템을 정상적으로 복구 시키기 위함.

 

1. try: 시도하고자 하는 코드

 

2. catch: 이 부분을 비워 놓는것이 가장 좋지않은 코드이다. (예외처리를 잡는 부분) => 비워 놓으면 어떤 에러가 발생했는지 알 수 없다. (정상적으로 실행이 되어있는지 아닌지 알 수 없음)

-> 절대 비워놓지 마라!

- 회사에서는 예외처리를 어떤 방식으로 하라는 규칙이 보통 있음. ==> 모르면 예외발생시 처리부분에 대해서 물어봐라.

1. 사과( 사용자에게 프로그램의 예외, 에러가 발생하는 원인에 대한 사과 및 이유를 말해줘야한다.)

2. 로깅(에러 데이터를 남겨야 한다.)

3. 정상종료(<-> 비정상종료: 종료하지 않고 아래의 남은 코드들이 도는 것.)/ 

- 코드는 system.exit(0)을 작성하여 종료시킨다.

- return; 으로 종료를 시킬수도 있음(하지만 이때는 finally가 실행이 된다.)

 

3. finally : 예외처리와 상관없이 무조건 실행되는 부분(자원정리를 하는데에 사용)

 

- checked exception: 예외처리(처리해야하는 부분)

- unchecked exception: error(고쳐야하는 부분)

- throws / throw

 

* 자바 패키지

- .getClass: Class type의 field, method의 정보를 관리하는곳 //reflection을 사용하면 class의 정보를 훝어볼수 있다.

 

- .hashCode(): 

hashing? 다양한 값에서 정수 값을 만들어내는것 // 해시함수(Hash Function)를 이용하여 해시 테이블(Hash Table)에 데이터를 저장하는 방법을 말합니다.

=> 정수로 만드는 이유: 속도, 비교가 빨라서 // address 기반의 해싱값 (address, reference 는 아님.)

 

- .toString(): getClass()를 한번 호출 한 다음 + "@" + hashcode()로 구현

 

* 동일, 동질성 비교

 Point p1 = new Point(10, 20);

Point p2 = new Point(10, 20);

Point p3 = p2;

 

/* == : 두 객체의 동일성 비교 */

System.out.println(p1 == p2);

System.out.println(p3 == p2);

 

/* .equal() : 두 객체의 동질성 비교(안의 내용을 의미함) */

/* Object의 기본 구현은 동일성(==) 비교와 같다 */

System.out.println(p1.equals(p2));

System.out.println(p3.equals(p2));

'study > 개인공부' 카테고리의 다른 글

Java 기본(2) - 문자열  (0) 2021.05.04
wrapper class  (0) 2021.05.03
M1-W2-D1  (0) 2021.05.03
M1-W1-D3  (0) 2021.04.28
M1-W1-D2  (0) 2021.04.27