프로그래밍 언어/JAVA (62) 썸네일형 리스트형 JAVA 입문 - 사용자 정의 예외 지난 글: [프로그래밍 언어/JAVA] - JAVA 입문 - 예외 처리 미루기 자바에서 제공하는 예외 처리 클래스 이외에 개발하는 프로그램에 따라 다양한 예외 상황이 발생할 수 있다. 예로 어떤 사이트에서 회원 가입을 할 때 아이디는 null 값이면 안되며 8자 이상 18자 이하로 만들어야 하는 조건이 있다. 이런 조건을 체크하는 작업을 자바 프로그램에서 한다면 예외 클래스를 직접 만들어 예외를 발생시키고 예외 처리 코드를 구현할 수 있다. 실무에서 프로젝트를 진행할 때도 예외 클래스를 직접 만들어 사용하는 경우가 종종 있다고 한다. 사용자 정의 예외 클래스 구현하기 사용자 정의 예외 클래스를 구현할 때는 기존 JDK에서 제공하는 예외 클래스 중 가장 유사한 클래스를 상속받는 것이 좋다. 유사한 예외 클.. JAVA 입문 - 예외 처리 미루기 지난 글: [프로그래밍 언어/JAVA] - JAVA 입문 - 예외 처리하기 예외 처리를 미루는 throws 사용하기 FileInputStream을 생성했을 때 예외 처리 방법은 두 가지(오류가 난 문장에 마우스를 올리면 나타나는 2개의 선택 항목) 있었다. Surround with try/catch는 지난 글에서 살펴봤으니 이 글에서는 Add throws declaration(예외 처리 미루기)에 대해 살펴보자. 그대로 번역하면 throws 선언을 추가한다는 의미인데, 예외를 해당 메서드에서 처리하지 않고 미룬 후 메서드를 호출하여 사용하는 부분에서 예외를 처리하는 방법이다. 아래 코드를 보자. 위 코드에서 정의한 loadClass( ) 메서드는 FileInputStream을 열고 Class를 동적으로 .. JAVA 입문 - 예외 처리하기 지난 글: [프로그래밍 언어/JAVA] - JAVA 입문 - 예외 클래스 try-catch문 예외 상황을 어떻게 처리해야 하는지 알아보자. 예외를 처리하는 가장 기본 문법인 try-catch문의 형식은 아래와 같다. try { 예외가 발생할 수 있는 코드 부분 } catch(처리할 예외 타입 e) { try 블록 안에서 예외가 발생했을 때 예외를 처리하는 부분 } try 블록에는 예외가 발생할 가능성이 있는 코드를 작성한다. 만약 try 블록 안에서 예외가 발생하면 바로 catch 블록이 수행된다. catch문의 괄호 ( ) 안에 쓰는 예외 타입은 예외 상황에 따라 달라진다. try-catch문 사용하기 간단한 배열로 예외가 발생하는 상황을 만들고 그에 따른 예외 처리를 해보자. 아래는 요소가 5개인 정.. JAVA 입문 - 예외 클래스 지난 글: [프로그래밍 언어/JAVA] - JAVA 입문 - 스트림 오류란? 프로그램에서 오류가 발생하는 상황은 두 가지다. 하나는 프로그램 코드 작성 중 실수로 발생하는 컴파일 오류(compile erroe)이고, 다른 하나는 실행 중인 프로그램이 의도하지 않은 동작을 하거나 프로그램이 중지되는 실행 오류(runtime error)이다. 실행 오류 중 프로그램을 잘못 구현하여 의도한 바와 다르게 실행되어 생기는 오류를 버그(bug)라고 한다. 컴파일 오류는 개발 환경에서 대부분 원인을 알 수 있다. 발생한 컴파일 오류를 모두 수정해야 프로그램이 정상적으로 실행되므로, 문법적으로 오류가 있다는 것을 바로 알 수 있다. 하지만 프로그램 실행 중에 발생하는 오류는 예측하기 어려운 경우가 많고, 프로그램이 비.. JAVA 입문 - 스트림 지난 글: [프로그래밍 언어/JAVA] - JAVA 입문 - 람다식 스트림이란? 배열 요소를 특정 기준에 따라 정렬(sorting)하거나, 요소 중 특정 값은 제외하고 출력하는(filter) 기능 등 이렇게 여러 자료의 처리에 대한 기능을 구현해 놓은 클래스가 스트림(stream)이다. 스트림을 활용하면 배열, 컬렉션 등의 자료를 일관성 있게 처리할 수 있다. 자료에 따라 기능을 각각 새로 구현하는 것이 아니라 처리해야 하는 자료가 무엇인지와 상관없이 같은 방식으로 메서드를 호출할 수 있기 때문이다. 다른 말로는 자료를 추상화했다고 한다. 배열을 예로 들면 아래 코드는 정수 5개를 요소로 가진 배열이고, 이를 모두 출력하는 출력문이다. int[] arr = {1, 2, 3, 4, 5}; for(int i.. JAVA 입문 - 람다식 지난 글: [프로그래밍 언어/JAVA] - JAVA 입문 - 내부 클래스 함수형 프로그래밍과 람다식 자바는 객체를 기반으로 프로그램을 구현한다. 만약 어떤 기능이 필요하다면 클래스를 만들고, 클래스 안에 기능을 구현한 메서드를 만든 후 그 메서드를 호출한다. 즉 클래스가 없다면 메서드를 사용할 수 없다. 헌데 프로그래밍 언어 중에는 함수의 구현과 호출만으로 프로그램을 만들 수 있는 프로그래밍 방식이 있다 한다. 이를 '함수형 프로그래밍(Functional Programming; FP)'이라 한다. 최근 함수형 프로그래밍의 여러 장점이 대두되며 자바 8부터 함수형 프로그래밍을 지원하고 있다 한다. 자바에서 제공하는 함수형 프로그래밍 방식을 '람다식(Lambda expression)'이라 한다. 그럼 객체 .. JAVA 입문 - 내부 클래스 지난 글: [프로그래밍 언어/JAVA] - JAVA 입문 - Map 인터페이스 내부 클래스 정의와 유형 내부 클래스(inner class)는 말 그대로 '클래스 내부에 선언한 클래스'이다. 내부에 클래스를 선언하는 이유는 대개 이 클래스와 외부 클래스가 밀접한 관련이 있기 때문이다. 또한 그 밖의 다른 클래스와 협력할 일이 없는 경우에 내부 클래스로 선언해서 사용한다. 내부 클래스를 간단하게 표현하면 아래와 같다. class Out {//외부 클래스 class In {//내부 클래스 ... } } 내부 클래스는 선언하는 위치나 예약어에 따라 크게 네 가지 유형으로 나눌 수 있다. 먼저 인스턴스 내부 클래스, 정적(static) 내부 클래스, 지역(local) 내부 클래스가 있는데, 이들은 클래스 내부에 .. JAVA 입문 - Map 인터페이스 지난 글: [프로그래밍 언어/JAVA] - JAVA 입문 - Set 인터페이스 Map 인터페이스는 자료를 쌍(pair)으로 관리하는 데 필요한 메서드가 정의되어 있다. key-value 쌍으로 이루어진 객체의 key 값은 중복될 수 없고, value 값은 중복될 수 있다. Map 인터페이스를 구현한 클래스는 내부적으로 해시 알고리즘에 의해 구현되어 있다. 우선 가장 많이 사용하는 HashMap 클래스부터 보자. HashMap 클래스 HashMap 은 Map 인터페이스를 구현한 클래스 중 가장 많이 사용한다. HashMap에서 자료를 관리하는 방식은 해시 방식이다. 해시 방식의 자료를 저장하는 공간을 해시 테이블이라고 한다. key 값이 정해지면 그에 대응하는 해시 테이블의 저장 위치가 정해지는데, 이런 .. 이전 1 2 3 4 5 ··· 8 다음