반응형

소스 코드 353

[Java 언어 활용] 3.3 Collection 인터페이스

[Java 언어 활용] 3.3 Collection 인터페이스 Collection 인터페이스는 자료구조를 구현한 다양한 클래스들의 공통적인 기능을 약속한 인터페이스입니다. 이는 Collection을 기반으로 구현한 클래스들을 사용하는 방법을 일관화하여 사용하는 개발자의 학습 비용을 줄여주는 역할을 합니다. [그림 3.2] Collection 인터페이스와 구현 클래스 계층 구조 Collection 인터페이스를 기반으로 구현한 클래스에는 List와 Set이 있습니다. 그리고 List를 기반으로 파생한 클래스로 Vector, Stack, ArrayList, LinkedList가 있고 Set을 기반으로 파생한 클래스로 StoredSet과 HashSet이 있습니다. 따라서 이러한 클래스들의 사용법의 공통적인 부분은..

[Java 언어 활용] 3.1 제네릭(Generic)

[Java 언어 활용] 3.1 제네릭(Generic) 제네릭(Generic)은 여러 형식에 맞게 재사용할 수 있는 코드를 정의하는 기술을 말합니다. 제네릭 코드를 정의할 때는 가상의 형식 이름을 처럼 정의하고 사용하는 곳에서 어떠한 형식에 관한 코드를 사용할 것인지 명시하여 사용하는 기법입니다. 먼저 제네릭 클래스를 정의할 때는 클래스명 뒤에 을 명시하여 만들 수 있습니다. class 클래스명{ } 사용하는 곳에서는 가상 형식 이름 대신 구체적으로 사용할 형식을 결정하여 을 명시하여 사용합니다. 클래스명 변수명 = new 클래스명(); 다음은 정수 형식을 보관하는 정수 적 배열 클래스와 제네릭 형식으로 원하는 형식을 사용자가 결정할 수 있는 제네릭 동적 배열 클래스를 정의한 것입니다. ▷ 소스 3.1 정..

[Java 언어 활용] 2.5 예외 클래스 정의하기

[Java 언어 활용] 2.5 예외 클래스 정의하기 Java 언어에서는 기반 예외 클래스에서 파생한 예외 클래스를 정의할 수 있습니다. 모든 예외 클래스는 기반 클래스 Exception에서 파생한 클래스입니다. 따라서 여러분은 원하는 예외 클래스를 기반으로 파생 클래스를 정의할 수 있습니다. 다음은 앞에서 작성한 코드에서 예외를 던질 때 어떠한 수를 전달해서 예외가 발생했는지 확인할 수 있게 사용자 정의 예외 클래스를 사용한 코드입니다. ▷ 소스 2.7 사용자 정의 예외 클래스 예 피보나치 수열을 구할 수 있습니다. 원하는 항:-3 예외 발생(-3) EHException: 요청 항은 양수여야 합니다. 피보나치 수열 사용을 마칩니다.

[Java 언어 활용] 2.4 예외 발생에 관계없이 수행해야 할 코드는 finally 문 사용

2.4 예외 발생에 관계없이 수행해야 할 코드는 finally 문 사용 Java 언어에서는 예외 처리를 할 때 예외 발생에 관계없이 수행해야 할 코드를 작성할 수 있도록 finally 문을 제공하고 있습니다. 다음은 finally 문을 사용하는 예제 코드입니다. ▷ 소스 2.6 finally 문 사용 예 피보나치 수열을 구할 수 있습니다. 원하는 항:3 Fibbonacci(3)=2 피보나치 수열 사용을 마칩니다. ▷ 소스 2.6 실행 결과(-3을 입력했을 때)

[Java 언어 활용] 2.3 프로그램 방식으로 예외를 던지는 throw 문

[Java 언어 활용] 2.3 프로그램 방식으로 예외를 던지는 throw 문 Java 언어에서는 프로그램 동작 중에 개발자가 원하는 조건을 만족하지 않아 더 이상의 코드 진행을 하지 못하는 상황이 발생할 때 예외를 던지는 throws 문을 제공하고 있습니다. 예외를 던질 수 있는 메서드 throws 예외 클래스{ if(예외가 발생){ throws 예외 개체; } 정상적인 상황의 코드 } 다음은 Fibonacci 수열의 n항을 구하는 코드에 양수 항이 아니면 예외를 던져서 이를 처리하는 코드입니다. ▷ 소스 2.5 throw 문 사용 예 예외 발생 java.lang.Exception: 요청 항은 양수여야 합니다.

