본문 바로가기
SMALL

프로그래밍언어52

10-2 예외 처리 자바 컴파일러는 예외가 발생할 가능성이 있는 코드를 발견하면 컴파일 에러를 발생시켜 개발자가 강제적으로 예외 처리 코드를 작성하도록 한다. 그러나 실행 예외는 컴파일러가 체크하지 않기 때문에 개발자가 직접 예외 처리 코드를 작성해야 한다. try-catch-finally 블록은 생성자 내부와 메소드 내부에서 작성하여 예외가 발생할 경우 예외 처리를 할 수 있도록 한다. try-catch-finally 블록 작성은 다음과 같다. 각 블록 별 특징은 다음과 같다. try 블록(1) : 예외 발생 가능 코드 위치 catch 블록(2) : 예외 처리 코드 위치. 예외 발생 없이 정상 실행되면 실행되지 않음. 반대로 try 블록의 코드에서 예외가 발생하면 발생 즉시 실행을 멈추고 catch 블록으로 이동하여 예외.. 2021. 12. 27.
10-1 예외 클래스 컴퓨터 하드웨어의 오동작 또는 고장으로 인해 발생하는 것을 에러(error)라고 하며, 이러한 에러 이외에 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류를 예외(exception)라고 말한다. 예외가 발생하면 프로그램은 곧바로 종료된다는 점에서 에러와 비슷하지만, 예외 처리(exception handling)를 통해 프로그램을 종료하지 않고 정상 실행 상태가 유지되도록 할 수 있다. 자바는 예외가 발생할 가능성이 높은 코드를 컴파일할 때 예외 처리 유무를 확인하며, 예외 처리 코드가 없다면 컴파일이 되지 않는다. 하지만 모든 예외에 대해 확인하지는 않기 때문에 예외의 종류부터 알아보자. 예외는 두 가지 종류가 있다. 일반 예외(exception) 컴파일러 체크 예외 프로.. 2021. 12. 27.
09-2 익명 객체 익명(anonymous)객체는 이름이 없는 객체를 말한다. 익명 객체를 만들려면 조건이 따르며, 조건이란 클래스를 상속하거나 인터페이스를 구현하는 것을 말한다. 익명 객체가 아닌 일반적인 경우에는 다음과 같이 명시적으로 클래스 이름을 주고 선언한다. //일반적인 경우 //[상속] class 클래스이름1 extends 부모클래스 {...} 부모클래스 변수 = new 클래스이름1(); //[구현] class 클래스이름2 implements 인터페이스 {...} 인터페이스 변수 = new 클래스이름2(); 이 경우 부모 클래스 변수는 클래스이름1의 객체를 참조하며 인터페이브 변수는 클래스이름2의 객체를 참조한다. 그러나 익명 객체를 생성할 때에는 다음과 같이 클래스 이름이 존재하지 않는다. //익명 객체 //.. 2021. 12. 14.
파이썬) 겹치지 않는 숫자 랜덤으로 생성 import random # 랜덤으로 생성한 숫자를 담을 배열 a = [] # 랜덤으로 정수 생성 randomNumber = random.randint(0, 3200) # 반복하여 숫자 100개 뽑기 for i in range(100): # 만약 숫자가 있을 경우 랜덤 숫자 다시 생성 while randomNumber in a: randomNumber = random.randint(0, 3200) a.append(randomNumber) a.sort() print(a) 2021. 11. 8.
09-1 중첩 클래스와 중첩 인터페이스 소개 객체 지향 프로그래밍에서 클래스들은 서로 긴밀한 관계를 가지며 상호작용을 한다. 어떤 클래스는 여러 클래스들과 관계를 갖기도 하고, 어떤 클래스는 특정 클래스만 관계를 갖기도 한다. 첫번째의 경우에는 독립적으로 선언하는 것이 좋으나, 두번째의 경우는 클래스 내부에 선언하는 것이 좋다. 이번 포스팅은 두번째의 경우 클래스 내부에 선언하는 중첩 클래스와 중첩 인터페이스에 대한 내용이다. 먼저, 중첩 클래스(nested class)란 클래스 내부에 선언한 클래스를 말한다. 중첩 클래스를 사용하면 두 클래스의 멤버들을 서로 쉽게 접근이 가능하며, 외부에는 클래스 관계를 감춤으로써 코드의 복잡성을 줄일 수 있다. 중첩 클래스의 코드 형태는 다음과 같다. //클래스 class ClassName{ //중첩 클래스 c.. 2021. 6. 29.
08-2 타입 변환과 다형성 인터페이스 다형성이란? 프로그램 소스 코드는 변함이 없는데, 구현 객체를 교체함으로써 프로그램의 실행 결과가 다양해지는 것 구현 객체가 인터페이스 타입으로 변환되는 것으로 프로그램 실행 도중에 자동적으로 타입 변환이 일어나는 것을 말함 인터페이스 구현 클래스를 상속해서 자식 클래스를 만들었다면 자식 객체 역시 인터페이스 타입으로 자동 타입 변환이 가능하다. 때문에 자동 타입 변환을 이용하면 필드의 다형성과 매개 변수의 다형성 구현이 가능하다. 필드와 매개 변수의 타입을 인터페이스로 선언하면 다양한 구현 객체를 대입해서 실행결과를 다양하게 만들 수 있다. 필드의 다형성은 7장의 상속에서 다형성과 유사하다. 상속과 다른 점은 타이어가 클래스 타입이 아닌 인터페이스 타입이라는 점과 타이어는 자식클래스가 아니라.. 2021. 6. 28.
LIST