Java 25

[Java] Exception

Exception (예외)프로그램 실행 중에 발생할 수 있는 예기치 못한 문제나 조건예외 처리예외가 발생할 경우 프로그램이 중단되지 않고 대응하여 정상적인 흐름을 유지하는 프로그래밍 기법 자바 예외 클래스Throwable: 모든 예외와 오류의 최상위 클래스모든 예외 클래스는 해당 클래스를 상속받음예외와 관련된 메시지, 처리 방법에 대한 예시 정보를 포함1) Exception(예외)프로그램이 처리할 수 있는 예외들의 클래스예외 처리를 통해 개발자가 처리할 수 있는 문제들을 정의1-1) Checked Exception컴파일 시점에 체크되는 예외개발자가 반드시 처리컴파일러는 해당 예외가 처리되어 있지 않을 경우 오류를 발생1-2) Runtime (Unchecked) Exception런타임 시점에 발생되는 예외..

Java 2024.09.10

[Java] Interface

인터페이스 (Interface)객체가 어떤 방식으로 동작해야 하는지를 정의하는 추상 타입추상 메서드와 상수만으로 구성된 특수한 클래스모든 메서드가 추상 메서드인 추상 클래스와 유사객체의 기능을 정의하고, 실제 구현은 인터페이스를 구현하는 클래스에서 담당인터페이스의 필요성서로 다른 클래스에 대해 공통된 동작을 보장할 때여러 인터페이스를 동시에 구현 가능한 클래스에 대해 여러 개의 인터페이스 구현이 가능인터페이스 구현 방법interface 키워드를 사용하여 선언 1. 멤버 변수public static final 특성을 가짐해당 키워드들이 생략 가능타입 상수명 = 값;2. 메서드 (public abstact이 항상 포함)모든 메서드는 추상 메서드여야 함 (abstract 키워드가 생략 가능)해당 인터페이스의 ..

Java 2024.09.10

[Java] Abstract

