Rei’s Tech diary

Chapter 2. 프로그래밍 언어 활용 본문

정보처리기사/[4] 프로그래밍 언어 활용

Chapter 2. 프로그래밍 언어 활용

Reiger 2022. 3. 23. 17:00

 

[1] 기본 문법 활용

#. 데이터 타입의 유형

유형 설명
불린 타입
(Boolean Type)
조건이 참인지 거짓인지 판단하고자 할 때 사용
예) boolean a = TRUE;
문자 타입
(Char Type)
문자 하나를 저장하고자 할 때 사용
예) char a = 'A';
문자열 타입
(String Type)
나열된 여러 개의 문자를 저장하고자 할 때 사용
예) String a = 'Hello';
정수 타입
(Int Type)
정숫값을 저장하고자 할 때 사용
예) int a = 5;
부동 소수점 타입
(Float Type)
소수점을 포함하는 실숫값을 저장하고자 할 때 사용
예) float a = 4.5;

 

#. 변수(Variable)

변수는 저장하고자 하는 어떠한 값이 있을 때, 그 값을 주기억장치에 기억하기 위한 공간이다.

 

#. 변수 설정 규칙 ★

구분 규칙 사용 가능 예시 사용 불가능 예시
사용 가능 문자
영문 대문자/소문자, 숫자, 밑줄('_'), 달러('$')의 사용이 가능 a, A, a1, _, _hello, $a ?a, <a

변수 사용 규칙

첫 자리에는 숫자를 사용할 수 없음 _1, a1, a100 1, 1a, 1A, 1234
변수 이름 중간에는 공백을 사용할 수 없음 my_student mu student

변수 의미 부여

데이터값의 의미나 역할을 표현 age, student  
이미 사용되고 있는 예약어의 경우에는 변수로 사용할 수 없음 For, If, While int, short, long, for, while, do, continue, break, if, else

 

#. 배열(Array)

- 배열은 같은 타입의 변수들로 이루어진 집합이다.

- 배열은 여러 자료를 묶어서 하나의 단위로 처리할 수 있게 하는 구조적 자료형이다.

 

#. 배열 선언

구분 선언
초기값이 없는 경우 타입 배열명[배열_요소_개수];
초기값이 있는 경우 타입 배열명[배열_요소_개수] = {초깃값};

- 배열 요소 개수에 정의된 숫자만큼 같은 타입의 데이터 공간이 할당된다.

- 초깃값을 선언하지 않을 경우 쓰레기 값이 저장된다.

- 배열 요소 개수보다 적은 개수만큼 초기화할 경우 초깃값이 명시되지 않은 값들은 자동으로 0으로 초기화된다.

 

■ C언어 배열 선언 및 출력 예제

#include <stdio.h>
void main(){
	int a[4] = {1, 2};
    int i;
    for(i=0; i<4; i++)
    	printf("%d\n", a[i]);
}

1

2

0

0

- a 배열의 요소 개수는 4개지만, 초기값은 1, 2로 두 개만 명시되어 있으므로 나머지 2개의 공간은 0으로 초기화

 

#. 포인터(Pointer)

- 포인터는 변수의 주솟값을 저장하는 공간

 

#. 포인터 선언

데이터 타입* 포인터_변수명 = &변수명;

- 데이터 타입 뒤에 *를 붙이면 주소를 저장하는 포인터 변수라는 의미

- 일반 변수명에 &를 붙이면 해당 변수명의 주솟값

- 주소에 해당하는 값을 가리킬 때는 *를 사용

 

■ 포인터 예제

int a = 10;
int* b = &a;
printf("%d %d", a, *b); // b가 가리키는(*) 값은 a이므로 *b와 a는 같다.

 

#. 연산자(Operation)

- 연산자는 프로그램 실행을 위해 연산을 표현하는 기호이다.

 

#. 연산자의 종류 ★

연산자 연산자 설명


증감 연산자


++X 변수의 값을 1 증가시킨 후에 해당 변수를 사용
X++ 변수를 사용한 후에 변수의 값을 1 증가
--X 변수의 값을 1 감소시킨 후에 해당 변수 사용
X-- 변수를 사용한 후에 변수릐 값을 1 감소

산술 연산자

+, -, *, / 덧셈, 뺄셈, 곱셈, 나눗셈 연산자
% 나머지 연산자

시프트 연산자

