일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 핀트후기
- fint후기
- 개발
- 자바
- 직장인부업
- 직장인소액투자
- 재태크
- git
- 핀트수익률
- 핀트 후기
- 자바기초
- AI투자
- 예외
- 핀트 수익률
- Java
- 핀트
- 자동투자
- 로보어드바이저
- fint
- 소액투자
- 코틀린
- fint 수익률
- 직장인 소액투자
- 핀트투자후기
- 직장인재태크
- 핀트투자
- 인텔리제이
- 웹개발
- 웹
- 자바문법
- Today
- Total
목록개발/Java (23)
하루하루 살아남기
람다식 함수형 인터페이스를 통해 익명 내부 클래스를 구현하는 방법은, 람다식을 이용하여 함수형 프로그램이 가능합니다. 람다식을 쓰는 코드가 정말 깔끔해집니다. 다만 조금 생소해보일수 있고, 일회용함수이기때문에 재사용이 안됩니다. 사용법 매개변수와 실행문 사이에 화살표 연산자( -> ) 를 넣어서 둘을 구분합니다. 매개변수가 한개일때는 괄호 생략이 가능합니다. 매개변수는 추상메서드에서 자료형을 정의함으로 따로 적어줄 필요가 없습니다. 즉, 스스로 추론하여 인식합니다. 예를 들어 보겠습니다. 함수형 인터페이스에 String형 매개변수를 한개 정의했습니다. 반환 자료형은 void입니다 public class Lamda { public static void main(String[] args) { Test2 la..

함수형 인터페이스 자바 8부터 제공하는 함수형 인터페이스는 단 한개의 추상 메서드를 갖고 있는 인터페이스를 말합니다. @FunctionalInterface 를 붙여서 함수형인터페이스임을 표현합니다. 만약 두개 이상의 추상메서드가 있으면 오류가 발생하기 떄문에 함수형 인터페이스의 규칙을 잘 지켜서 만들어야합니다. 함수형 인터페이스로 만들어진 변수에는 값을 갖지 않고 메서드처럼 사용하게 됩니다. 이를 '함수형 프로그래밍' 한다고 합니다. 예를 들어 보겠습니다. public class Functional { @FunctionalInterface interface FunctionalInterfaceTest { public abstract void test(); } } 이제 이걸 호출하는 쪽을 만들어 보겠습니다...
Exception클래스는 자바에서 정의한 클래스외에도 사용자가 직접 예외를 정의할 수 있습니다. 방법은 간단합니다 자바의 Exception클래스를 상속받으면 됩니다. 새로운 Exception클래스를 만드는이유는 클래스이름때문입니다. 클래스를 보고 어떤 종류의 에러인지 직관적으로 알수 있게 하기 위함입니다. Exception을 상속받을때 Exception, unChecked Exception을 나눌수 있습니다. Exception클래스를 상속받은 클래스를 Checked Exception이라고 합니다. 에러 처리를 하지 않으면 컴파일 에러가 발생하기 때문에 반드시 에러를 처리해야 하는 Exception을 말합니다. RuntimeException을 상속받아 정의한 Exception은 에러처리를 하지않아도 컴파일..
다음 클래스의 경우 에러가 납니다. public class Exception2 { public static void main(String[] args) { int i = 5; int j = 0; int k = devide(i, j); System.out.println(k); } public static int devide(int i, int j) { int k = i / j; return k; } } 두번째인자로 0을 넘겨주었는데 0으로 나눌수는 없기때문입니다. 이떄 나눗셈을 하기전에 나누는 수를 점검하겠습니다. public static int devide(int i, int j) { if (j == 0) { System.out.println(" 두번째 매개변수는 0이면 안됩니다. "); return 0..
public static void main(String[] args) { System.out.println(arrayOutput(7)); } 자바에는 예외를 처리하는데 try-catch-finally문 만이아닌 방법이 한가지 더 있습니다. throws 키워드를 사용하는 것입니다. 먼저 클래스를 하나 만들겠습니다. public class ThrowClass { public static void main(String[] args) { } } 여기에 throws 키워드를 사용할 메서드를 만들겠습니다. 만드는 메서드는, 배열을 하나 가지고있고 인덱스를 입력받아 해당 인덱스의 값을 리턴하는 메서드입니다. 그리고 메인함수에서 해당 해서드를 실행합니다. 실행할때 배열 인덱스 밖인 7을 넣겠습니다. public sta..
여기 클래스가 하나 있습니다. public class Exception { public static void main(String[] args) { int[5] arr = { 1, 2, 3, 4, 5 }; } } main 메서드 안에는 arr 배열이 하나 있습니다. 이 배열의 6번 인덱스의 값을 출력해 보겠습니다. public class Exception { public static void main(String[] args) { int[] arr = { 1, 2, 3, 4, 5 }; System.out.println(arr[6]); } } 배열의 길이는 5인데 6번째 인덱의 값을 출력하게 되니 에러를 발생시킵니다. 이렇게 프로그램 실행 과정에서 발생하는 예기치 못한 사건을 예외라고합니다. 컴파일 오류 ..
내부클래스는 클래스 내부에 선언한 클래스를 말합니다. 선언한 위치에 따라 4가지 형태로 나눕니다. 인스턴스 클래스 스태틱 클래스 지역 클래스 익명 클래스 인스턴스 클래스 클래스 안에 인스턴스 변수를 선언하는 위치에 선언하는 경우입니다. 이런경우 중첩 클래스 혹은 인스턴스 클래스 라고 합니다. public class InnerClass { class Person { int age; public void ageUP() { age++; } } } 이 내부 클래스를 사용하려면 외부 클래스인 InnerClass를 먼저 인스턴스화 해야합니다. public static void main(String[] args) { InnerClass innerClass = new InnerClass(); innerClass.new..
자바 8부터 인터페이스에서도 default 메서드와 static 메서드를 정의할수 있게 되었습니다. Default 메서드 인터페이스를 default 키워드로 선언하면 메서드를 구현할 수 있습니다. 또 이 인터페이스를 구현한 클래스에서는 default 메서드를 오버라이딩 할 수도 있습니다. 예를 들어 보겠습니다. 자판기 인터페이스를 만들겠습니다. 자판기는 다음과 같은 기능을 포함합니다. 돈을 받습니다. 거스름돈을 거슬러줍니다. public interface VendingMachine { public int inputMoney(int money); public int exchangeMoney(int total, int money); } 여기서 default키워드를 붙여서 메서드를 만들겠습니다. public ..