기출문제가 출제된 부분은 배경색으로 표시해 두었습니다
목차
1. 기본 문법 활용하기
기본 문법 활용하기
배열 선언
언어 | 구분 | 선언 |
C, C++ | 초깃값이 없는 경우 | 타입 배열명[배열_요소_개수]; int a[5] (쓰레깃값으로 초기화) |
초깃값이 있는 경우 | 타입 배열명[배열_요소_개수] = {초깃값}; int a[5] = {1, 2}; (1, 2를 제외한 나머지는 0으로 초기화) |
|
Java |
초깃값이 없는 경우 | 타입 []배열명 = new 타입[배열_요소_개수]; 타입 배열명[] = new 타입[배열_요소_개수]; int []a = new int[5]; int a[] = new int[5]; (초깃값을 선언하지 않을 경우 정수는 0, 실수는 0.0, 문자는 NULL로 초기화) |
초깃값이 있는 경우 | 타입 []배열명 = {초깃값}; int []a = {1, 2} (1, 2로 초기화) |
파이썬
세트(Set)는 중복된 원소를 허용하지 않는 집합의 성질을 가진 자료형
메소드 | 설명 |
세트명 = set([요소1, ...]) 세트명 = {요소1, 요소2, ...} |
세트형 선언 (a = {1, 1}과 같이 선언해도 a = {1}로 저장) |
add(값) | 값을 1개 추가 |
update([값1, 값2, ...]) | 여러 개의 값을 한 번에 추가 |
remove(값) | 특정 값을 제거 |
리스트(List)는 크기가 가변적으로 변하는 선형리스트의 성질을 가진 자료형
메소드 | 설명 |
리스트명 = [요소1, 요소2, ...] | 리스트형 선언 |
append(값) | 리스트 마지막 요소 뒤에 값을 추가 |
insert(인덱스, 값) | 리스트의 인덱스 위치에 값을 삽입 |
remove(값) | 리스트에 해당하는 값을 제거 (값이 여러 개 있을 경우 가장 앞에 있는 값을 제거) |
a[Index] | 리스트 인덱싱 첫번째 요소: 0, 두번째 요소: 1, ..., 마지막 요소: n-1 첫번째 요소: -n, 두번째 요소: -(n-1), ..., 마지막 요소: -1 |
a[시작_인덱스 : 종료_인덱스 : 스텝] | 리스트 슬라이싱 시작_인덱스 ~ (종료_인덱스-1) 까지의 원소들을 스텝만큼 슬라이싱 시작을 생략할 경우 처음부터, 종료를 생략할 경우 마지막까지 |
# List Insert 예시
a = [1, 2]
a.insert(0, 0) # 0번째 Index에 0이란 원소 추가
print(a)
-----------------------------------
# 출력 결과
[0, 1, 2]
튜플(Tuple)은 초기에 선언된 값에서 값을 생성, 삭제, 수정이 불가능한 형태의 자료형 (메소드는 리스트와 동일)
딕셔너리(Dictionary)는 키와 값으로 구성된 객체를 저장하는 구조의 자료형
메소드 | 설명 |
딕셔너리명 = {키1:값1, 키2:값2, ...} | 딕셔너리 선언 |
딕셔너리명[키] = 값 | 딕셔너리 요소 추가 |
del 딕셔너리명[키] | 딕셔너리 요소 삭제 |
식별자 표기법
💡 암기 TIP
카멜 표기법: 낙타 머리는 작고(첫 글자 소문자), 봉우리는 높음(나머지 대문자)
파스칼 표기법: 파스칼은 엄격하게 대문자
스네이크 표기법: 뱀 같은 언더바(_)
헝가리안 표기법: 헝가리 사람들은 형식을 중요시 함 (자료형 표시)
표기법 | 설명 | 예시 |
카멜 표기법(Camel Case) | 첫 단어 시작만 소문자로 표시, 각 단어의 첫 글자는 대문자 | inputFunction |
파스칼 표기법(Pascal Case) | 각 단어의 첫 글자는 대문자 표시 | InputFunction |
스네이크 표기법(Snake Case) |
여러 단어 사이에 언더바(_)를 넣음 | input_function |
헝가리안 표기법(Hungarian Case) | 두어에 자료형을 붙이는 표기법 (int형 = n, char형 = c, 문자열 = sz) |
nScore |
Switch 문
조건에 따라 여러 개의 선택 경로 중 하나를 취하고자 할 때 사용하는 명령어로, 파이썬에는 switch 문이 존재하지 않음
- 조건에 해당하는 case로 이동
- 해당하는 case가 종료되었을 때 break가 있으면 switch 문을 빠져나옴
- break가 존재하지 않을 경우 break를 만날 때 까지 다른 문장들을 실행
switch(식){
case 값:
명령문;
break;
default:
명령문;
}
접근제어자
지정된 클래스, 변수, 메서드를 외부(같은 패키지이거나 다른 패키지)에서 접근할 수 있도록 권한을 설정하는 기능
종류 | 설명 |
public | 외부의 모든 클래스에서 접근 가능 |
protected | 같은 패키지 내부에 있는 클래스, 하위 클래스에서 접근 가능 |
default | 접근 제어자를 명시하지 않은 경우로 같은 패키지 내부에 있는 클래스에서 접근 가능 |
private | 같은 클래스 내에서만 접근이 가능 |
클래스 정의
C++ 클래스 정의
class 클래스명{
private:
변수_타입 변수명;
public:
반환_데이터_타입 메서드명(데이터_타입 변수명, ...){
명령어;
return 반환값;
}
}
자바 클래스 정의
public class 클래스명{
private 변수타입_변수명;
public 반환_데이터_타입 메서드명(데이터_타입 변수명, ...){
명령어;
return 반환값;
}
}
파이썬 클래스 정의
class 클래스명:
def 메서드명(self, 변수명, ...):
명령어
return 반환값
클래스 선언
C++ 클래스 선언
C++에서는 일반변수로 선언한 경우 점(.)을 이용해 메소드에 접근하고, 포인터 변수를 사용하면 화살표(->)를 활용해 메소드에 접근
구분 | 설명 |
일반변수 | 클래스 클래스변수(매개변수); // 생성시 클래스변수.메소드(매개변수); // 클래스 내 메소드 사용 |
포인터 변수 사용 | 클래스 * 클래스변수 = new 클래스(매개변수); // 생성시 클래스변수->메소드(매개변수); // 클래스 내 메소드 사용 delete 클래스 변수; // 소멸시 |
자바 클래스 선언
구분 | 설명 |
생성시 | 클래스 클래스변수 = new 클래스(매개변수); |
소멸시 | 클래스변수.finalize(); |
파이썬 클래스 선언
구분 | 설명 |
생성시 | 클래스변수 = 클래스(매개변수) |
소멸시 | del 클래스변수 |
생성자(Constructor)
생성자는 해당 클래스의 객체가 생성될 때 자동으로 호출되는 특수한 종류의 메소드로, 일반적으로 클래스의 멤버 변수를 초기화하거나 클래스를 사용하는데 설정이 필요한 경우 사용
언어 | 생성자 |
C++, Java | 클래스명(데이터_타입 변수명, ...) (클래스명과 동일한 메소드 사용) |
Python | def __init__(self, 변수명, ...): (__init__이라는 메소드명 사용, 첫 번째 매개변수로 self를 사용) |
소멸자(Destructor)
객체의 수명이 끝났을 때 객체를 제거하기 위한 목적으로 사용되는 메소드
언어 | 소멸자 |
C++ | ~클래스명() |
Java | void finalize(매개변수) |
Python | def __del__(self): |
상속(Inheritance)
어떤 객체가 있을 때 그 객체의 변수와 메소드를 다른 객체가 물려받는 기능
언어 | 소멸자 |
C++ | class 자식_클래스명 : public 부모_클래스명 { |
Java | class 자식_클래스명 : extends 부모_클래스명 { |
Python | class 자식_클래스명(부모_클래스명): |
오버로딩(Overloading)
동일 이름의 메소드를 매개변수만 다르게 하여 여러 개 정의할 수 있는 기능으로, 파이썬은 오버로딩을 지원하지 않음
오버라이딩(Overriding)
하위 클래스에서 상위 클래스 메소드를 재정의 할 수 있는 기능으로, C++에서는 virtual 키워드가 있어야 오버라이딩이 가능
상위 클래스 접근
언어 | 소멸자 |
C++ | 부모_클래스::메소드명() |
Java | super.메소드명() |
Python | super().메소드명() |
추상 클래스
미구현 추상메소드를 한 개 이상 가지며, 자식 클래스에서 해당 추상 메소드를 반드시 구현하도록 강제하는 기능
언어 | 소멸자 |
C++ | virtual 데이터_타입 메소드명() = 0; |
Java | abstract class 클래스명 { abstract 데이터_타입 메소드명(); |
Python | class 클래스명: def 메소드명(self): pass |
'IT > 정보처리기사' 카테고리의 다른 글
정보처리기사 8단원(서버 프로그램 구현) 요약 (1) | 2021.07.05 |
---|---|
정보처리기사 7단원(SQL 활용) 요약 (0) | 2021.07.05 |
정보처리기사 5단원(인터페이스 구현) 요약 (0) | 2021.07.01 |
정보처리기사 4단원(통합 구현) 요약 (0) | 2021.06.30 |
정보처리기사 3단원(데이터 입출력 구현) 요약 (0) | 2021.06.29 |
댓글