<< 왼쪽 값을 오른쪽 값만큼 비트를 왼쪽으로 이동하는 연산자
>> 왼쪽 값에 오른쪽 값만큼의 부호 비트를 채우면서 오른쪽으로 이동하는 연산자


관계 연산자


>, < 두 값 중 왼쪽의 값이 오른쪽 값보다 큰지, 작은지를 확인하는 연산자
>=, <= 두 값 중 왼쪽의 값이 오른쪽 값보다 크거나 같은지, 작거나 같은지 확인하는 연산자
== 두 값이 같은지 확인하는 연산자
!= 두 값이 다른지 확인하는 연산자


비트 연산자


& 두 값을 비트로 연산하여 같은 비트의 값이 모두 1이면 해당 비트값이 1이 되고, 그렇지 않으면 0이 되는 연산자 (AND 연산자)
| 두 값을 비트로 연산하여 같은 비트의 값이 하나라도 1이면 해당 비트 값이 1이 되고, 그렇징 ㅏㄶ으면 0이 되는 연산자 (OR 연산자)
^ 두 값을 비트로 연산하여 같은 비트의 값이 서로 다르면 해당 비트값이 1이 되고, 그렇지 않으면 0이 되는 연산자
~ 모든 비트의 값을 반대로 바꾸는 반전 기능을 하는 연산자 (1의 보수화)

논리 연산자

&& 두 개의 논릿값이 모두 참이면 참을 반환, 그렇지 않으면 거짓을 반환
피연산자 중 둘 다 참이면 참이 되는 연산자
|| 두 개의 논릿값 중 하나 이상 참이면 참을 반환, 그렇지 않으면 거짓을 반환
피연산자 중 하나라도 참이면 참이 되는 연산자
! 한 개의 논릿값이 참이면 거짓을 반환, 거짓이면 참을 반환 (NOT 연산)
삼항 연산자 (조건식)? a: b 조건식이 참일 경우 변수 a실행, 거짓일 경우 변수 b실행


대입 연산자



= 왼쪽의 변수에 오른쪽 값을 대입하는 연산자
+= 왼쪽의 변수에 오른쪽 값을 더한 후 그 결괏값을 왼쪽의 변수에 대입하는 연산자
-= 왼쪽의 변수에 오른쪽 값을 뺀 후 그 결괏값을 왼쪽의 변수에 대입하는 연산자
*= 왼쪽의 변수에 오른쪽 값을 곱한 후 그 결괏값을 왼쪽의 변수에 대입하는 연산자
/= 왼쪽의 변수에 오른쪽 값을 나눈 후 그 결괏값을 왼쪽의 변수에 대입하는 연산자
%= 왼쪽의 변수에 오른쪽 값을 나눈 후 그 나머지를 왼쪽의 변수에 대입하는 연산자

 

#. 연산자 우선순위 (증산시 관비 논삼대) ★

우선순위 연산자 항의 개수 유형
0 (     ) - 괄호

1

X++ 단항 증감
X-- 단항 증감


2


++X 단항 증감
--X 단항 증감
! 단항 논리
~ 단항 비트


3


* 이항 산술
/ 이항 산술
% 이항 산술

4

+ 이항 산술
- 이항 산술

5

<< 이항 시프트
>> 이항 시프트


6


< 이항 관계
<= 이항 관계
> 이항 관계
>= 이항 관계

7

== 이항 관계
!= 이항 관계
8 & 이항 비트
9 ^ 이항 비트
10 | 이항 비트
11 && 이항 논리
12 || 이항 논리
13 (조건식)? a : b 삼항 삼항


14


= 대입 대입
+= 대입 대입
-= 대입 대입
*= 대입 대입
/= 대입 대입
%= 대입 대입

#. 조건문

- 조건문은 조건의 참, 거짓 여부에 따라 실행 경로를 달리하는 if 문과 여러 경로 중의 하나를 선택하는 switch 문으로 구분된다.

 

① if 문

if (조건문){
	명령문;
}
else if (조건문){
	명령문;
}
else {
	명령문;
}

 

■ if  문 사용 예제 (짝수 홀수 판별 프로그램)

class soojebi{
	public static void main(String[] args){
		int score = 5;
        
		if(score % 2 == 0){
			System.out.print("짝수");
        }
		else{
			System.out.print("홀수");
        }
    }
}

 

②switch 문

swich (식){
case 값:
	명령문;
	break;
default:
	명령문;
}

 

■ switch 문 사용 예제(짝수 홀수 판별 프로그램)

