티스토리 뷰

Java

다시 복습하는 JAVA [2/3]

GiHoo 2023. 5. 25. 12:04

스프링을 제대로 학습하기 전 자바의 기초 지식을 잡기 위해 복습했던 기록입니다.

 

상속(Inheritance)

기존의 클래스를 재사용하여 중복되는 코드를 줄일 수 있다. -> class 자식클래스 extends 부모클래스 {}

다중 상속이 불가능하고, 접근 제한자의 종류에 따라 상속이 불가능 한 경우가 있다.

super()를 통해 부모의 생성자를 호출할 수 있다.

Overriding - 메소드 재정의, 부모 클래스의 메소드를 자식 클래스에서 재저의 한다.

    - 동일한 시그니처를 가져야 하고, 접근 제한자를 더 강하게 재정의 불가, 새로운 예외처리 불가

final 클래스는 부모 클래스가 될 수 없다. final 메소드는 overriding이 불가능하다.

 

다형성 - 어떤 객체의 속성이나 기능이 상황에 따라 여러 가지 형태를 가질 수 있는 성질

대표적으로는 overriding, overroding(시그니처만 다르게 가지는 메소드)

객체 지향 프로그래밍에서 다형성이란 한 타입의 참조변수를 통해 여러 타입의 객체를 참조할 수 있도록 만든 것을 의미합니다.

->  객체 간의 결합도를 낮출 수 있다.

 

추상 클래스 - 클래스들의 공통적인 특성을 추출하여 선언한 클래스

  - 공통된 필드와 메소드의 이름을 통일할 수 있음, 실체 클래스를 작성할 대 시간 절약 가능

 

 

인터페이스(Interface)

객체의 사용 방법을 정의한 타입, 다양한 객체를 동일한 사용 방법으로 이용 가능 -> [public] interface 인테페이스명 {

다중 상속이 가능, 추상 메소드가 존재하여 상속받은 자식 클래스는 반드시 이를 구현해야 한다.

내부 메소드는 public abstract, 내부 필드는 public static final

 

+) 추상 클래스 vs 인터페이스

이 둘은 자식 클래스를 통해 구현 하는 공통적인 특징이 있다. 이 둘의 차이점과 사용처는 어떻게 될까?

인터페이스 - implements 이름 처럼 인터페이스의 정의된 메서드를 각 클래스의 목적에 맞게 기능을 구현하는 느낌

추상 클래스 - extends 를 통해 자신의 기능을 하위 클래스로 확장하는 느낌

 

 

중첩 클래스와 중첩 인터페이스

중첩 클래스 - 클래스 내부에 선언한 클래스

클래스의 멤버로 선언되는 중첩 클래스는 멤버 클래스, 메서드나 생성자를 통해 선언되는 클래스는 로컬 클래스

사용하는 이유는 클래스들의 논리적인 그룹을 나타낼 때 사용, 향상된 캡슐화와 가독성 및 유지보수 때문에 사용

 

중첩 인터페이스 - 클래스 내부에 선언한 인터페이스

해당 클래스와 긴밀한 관계를 맺는 구현 클래스를 만들기 위해 선언한다.

 

익명 객체(Anonymous object) - 이름이 없는 객체, 어떤 클래스를 상속받거나 인터페이스를 구현해야 한다.

일시적인 처리거나, 재사용성이 없고 확장성이 유지보수에 더 불리할 때 ( 나중에 다시 불릴 필요가 없는 객체 ) 

 

 

예외 처리(Exception Handling)

예외의 종류

일반 예외 - 컴파일러 체크 예외, 컴파일 하는 과정 중 오류가 있는 부분의 예외 처리 코드가 없을 경우 컴파일 오류 , java.lang.Exception 상속

실행 예외 - 컴파일러 넌 체크 예외, java.lang.RuntimeException 상속, 널포인터, 넘버포맷 등 잘 아는 예외가 많다.

NullPointerException - 객체 참조가 없는 상태

ArrayIndexOutOfBoundsException - 배열에서 인덱스 범위를 초과할 때 발생

NumberFormatException - parse~() 메서드의 매개값이 잘못된 경우

 

예외 처리 코드 

try-catch-finally 블록을 통하여 예외 처리

try{ 실행할 문장 } catch(예외클래스 e) { 예외처리 } finally { 이후 항상 실행할 문장 }

catch 블럭은 여러개 존재할 있다 그리고 예외클래스를 || 연결 가능 , finally 생략 가능

공지사항
최근에 올라온 글
최근에 달린 댓글
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31