JAVA 썸네일형 리스트형 [Java] 예외 처리 목차예외처리가 필요한 이유예외처리예외 기본 규칙체크 예외 vs 언체크 예외(런타임 예외)체크 예외 처리언체크 예외 처리finally 블록 예외처리가 필요한 이유프로그램이 비정상 종료되는 것을 방지한다.사용자에게 친절한 오류 메시지를 제공한다.자원 낭비를 방지한다. (열린 파일, 네트워크 연결 등)오류 추적 용이하다. (로그 기록) 예외처리프로그램 실행 중에 발생하는 오류 상황을 예외(Exception) 처리하기 위한 방법이다. 키워드키워드설명try예외가 발생할 수 있는 코드를 작성하는 블록이다.catch예외를 잡아서 처리하는 블록이다.finally예외 발생 여부와 관계없이 실행하는 블록이다.throw새로운 예외를 발생시킨다.throws발생시킨 예외를 메서드 밖으로 던진다. 예외 계층 그림Throw.. 더보기 [Java] Lv_3 계산기 문제 요구 사항⬜ 현재 사칙연산 계산기는 (➕,➖,✖️,➗) 이렇게 총 4가지 연산 타입으로 구성되어 있습니다.⬜ Enum 타입을 활용하여 연산자 타입에 대한 정보를 관리하고 이를 사칙연산 계산기 ArithmeticCalculator 클래스에 활용 해봅니다. ⬜ 실수, 즉 double 타입의 값을 전달 받아도 연산이 수행하도록 만들기⬜ 키워드 : 제네릭⬜ 단순히, 기존의 Int 타입을 double 타입으로 바꾸는 게 아닌 점에 주의하세요!⬜ 지금까지는 ArithmeticCalculator, 즉 사칙연산 계산기는 양의 정수(0 포함)를 매개변수로 전달받아 연산을 수행⬜ 피연산자를 여러 타입으로 받을 수 있도록 기능을 확장⬜ ArithmeticCalculator 클래스의 연산 메서드(calculate)⬜ .. 더보기 [Java] 다이아몬드 상속 개요클래스는 단 하나의 클래스만 상속받을 수 있다. 왜 그럴까? 그 이유는 바로 다이아몬드 상속 때문이다. 다이아몬드 상속객체지향 프로그래밍(OOP)에서 다중 상속을 사용할 때 발생할 수 있는 모호성 문제(ambiguity problem)를 설명하는 용어이다. 다음 클래스 다이어 그램을 통해 설명하였다.Car와 Airplane Class가 각각 Vehicle을 상속받는다.FlyCar는 Car와 AirPlane Class를 상속받는다.이렇게 되면 FlyCar는 Vehicle의 move() 메서드를 두 번 상속받게 될 가능성이 있고, 이로 인해 모호성(ambiguity)이나 중복된 맴버의 문제가 발생한다. 어떤 모호성인가?FlyCar 객체에서 Vehicle의 move() 메서드를 호출하면, FlyCa.. 더보기 [Java] toString() toSting()객체(Object) 정보를 문자열(String)로 반환할 때 사용하는 메서드이다.Object 클래스에 toString() 메서드가 기본적으로 정의되어 있다.모든 클래스는 Object 클래스를 상속받으므로, toString() 메서드를 사용할 수 있다.public class Person { // extends Object 생략 String name; public Person(String name) { this.name = name; } @Override public String toString() { return "Person name: " + name; }} toString() 특징1. 객체의 정보를 확인할 수 있다.Objec.. 더보기 [Java] Lv_2 계산기 프로젝트 요구사항사칙연산을 수행 후, 결과값 반환 메서드 구현 & 연산 결과를 저장하는 컬렉션 타입 필드를 가진 Calculator 클래스를 생성 ⬜ 사칙연산을 수행한 후, 결과값을 반환하는 메서드 구현 ✅⬜ 연산 결과를 저장하는 컬렉션 타입 필드를 가진 Calculator 클래스를 생성 ✅⬜ 1) 양의 정수 2개(0 포함)와 연산 기호를 매개변수로 받아 사칙연산(➕,➖,✖️,➗) 기능을 수행한 후 2) 결과 값을 반환하는 메서드와 연산 결과를 저장하는 컬렉션 타입 필드를 가진 Calculator 클래스를 생성합니다. ✅Lv 1에서 구현한 App 클래스의 main 메서드에 Calculator 클래스가 활용될 수 있도록 수정⬜ 연산 수행 역할은 Calculator 클래스가 담당 ✅⬜ 연산 결과는 Calculato.. 더보기 [Java] Lv_1 계산기 프로젝트 요구 사항⬜ 양의 정수(0 포함)를 입력받기 ⬜ Scanner를 사용하여 양의 정수 2개(0 포함)를 전달 받을 수 있습니다. ⬜ 양의 정수는 각각 하나씩 전달 받습니다. ⬜ 양의 정수는 적합한 타입으로 선언한 변수에 저장합니다. ⬜ 사칙연산 기호(➕,➖,✖️,➗)를 입력받기 ⬜ Scanner를 사용하여 사칙연산 기호를 전달 받을 수 있습니다. ⬜ 사칙연산 기호를 적합한 타입으로 선언한 변수에 저장합니다. (charAt(0)) ⬜ 위에서 입력받은 양의 정수 2개와 사칙연산 기호를 사용하여 연산을 진행한 후 결과값을 출력하기 ⬜ 키워드 : if switch ⬜ 사칙연산 기호에 맞는 연산자를 사용하여 연산을 진행합니다. ⬜ 연산 기호를 구분하기 위해 제어문을 사용합니다. (예를 들면 if, switch.. 더보기 [Java] 스트림(Stream) Stream(Stream)데이터를 효율적이고 선언적으로 처리할 수 있게 해주는 API이다. 컬렉션(List, Set 등)의 데이터를 필터링, 매핑, 정렬 등의 작업을 함수형 프로그래밍(순수 함수를 조합하고 소프트웨어를 만드는 방식) 스타일로 처리할 수 있게 도와준다. 쉽게 말해서, 데이터를 효율적으로 흐름에 맞추어 처리한다는 의미이다. 스트림의 특징스트림은 데이터를 저장하지 않는다.원본 데이터를 변경하지 않는다. (불변성 유지)스트림은 컬렉션(List, Set 등)과 함께 자주 활용된다.생성 → 중간 연산(Intermediate Operation) → 최종 연산(Terminal Operation) 순으로 처리 된다. (선언형 스타일)지연 연산(Lazy Evaluation)을 사용하여 최종 연산이 수행될.. 더보기 [Java] 익명 클래스란? 익명 클래스이름이 없는 클래스를 익명 클래스라고 한다. 보통 일회성으로 사용되는 클래스를 정의할 때 사용되며, 별도의 클래스 파일을 만들지 않고 즉석에 인스턴스를 생성할 때 주로 사용된다. 익명 클래스 활용클래스 이름을 따로 만들 필요 없이 일시적으로 클래스 구현이 필요한 경우이벤트 처리, 콜백, 스레드 구현 등 간단한 작업에 자주 사용된다. 문법 구조public interface Runnable() { public void run();}Runnable myRunnable = new Runnable() { // 추상 클래스 or 인터페이스 @Override public void run() { System.out.println("달린다.); };};인터페이스는 추상.. 더보기 이전 1 2 3 4 5 다음