class soojebi{
	public static void main(String[] args){
    int score = 5;
        
    switch(score % 2){
    case 0:
      System.out.print("짝수");
      break;
    default:
      System.out.print("홀수");
        }
    }
}

 

#. 반복문

- 반복문은 특정 부분을 조건이 만족할 때까지 실행하도록 하는 명령문

- 반복문을 사용할 때 특별한 조건이 없으면 무한 처리를 반복(무한 루프)하게 된다.

 

① for 문

- for 문은 초기식, 조건식, 증감식을 지정하여 반복하는 명령어이다. 

 

㉮ C, 자바 언어에서의 for 문

for(초기식; 조건식; 증감식){
	명령문;
}

 

■ 자바 언어에서의 for문 사용 예제 (1~2까지 숫자 더하기)

class Soojebi{
	public static void main(String[] args){
	int i = 0;
	int sum = 0;
	for (i=1; i<3; i++)
		sum = sum + i;
	System.out.print(sum);
    }
}

 

㉯ 파이썬에서의 for 문

# 방법1.
for 변수 in range (시작값, 끝값 + 1) :
	명령문
    
# 방법2.   
for 변수 in range (반복횟수) :
	명령문

 

■ 파이썬에서의 for 문 예제 (1~10까지 숫자 더하기)

i = 0
sum = 0
for i in range (1, 11) :
	sum = sum + i
    
print(sum)

 

② while 문

- while 문은 조건이 참인 동안에 해당 분기를 반복해서 실행하는 명령문이다.

while(조건문){
	명령문;
}

 

■ while 문 예제 (1 ~ 2까지 숫자 더하기)

class soojebi{
	public static void main(String[] args){
    	int i = 1;
        int sum = 0;
        
        while(i<3){
         sum = sum + i;
         i++;
        }
        
        System.out.print(sum);
    }
}

 

③ do while 문

do{
명령문;
]while(조건문);

 

■ do while 문 예제 (1 ~ 2까지 숫자 더하기)

class soojebi{
public static void main(String[] args){
    int i = 2;
    int sum = 0;
    
    do{
    sum = sum + i;
    i++;
    }while(i < 0);
    
    System.out.print(sum);
    
    }
}

 

④ 루프 제어 명령어

- 루프 제어 명령어는 break 문, continue 문이 있다.

 

■ break 문 사용 예시

#include <stdio.h>
void main(){
	int i = 0;
	while(i < 10 ) {
	 i++;
	if ( i == 7 )
	 break;
	print("%d", i);
    }
}

출력 : 123456

 

■continue 문 사용 예시

#include <stdio.h>
void main(){
	int i = 0;
	while(i < 10 ) {
	 i++;
	if ( i == 7 )
	 continue;
	print("%d", i);
    }
}

출력 : 1234568910

 

#. 사용자 정의 함수

- 사용자 정의 함수는 특별한 목적의 작업을 수행하도록 설계된 블록이다.

 

#. 사용자 정의 함수 선언

① C, 자바에서 사용하는 사용자 정의 함수

반환_데이터_타입 함수면(데이터_타입 변수명, ...){
	명령어;
	return 반환값;
}

 

② 파이썬에서 사용하는 사용자 정의 함수

def 함수명(변수명, ...):
	명령어
	return 반환값

 

#. 클래스 (Class)

- 클래스는 객체 지향 프로그래밍에서 특정 객체를 생성하기 위해 변수와 메서드를 정의하는 틀.

- C 언어는 명령형 프로그래밍으로 클래스를 지원하지 않는다.

 

#. 클래스 정의

① 자바 클래스

public class 클래스명{
	private 변수_타입  변수명;
	public 반환_데이터_타입 메서드명(데이터_타입 변수명, ...){
		명령어;
		return 반환값;
    }
}

 

② 파이썬 클래스

class 클래스명:
	def 메서드명(self, 변수명, ...):
		명령어
		return 반환값
    }
}

 

#. 자신 클래스 참조

- 자신 클래스 참조에는 자바의 this 포인터와 파이썬의 self가 있다. 

구분 설명
this 포인터 ˙ this 포인터는 현재 객체를 가리키는 포인터
˙ 자바에서 사용하는 것으로 클래스 내부의 변수와 함수를 가리킬 수 있음

this.변수명;
this.함수명(매개변수);
self ˙ self는 현재 객체를 가리키는 포인터
˙ 파이썬에서 사용하는 것으로 클래스 내부의 변수와 함수를 가리킬 수 있음

