복습용 (17) 썸네일형 리스트형 표준 입출력 자바에서는 화면에 출력하고 입력받는 표준 입출력 클래스를 미리 정의해 두었습니다. 이 클래스는 프로그램이 시작될 떄 생성되므로 따로 만들 필요가 없습니다. 우리가 지금까지 화면 출력을 위해 사용한 System.out은 표준 출력을 위한 객체입니다. 표준 입출력은 콘솔화면에 입출력된다고 해서 콘솔 입출력이라고도 합니다. 표준 입출력을 위한 System 클래스는 다음과 같이 세 개의 변수를 가지고 있습니다. 자료형 변수이름 설명 static PrintStream out 표준 출력 스트림 static InputStream in 표준 입력 스트림 static OutPutStream err 표준 오류 출력 스트림 System.in 으로 화면에서 문자 입력받기 프로그램을 실행하면 입력을 받기 위해 커서가 기다리고 .. 예외 처리 미루기 예외 처리를 미루는 throws 사용하기 FileInputStream을 생성했을 때 예외 처리 방법은 두 가지 있었습니다. Srround with try/catch는 살펴보았스니, 이제 Add throws declaration에 대해 살펴보겠습니다. 그대로 번역하면 throws 선언을 추가한다는 의미인데, 예외를 해당 메소드에 처리하지않고 미룬 후 메소드를 호출하여 사용하는 부분에서 예외를 처리하는 방법입니다. 사용자 정의 예외 자바에서 제공하는 예외 처리 클래스 이외에 개발하는 프로그램에 따라 다양한 예외 상황이 발생할 수 있습니다. 예를 들어 어떤 사이트에 회원 가입을 할 때 입력하는 아이디 값이 null이어서는 안되고 8자 이상 20자 이하로 만들어야 하는 조건이 필요할 수 있습니다. 이런 조건을 .. 예외 클래스 오류와 예외 실행 오류는 크게 두 가지가 있는데, 하나는 자바 가상 머신에서 발생하는 시스템 오류(error)이고 다른 하나는 예외(exception)입니다. 시스템 오류의 예로는 사용 가능한 동적 메모리가 없는 경우나 스택 메모리의 오버플로가 발생한 경우 등을 들 수 있습니다. 이러한 시스템 오류는 프로그램에서 제어할 수 없습니다. 반면 '예외'는 프로그램에서 제어할 수 있습니다. 예외 처리하기 try-catch문 예외를 처리하는 가장 기본 문법인 try-catch문의 형식은 다음과 같습니다. try { 예외가 발생할 수 있는 코드 부분 } catch(처리할 예외 타입 e) { try 블록 안에서 예외가 발생했을 때 예외를 처리하는 부분 } try 블록에는 예외가 발생하는 상황을 만들고 그에 따른 예외.. 스트림 스트림이란? 자료가 모여있는 배열이나 컬렉션 또는 특정 범위안에 있는 일련의 숫자를 처리하는 기능이 미리 구현되어 있다면 프로그램의 코드가 훨씬 간결해지고 일관성 있게 다룰 수 있겠죠? 예를 들어 배열 요소를 특정 기준에 따라 정렬(sorting)하거나, 요소 중 특정 값은 제외하고 출력하는 (filter_ 기능처럼 말입니다. 이렇게 여러 자료의 처리에 대한 기능을 구현해 놓은 클래스가 스트림(stream) 입니다. 스트림을 활용하면 배열, 컬렉션 등의 자료를 일관성 있게 처리할 수 있습니다. Collection에서 스트림 생성하고 사용하기 스트림의 특징 자료의 대상과 관계없이 동일한 연산을 수행한다. 배열이나 컬렉션에 저장된 자료를 가지고 수행할 수 있는 연산은 여러 가지가 있습니다. 배열에 저장된 요.. 21.Set 인터페이스 순서와 상관없이 중복을 허용하지 않는 경우에는 Set 인터페이스를 구현한 클래스를 사용합니다. 우리가 사용하는 데이터 중에 중복을 허용하지 않는 데이터는 어떤 것이 있을까요? 회원 아이디, 주민등록번호, 사번, 홈쇼핑 주문 번호 등은 중복되면 안 될 것입니다. Set 인터페이스를 구현한 대표 클래스에는 HashSet와 TreeSet가 있습니다. HashSet 클래스 HashSet 클래스는 집합 자료 구조를 구현하며 중복을 허용하지 않습니다. 중복을 허용하지 않는다는 의미를 살펴보기 위해 다음과 같이 간단한 HashSet를 테스트하는 프로그램을 작성해 보겠습니다. 12~13행을 보면 hashSet에 동일한 자료 '강감찬'을 추가했습니다. 같은 문자열을 추가한 것입니다. 결과 화면을 보면 같은 자료는 중복되.. 20. List 인터페이스 ArrayList, LinkedList List 인터페이스에는 객체를 순서에 따라 저장하고 유지하는 데 필요한 메소드가 선언되어 있십니다. 우리가 알고 있는 순차 자료 구조의 대표적인 예는 배열입니다. 자바에서 배열을 구현한 대표 클래스로는 ArrayList, Vector가 있고, 배열과 구현 방식은 다르지만 순차 자료 구조를 구현한 LinkedList가 있습니다. 그러면 객체 배열로 가장 많이 사용하고 기존 예제이서도 자주 활용한 ArrayList부터 자세히 살펴보겠습니다. ArrayList를 활용해 회원 관리 프로그램 구현하기 ArrayList를 사용하려면 import java.util.ArrayList를 선언해 주어야 합니다. 9행에서 ArrayList를 선언하고 MemberArrayList() 생성자에서 ArrayList를 생성합니다... 19. 컬렉션 프레임워크 컬렉션 프레임워크란? 흔히 프로그램 개발을 건물 짓는 일에 비유합니다. 원하는 건물을 지으려면 구조를 잘 잡아야 하듯이 프로그램을 개발할 때도 사용하는 자료를 어떤 구조로 관리할 것인지가 중요합니다. 그래야 프로그램의 기능을 효과적으로 구현할 수 있기 때문입니다. 이 때 사용하는 것이 자료 구조(data structure)입니다. 자료 구조는 프로그램을 실행 중 메모리에 자료를 유지 관리하기 위해 사용합니다. 자바에서는 필요한 자료 구조를 미리 구현하여 java.util 패키지에서 제공하고 있는데, 이를 컬렉션 프레임워크(Collection framework)라고 합니다. 자료 구조는 개발자가 필요할 때 직접 만들어 사용할 수도 있습니다. 하지만 자바 컬렉션 프레임워크를 사용하면 직접 개발하는 수고를 덜.. 18.제네릭 제네릭이란? 프로그램에서 변수를 선언할 떄 모든 변수는 자료형이 있습니다. 메소드에서 매개변수를 사용할 때도 자료형을 가지고 있습니다. 대부분은 하나의 자료형으로 구현하지만, 변수나 메소드의 자료형을 필요에 따라 여러 자료형으로 바꿀 수 있다면 프로그램이 훨씬 유연할 것입니다. 이와 같이 어떤 값이 하나의 참조 자료형이 아닌 여러 참조 자료형을 사용할 수 있도록 프로그래밍 하는 것을 '제네릭(Generic) 프로그래밍' 이라고 합니다. 제네릭 프로그램은 참조 자료형이 변환될 때 이에 대한 검증ㅇ르 컴파일러가 하므로 안정적입니다. 앞으로 학습할 '컬렉션 프레임워크'도 많은 부분이 제네릭으로 구현되어 있습니다. 제네릭의 필요성 3D 프린터를 예로 들어 제네릭에 대해 이해해 봅시다. 3D 프린터는 재료를 가지.. 이전 1 2 3 다음