Abstract (추상화)미완성 설계도, 완전하지 않은 클래스다른 클래스가 상속받아 완성 가능, 그 자체로는 인스턴스 생성 추상 클래스의 특징클래스 자체로는 인스턴스 생성 X추상 메서드를 하나 이상 포함확장성 제공을 위한 사용추상 클래스 구현 방법abstract 키워드를 사용하여 선언추상 메서드메서드의 선언부만 존재, 구현부는 존재하지 않는 메서드자식 클래스에서 해당 메서드를 반드시 구현하도록 강제하는 역할abstract 키워드를 사용 + 구현부 {} 대신 세미콜론(;)을 사용하여 선언을 마침 (예제 코드)더보기abstract class Human{ abstract void work();}class Police extends Human { void work() { System.out.println("경..

Java 2024.09.09

[Java] Polymorphism

Polymorphism (다형성)많은 형태를 가질 수 있는 능력하나의 객체가 여러 타입의 인스턴스로 취급될 수 있는 특성상속 + 메서드 오버라이딩 + 클래스 타입 변환 instanceof 연산자참조변수값 instanceof 타입(클래스명)해당 객체가 특정 클래스의 인스턴스인지 또는 그 클래스를 상속받은 자식 클래스의 인스턴스인지 확인 (예제 코드)더보기class Vehicle { void display() { System.out.println("운송 수단 입니다."); }}class Bus extends Vehicle { @Override void display() { System.out.println("버스를 타고 갑니다"); }}class Subway extends Vehicle { @Overri..

Java 2024.09.09

[Java] Type

Type자바에서의 타입 변환 1. 자료형 변환 : 변수 & 자료형에서의 자동 형 변환, 강제 형 변환2. 클래스의 타입 변환 : 자동, 강제 형 변환자료형 변환보다 가능한 범위가 좁음서로 상속관계에 있는 클래스 사이에서만 변환 가능클래스의 자동 타입 변환(Upcasting, 업캐스팅)자식 클래스의 객체를 부모 클래스 타입으로 변환하는 것직접 명시 X, 자동으로 타입 변환이 일어남1. 자식 객체를 생성하면서 바로 부모 타입으로 변환부모클래스 객체변수 = new 자식클래스();자동 형변환의 경우, 해당 객체는 보존되면서 사용은 부모 객체처럼 사용두클래스 간에 공통된 특성이 아닌 경우 자식만의 기능은 X2. 이미 만들어진 자식 객체를 부모 타입으로 변환할 때부모클래스 객체변수 = 자식객체변수;더보기class ..

Java 2024.09.09

[Java] final

final변수, 메서드, 클래스1. final 변수상수를 지정하는 키워드재할당 불가능, 선언과 동시에 초기화변수명을 모두 대문자로 작성, 단어와 단어의 연결을 (_)기호로 연결2. final 메서드자식 클래스에서 오버라이드(재정의) 할 수 없는 메서드를 의미접근 제어자 final 반환타입 메서드명 ( ) { }3. final 클래스final class 클래스명더 이상 상속될 수 없는 클래스를 의미final 클래스를 부모 클래스로 사용할 수 없다 더보기더보기class MyFinalClass { // final 변수 final int FINAL_VALIABLE = 30; // FINAL_VALIABLE = 10; - Error // final 메서드 public final void m..

Java 2024.09.09

[Java] Encapsulation

Encapsulation (캡슐화)객체 지향 프로그래밍에서 데이터와 해당 데이터를 처리하는 함수를 하나로 묶는 것을 의미객체 내부의 구현을 숨기고 외부에서는 제공된 메서드를 통해서만 접근할 수 있게 설정데이터 보호, 유지보수성 향상, 사용자 편의성 증대 getter & setter 메서드getter : 객체의 특정 필드 값을 읽는 메서드setter : 객체의 특정 필드 값을 설정하는 메서드 (예제 코드)더보기// === 학생 정보를 관리하는 클래스 ===class Student { private String name; private int age; private int score; // 점수 필드 // getter & setter 메서드 - 캡슐화 되어 있는 데이터에 접근 // : 메서드 형식을 get변..

Java 2024.09.09

[Java] Modifier

Modifier (접근 제어자)클래스, 메서드, 변수의 접근 범위를 제어1. 접근 제어자의 종류private, default, protected, public접근 제어자가 지정되지 않은 경우 default(기본값)으로 지정2. 접근 제어자의 범위public > protected > ( default ) > private 1) private같은 클래스 내에서만 접근 가능2) default같은 패키지 내라면 중복 X패키지 외부에서 접근 X, 패키지 내부에서 접근 O3) protected동일한 패키지 내의 모든 클래스와 다른 패키지의 하위 클래스에서 접근 가능4) public어떤 클래스든 어떤 패키지 내에 있든 접근 가능 (예제 코드)더보기더보기import otherPackage.ParentClass;1) p..

Java 2024.09.09

[Java] Overriding

Overriding (오버라이딩)자식 클래스가 부모 클래스에서 정의된 메서드를 자신의 상황에 맞게 재정의상속 관계에 있는 클래스들 사이에서 사용 1. 오버라이딩 특징메서드의 시그니처(선언부)가 일치부모 클래스에서 정의된 메서드와 동일한 이름, 매개변수 구성을 가져야 함반환 타입은 같거나 자동 형 변환이 가능한 것이어야 함@Override(어노테이션, 주석)오버라이딩 된 메서드임을 명시적으로 표시2. 오버라이딩 구현 방법부모 클래스의 상속받은 메서드를 자식 클래스에서 다시 정의메서드의 이름, 매개변수를 일치, 반환타입은 같거나 자동 형 변환 가능하게 작성메서드 위에 @Override 어노테이션을 작성3. 오버라이딩을 사용하는 이유다형성 규현하나의 이름으로 여러 기능을 수행하는 코드 작성재사용성과 확장성 향..

Java 2024.09.09

[Java] Inheritance

Inheritance(상속)한 클래스의 속성과 메서드를 다른 클래스가 물려 받는 기능기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것보다 적은 양의 코드로 새로운 클래스 작성 가능 → 코드의 재사용성 증가, 코드의 중복을 제거: 프로그램의 생산성을 높임상속 구현 방법extends 키워드를 사용하여 상속 구현새로 작성하고자 하는 클래스의 이름뒤에 상속하고자 하는 클래스의 이름을 키워드 extends와 함께 작성더보기더보기class Parent {} // : 기존 클래스class Child extends Parent {} // : 새로 작성하려는 클래스상속해주는 클래스(Parent) : 조상클래스, 부모클래스, 상위클래스 기반클래스, 슈퍼클래스상속 받는 클래스(Child): 자손클래스, 자식클래스, 하..

Java 2024.09.09