self.변수명;
self.함수명(매개변수);

 

#. 클래스 선언

- 클래스를 일반변수로 선언한 경우 선언함과 동시에 생성자가 호출되고, 일반변수로 선언된 곳에서 함수가 종료되면 소멸자가 호출됨

 

구분 설명
자바 클래스 선언 클래스 클래스변수 = new 클래스(매개변수);  //생성시
클래스변수.finalize( );   //소멸시
파이썬 클래스 선언 클래스변수 = 클래스(매개변수)   //생성시
del 클래스변수   //소멸시

 

[2] 언어특성 활용

#. 절차적 프로그래밍 언어

- 절차적 프로그래밍 언어는 프로시저 호출의 개념을 바탕으로 하고 있는 프로그래밍 언어이다.

- 명령형 프로그래밍이라고도 불린다.

 

#. 절차적 프로그래밍 언어 특징

- 크게 복잡하지 않고 유지보수하기 쉽다.

- 복사해서 붙이지 않고도 같은 코드를 다른 곳에서 다시 사용할 수 있다.

- 순차적으로 진행되기 때문에 프로그램의 흐름을 파악하기 쉽다.

- 모듈화를 하거나 구조화를 할 수 있다.

 

#. 절차적 프로그래밍 언어 종류

종류 설명
알골
(ALGOL)
˙알고리즘의 연구개발에 이용하기 위한 목적으로 생성
˙ 절차형 언어로는 최초로 재귀 호출이 가능
˙ 이후 언어의 발전에 큰 영향을 미침
C언어 ˙ 유닉스 운영 체제에서 사용하기 위해 개발한 프로그래밍 언어
˙ 모든 컴퓨터 시스템에서 사용할 수 있도록 설계된 프로그래밍 언어
˙ struct는 구조체를 사용하여 데이터를 처리할 때 사용하는 키워드
포트란
(FORTRAN)
˙ 과학계산에서 필수적인 벡터, 행렬 계산 기능 등이 내장되어 있는 과학 기술 전문 언어
˙ 산술 기호, 삼각함수, 지수함수, 대수함수 등과 같은 수학 함수들 사용가능

 

#. 객체지향 프로그래밍 언어

- 객체지향 프로그래밍 언어는 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위인 "객체" 중심의 프로그래밍 언어이다.

 

#. 객체지향 프로그래밍 언어 기능

기능 설명
자료 추상화 ˙ 불필요한 정보는 숨기고 중요한 정보만을 표현함으로써 프로그램을 간단히 만드는 기능
상속 ˙ 새로운 클래스가 기존의 클래스의 자료와 연산을 이용할 수 있게 하는 기능
˙ 상속을 통해 기존의 클래스를 상속받은 하위 클래스를 이용해 프로그램의 요구에 맞추어 클래스 수정 가능
˙ 클래스 간의 종속 관계를 형성함으로써 객체를 조직화
다중 상속 ˙ 다중 상속은 클래스가 2개 이상의 클래스로부터 상속받을 수 있게 하는 기능
다형성 ˙ 어떤 한 요소에 여러 개념을 넣어 놓는 기법
동적 바인딩 ˙ 실행 시간 중에 일어나거나 실행 과정에서 변경 될 수 있는 바인딩
˙ 동적 바인딩은 프로그램의 한 개체나 기호를 실행 과정에 여러 속성이나 연산에 바인딩 함으로써 다형 개념을 실현
접근제어자 ˙ 접근제어자가 지정된 클래스, 변수, 메서드를 외부에서 접근할 수 있도록 권한을 설정하는 기능
public > protected > default > private

 

#. 객체지향 프로그래밍 언어 종류 ★