[Java 언어 활용] 2.2 예외를 잡아서 처리하기

[Java 언어 활용] 2.2 예외를 잡아서 처리하기 Java에서는 던져진 예외를 잡아서 처리하는 방법을 제공하고 있습니다. 먼저 개발자는 예외가 발생할 수도 있다고 생각하는 부분을 try 블록으로 지정하고 이어서 catch 블록을 지정하여 원하는 예외 개체를 잡아서 예외를 처리합니다. try{ ...예외가 발생할 수도 있는 코드 } catch(예외 개체 변수명){ ...예외를 잡아서 처리할 구문... } 다음은 배열의 유효하지 않은 인덱스를 사용할 때 발생하는 ArrayIndexOutOfBoundsException을 던져졌을 때 개발자가 이를 잡아 처리하지 않았을 때의 코드와 출력 내용입니다. 참고로 모든 예외 클래스는 기반 클래스 Exception 에서 파생한 형식입니다. ▷ 소스 2.2 예외를 잡아..

[Java 언어 활용] 2.1 Throwable 클래스의 계층 구조

[Java 언어 활용] 2.1 Throwable 클래스의 계층 구조 Java 언어에서는 예외나 에러가 발생할 때 Throwable 클래스 개체를 던져 개발자 코드에서 이를 잡아 처리할 수 있게 하고 있습니다. 이는 Throwable은 예외와 에러의 기반 클래스라는 말입니다. [그림 2.1] Throwable 클래스의 계층 구조 예외(Exception)는 비교적 가벼운 오류로 개발자가 프로그램 방식으로 처리할 수 있다고 판단하는 상황에 발생하며 에러(Error)는 치명적인 오류가 발생하여 개발자가 처리할 수 없다고 판단하는 상황에 발생하는 것입니다. 예를 들어 프로그램에서 열고자 하는 파일이 없을 때는 예외를 발생합니다. 하지만 스레드의 자원 경쟁 문제에서 교착 상태에 빠지거나 가상 머신에서 문제가 발생하..

[Java 언어 활용] 1.1 패키지와 import

[Java 언어 활용] 1.1 패키지와 import앞에서는 진입점이 있는 패키지를 만들어 보았습니다. 그런데 이처럼 만든다면 패키지가 아닌 일반 Java 프로젝트와 차이점을 느낄 수가 없을 것입니다. 패키지는 소스 코드 재사용성이 높다고 앞에서 얘기하였습니다. 이는 패키지를 만든 후에 필요한 프로젝트에서 이를 사용할 수 있다는 의미입니다. 이번에는 패키지를 만든 후에 이를 사용하는 방법에 관해 살펴봅시다. 먼저 패키지를 만든 후에 다음의 코드를 작성하세요. 패키지 이름은 SecondPackage라고 정할게요. ▷ 소스 1.2 두 번째 패키지 import SecondPackage.Calculator; public class Program { public static void main(String[] arg..

[C언어 알고리즘] 7.4.2 크루스칼 알고리즘 소스 코드

[C언어 알고리즘] 7.4.2 크루스칼 알고리즘 소스 코드다음은 C언어로 작성한 크루스칼 알고리즘 소스 코드입니다. 동적 배열과 정점과 간선을 이용한 그래프를 구현하여 사용하였습니다. //Array.h#pragma oncetypedef void * Element;typedef struct _Array Array;struct _Array{ Element *base; int capacity; int usage;};typedef Element *Iterator; Array *New_Array();void Delete_Array(Array *arr);void Array_SetSize(Array *arr,int capacity,Element data);void Array_PushBack(Array *arr,Ele..

[C언어 알고리즘] 7.3.3 프림 알고리즘 소스 코드

[C언어 알고리즘] 7.3.3 프림 알고리즘 소스 코드다음은 C언어로 작성한 프림(Prim) 알고리즘 소스 코드입니다. 동적 배열과 정점과 간선을 이용한 그래프를 구현하여 사용하고 있습니다. //Array.h#pragma oncetypedef void * Element;typedef struct _Array Array;struct _Array{ Element *base; int capacity; int usage;};typedef Element *Iterator; Array *New_Array();void Delete_Array(Array *arr);void Array_SetSize(Array *arr,int capacity,Element data);void Array_PushBack(Array *arr..

반응형