본문 바로가기

분류 전체보기

(256)
Lambda3_구현코드가 한줄일때 활용법 // 인터페이스 생성 // - > 인터페이스의 매개변수가 1개인 경우 // t1~4들이 내가 생성했어야했던 클래스들의 이름이라고 생각하니까 괜찮네 // 1. 리턴있을때 interface TTT{ public int some(int a); } // 2. 리턴없을때 interface CCC{ public void test(int a); } // 정석 TTT t1 = (a)->{ return a+3; }; int result = t1.some(5);// 1회성이니까 이제 t1은 안녕~ System.out.println(result); TTT t2 = (a)->{ return a-3; }; int result2 = t2.some(5); System.out.println(result2); ★★★ 1. 일반적 사용..
Lambda2 // 람다식(문법) // # 특징 // 1. 사용하고자하는 인터페이스에 추상메서드가 단 한개여야만 함 // 2. 구현하고자하는 내용이 최대한 적을 때 사용해야 함(필수는 아니지만..) // Testalbe2라는 인터페이스 생성, 그걸 상속받는 some2클래스 생성. interface Testable2{ public int plus(int a, int b); } class some2 implements Testable2{ public int plus(int a, int b) { return a+b; } } // 기존방법 Testable2 t1 = new some2(); System.out.println(t1.plus(4, 3)); // 람다식 (some2클래스가 없다고 가정!!) // --> return ..
(람다식하기 전) interface review // Some1 s1 = new Some1(); --> 이거 안하는거 이제는 알지...? // 추상화를 높여서 인터페이스를 끌고와. 다형성 활용하자 진짜로ㅠ퓨ㅠㅠ // **기억해** 우항에는 주소값이 들어갈 수 있으며, Testable을 상속받은 친구들의 인스턴스, 매서드를 사용한다 interface Testable{// 1. 인터페이스 생성했으면 매서드를 실행시킬 클래스들이 필요하겠지 public void test1(int a, int b); public void test2(); } class Some1 implements Testable{// 2. 상속받을거양 public void test1(int a, int b) { } public void test2() { } } // ## 익명 객체 생성(사실..
Lambda Basic // 람다식(문법) // 절차지향 -> 객체지향 -> 함수형 프로그래밍 // for문, 컬렉션, 인터페이스가 완벽해야함 (람다식을 for문, 인터페이스로 다시 바꿔쓸 수 있을 정도로..) ## 람다식(lambda expression): // 익명 함수(anonymous function)를 만들기 위한 간단하고 강력한 방법 // 보통 한 줄로 표현되며, 이름 없이 함수를 정의하고 사용할 수 있게 함 // # 기본구문 : (매개변수) -> 표현식 // (매개변수) : 람다 함수의 매개변수를 정의합니다. // -> : 람다 함수의 매개변수와 표현식을 분리하는 연산자입니다. // 표현식 : 람다 함수가 실행될 때 반환할 값을 나타냅니다. List list = new ArrayList(); list.add(8);..
Unchecked Exception /## 2. Unchecked 예외(또는 런타임 예외): // Java에서 컴파일러가 예외 처리를 강제하지 않는 예외를 가리키는 용어 // 이러한 예외는 주로 런타임에 발생하며, 예외 처리를 명시적으로 하지 않아도 됨 // 프로그래머가 예외 처리를 하지 않아도 컴파일 오류가 발생하지 않는다! # 특징 // RuntimeException 클래스와 그 하위 예외 클래스들 // 코드에서 Unchecked 예외를 발생시킬 때 throw 키워드를 사용 // Unchecked 예외는 주로 프로그램 오류나 예측할 수 없는 상황에서 발생 // 예외 처리를 무시하면 런타임에 프로그램이 중단될 수 있음 // 예시) // # RuntimeException을 넣었어 -> Unchecked 예외 // main 메서드에서 min..
Custom Exception // Custom Exception // - 커스텀 예외 클래스를 만들면 특정 예외 상황을 더 명확하게 표현할 수 있고, // - 프로그램 로직에서 예외 처리를 개선할 수 있습니다. 이를 통해 예외 처리의 가독성과 디버깅이 향상됩니다. // 생성 방법 // 1. 예외 클래스 작성: 커스텀 예외 클래스를 작성합니다. // 이 클래스는 Exception 클래스를 상속하여 일반적인 예외 클래스의 특성을 물려받을 수 있습니다. class CustomException extends Exception { // 생성자, 필드, 메서드 등을 정의할 수 있음 int a; // 2. 생성자 정의: 커스텀 예외 클래스에 생성자를 추가하여 예외 객체를 초기화합니다. // 생성자 내에서는 super()를 사용하여 상위 클래스의..
Checked exception 1. checked exception ---> Exception 하위티어 // 컴파일러가 예외 처리를 강제하는 예외 // 코드에서 명시적으로 예외 처리를 해야 하며, 그렇지 않으면 컴파일 오류가 발생함 // Exception 클래스와 그 하위 클래스 중에서 RuntimeException을 상속하지 않는 예외 클래스들 # Checked 예외를 처리하는 방법: // 1) try-catch 블록 사용: // Checked 예외를 발생시킬 수 있는 코드를 try 블록 내에 넣고, 해당 예외를 처리하는 코드를 catch 블록에 작성 // 2) throws 예외 던지기: // Checked 예외를 처리하지 않고 현재 메서드에서 던지기 위해 메서드 선언에 throws를 사용 // 이 경우, 메서드를 호출한 상위 메서..
Try Catch // exception 처리코드 System.out.println("1"); try { System.out.println("2"); // 상황1. byZero int a = 10/0; // 상황2. null String str = null; str.trim(); System.out.println("3"); }catch(Exception e) { System.out.println("예외 발생"); e.printStackTrace(); // 얘가있어야 java.lang.ArithmeticException: by zero 출력됨 // --> 첫 exception위치부터 알려준당 }finally { System.out.println("finally : 여기는 무조건 시행되는 코드"); // 코드 흐름 무시하고 ..