종류 설명
C++ ˙ C++은 C문법에 객체지향 프로그래밍 개념과 일반화 프로그래밍을 위한 템플릿 기능이 추가
˙ C++ 개발자는 원하는 많은 작업들을 성능하락이 없는 형태로 개발이 가능
˙ 직접 신경써야 하는 것들(메모리 관리)이 많은 언어이기 때문에 개발이 어려움
C# ˙ 마이크로소프트에서 개발한 객체지향 프로그래밍 언어
˙ C++와 자바의 문법과 비슷한 문법을 가지고 있음
˙ C#은 자바와 달리 불완전 코드(Unsafe Code)와 같은 기술을 통하여 플랫폼 간 상호 운용성 확보
자바
(JAVA)
˙ 자바는 썬 마이크로 시스템즈가 개발한 객체지향적 프로그래밍 언어
˙ 자바 컴파일러는 자바 언어로 작성된 프로그램을 바이트 코드라는 특수한 바이너라 형태로 변환
˙ 메모리 관리를 위해 가비지 컬렉터 사용
˙ 대표적인 출력함수는 print, println, printf가 있음
˙ 기본형 데이터 타입 크기
- boolean(1byte)
- char (2byte)
- byte (1byte)
- short (2byte)
- int (4byte)
- long(8byte)
- float(4byte)
- double(8byte)
델파이
(Delphi)
˙ 기본적인 문법은 파스칼 문법에 여러 기능들이 추가되어 존재
˙ 델파이는 윈도즈 아래에서 모든 부분을 프로그래밍할 수 있는 언어
˙ 높은 생산성과 간결한 코드가 대표적인 장점, C++과 비슷한 저수준 시스템 프로그래밍도 가능

 

#. 스크립트 언어

- 스크립트 언어는 소스 코드를 컴파일하지 않고도 실행할 수 있는 프로그래밍 언어

- 응용 프로그램과 독립하여 사용되고 일반적으로 응용 프로그램의 언어와 다른 언어로 사용되어 최종사용자가 응용 프로그램의 동작을 사용자의 요구에 맞게 수행할 수 있도록 해줌

 

#. 스크립트 언어 특징

- 일반적으로 스크립트 언어는 빠르게 배우고 쉽게 작성할 수 있다.

- 다른 언어들에 비해 상대적으로 단순한 구문과 의미를 내포한다.

- 보통 스크립트 언어로 작성된 코드는 시작에서 끝날 때까지 실행되며, 시작(Entry Point)이 따로 명시되어 있지 않다.

 

#. 스크립트 언어 종류

종류 설명
PHP ˙ 동적 웹 페이지를 만들기 위해 설계
˙ 명령 줄 인터페이스 방식의 자체 인터프리터 제공
˙ PHP의 대표 연산자
- @ : 오류 억제 연산자, 오류 메시지 무시
- < > : 값이 다름을 표현
- === : 값이 같고 타입도 같은지 확인

(Perl)
˙ 인터프리터 방식의 프로그래밍 언어
˙ 실용성을 모토로 함
˙ C, 쉘 스크립트 등 다른 프로그래밍 언어에서 뛰어난 기능을 많이 도입
˙ 불특정한 데이터 길이의 제약 없이 강력한 문자열 처리 기능 제공
파이썬
(Python)
˙ 인터프리터 방식이자 객체지향적이며 배우기 쉽고 이식성이 좋은 것이 특징
˙ 다양한 플랫폼에서 사용 가능, 라이브러리가 풍부
˙ 들여쓰기를 사용하여 블록을 구분하는 문법 채용
자바스크립트
(Javascript)
˙ 객체 기반의 스크립트 프로그래밍 언어
˙ 웹 브라우저 내에서 주로 사용, 다른 응용 프로그램의 내장 객체에도 접근할 수 있는 기능이 존재
˙ 프로토타입의 개념이 존재
배시
(Bash)
˙ sh와 대부분 호환, 리눅스에 기본 탑재.
˙ 제어문에는 조건을 위한 if, 반복을 위한 for, while이 있음
베이직
(Basic)
˙ 교육용으로 개발된 언어
˙ 다양한 종류의 베이직 언어가 존재하며 문법 차이가 큼

 

#. 선언형 언어

- 선언형 언어는 선언형 프로그래밍을 사용하여 해법을 정의하기보다는 문제를 설명하는 언어

- 선언형 언어는"무엇"을 할 것인지에 중점을 둔다.

 

#. 선언형 언어 유형

- 함수형 언어

- 논리형 언어

 

 

[3] 라이브러리 활용

 

#. 라이브러리 (Library)

- 라이브러리는 효율적인 프로그램 개발을 위해 필요한 프로그램을 모아 놓은 집합체.

- 라이브러리는 모듈과 패키지를 총칭하며 모듈이 개별 파일이라면 피키지는 파일들을 모아 놓은 폴더라고 볼 수 있다.

 

#. 라이브러리 구성

구성 설명
도움말 라이브러리를 사용할 수 있도록 하는 도움말 문서
설치 파일 라이브러리를 적용하기 위해 제공되는 설치 파일
샘플 코드 라이브러리를 이해하고 손쉽게 적용하기 위해 제공되는 샘플 소스 코드

 

#. 라이브러리 종류

종류 설명
표준 라이브러리 ˙ 프로그래밍 언어가 기본적으로 가지고 있는 라이브러리를 의미
˙ 각 프로그래밍 언어의 표준 라이브러리는 여러 종류의 모듈과 패키지를 가지며, 표준 라이브러리를 이용하면 별도의 파일 설치 없이 날짜와 시간 등의 기능을 이용할 수 있음
외부 라이브러리 ˙ 표준 라이브러리와 달리 별도의 파일 설치
˙ 외부 라이브러리는 누구나 개발하여 설치할 수 있으며, 인터넷 등을 이용하여 공유할 수도 있음

 

#. 표준 라이브러리

1) 입출력

- 핵심 입력과 출력 함수들을 정의

 

2) 문자열

- 문자열 처리 함수들을 정의

 

3) 시간 처리

- 데이터와 시간 처리 함수들을 정의

 

4) 수학

- 일반적인 수학 함수 정의

 

① 문자열 라이브러리 함수

- 문자열 함수를 사용하기 위해서는 string.h 헤더 파일을 include하여 사용한다.

함수 설명
strcat 문자열끼리 연결하는 함수
strcat(dest, src);   // src의 문자열을 dest 문자열 뒤에 붙임
strcpy 문자열을 복사하는 함수
strcpy(dest, src);   // src의 문자열을 dest 문자열에 복사
strcmp 문자열을 비교하는 함수
strcmp(s1, s2);   // s1 < s2 → -1, s1 == s2 → 0, s1 > s2 →1
strlen 문자열의 길이를 알려주는 함수
strlen(s);

 

② 표준 라이브러리 함수

- 표준 라이브러리 함수를 사용하기 위해서는 stdlib.h 헤더 파일을 include 하여 사용한다.

함수 설명
atoi 문자열을 정수형으로 변환하는 함수
atoi(str);    // 문자열을 정수형으로 변환
atof 문자열을 실수형으로 변환하는 함수
atof(str);    // 문자열을 실수형으로 변환
itoa 정수형을 문자열로 변환하는 라이브러리 함수
itoa(value, str, radix);    // value를 변환하여 str에 radix 진수로 저장

 

③ 수학 라이브러리 함수

수학 라이브러리 함수를 사용하기 위해서는 math.h 헤더 파일을 include하여 사용한다.

함수 설명
ceil 소숫점 올림 함수
ceil(n);    //소숫점 올림
floor 소숫점 내림 함수
floor(n);  // 소숫점 내림

 

#. 데이터 입출력

- 데이터 입출력은 프로그램으로 데이터가 입력 및 프로그램으로부터 데이터가 출력되도록 하기 위한 기법이다.

 

#. 데이터 입출력 구성

- 표준 입력

- 표준 출력

- 표준 오류

 

#. 예외 처리

- 예외 처리는 오류가 발생 시 오류를 그대로 실행시키지 않고 오류에 대응하는 방법으로 처리하는 프로그래밍 기법이다.

 

#. 예외처리 구성

구성 설명
throw ˙ 프로그램이 정상적으로 실행될 수 있는 상황일 때 예외를 던짐
˙ 강제로 예외를 발생시키는 경우레 사용하는 명령
try ˙ 예외가 발생할만한 코드 블록을 지정
˙ try{ }괄호 안에 예외 처리 대상 코드를 작성
˙ 블록 안에서 예외가 발생했을 때 throw 명령으로 예외를 던짐
catch ˙ if-else문처럼 try-catch문으로 한 쌍으로 쓰임
˙ try안에서 throw한 예외 객체에 대한 예외 처리
˙ catch 블록을 예외 핸들러라고 부름

 

#. 예외처리 사용 예시

try{
   if(예외조건)
	 throw 예외객체;
}
catch (타입 예외객체){
   예외처리;
}

 

#. 프로토타입

- 프로토타입은 속성과 메서드를 다른 클래스의 인스턴스 혹은 빈 객체에 추가하는 작업을 덜 수 있는 프로그래밍 스타일이다.

- 객체지향 프로그래밍과 달리 클래스를 명확히 정의하지 않아도 된다.

 

#. 프로토타입 구성

- 복제

- 객체 생성

- 마스터 객체