5. 사용자 정의 자료형 활용
열거체
서로 연관된 정수형 상수들의 집합
정수형 상수에 이름을 붙여 코드를 이해하기 쉽게 해줌
C,C++ = 초깃값 없으면 0부터 차례대로,
자바 = 값 지정 x 무조건 0부터
파이썬 = 무조건 값 지정
enum 열거체명{}
구조체
사용자가 기본 타입을 갖고 새롭게 정의할 수 있는 사용자 정의 자료형(다른 타입가능)
c, c++에서만 사용
struct 구조체명{}
6. 사용자 정의 함수
- 사용자가 직접 새로운 함수를 정의하여 사용하는 방법
7. 재귀함수
함수 자신이 자신을 부르는 함수
반환데이터타입 함수(타입 변수명, ... ){ 함수명(변수명, ...) return 반환값; }
return을 만나면 더이상 실행 x
8. 클래스
접근제어자
- 접근제어자 : 지정된 클래스, 변수, 메서드를 외부에서 접근할 수 있도록 권한을 설정하는 기능
- 접근제어자 종류
- public : 외부의 모든 클래스에서 접근 가능
- protected : 같은 패키지 내부에 있는 클래스, 하위 클래스에서 상속받은 경우
- default : 같은 패키지 내부(기본값, 자바에만 존재)
- private : 같은 클래스 내에서만 접근가능
클래스(생성자 / 소멸자)
클래스 : 객체지향 프로그래밍에서 특정 객체를 생성하기 위한 변수와 메소드를 정의하는 틀
변수와 메서드(함수) 형태로 구성
C에서는 없음(객체지향 아님)
클래스 선언
- 클래스를 일반변수로 선언한 경우 선언함과 동시에 '생성자'가 호출되고, 종료되면 '소멸자'가 호출
- 클래스를 포인터변수로 선언한 경우 'new'키워드를 이용해 선언함과 동시에 생성자가 호출되고, 'delete' 키워드를 이요해 해당 변수의 저장 공간을 삭제하면 소멸자가 호출됨
- 클래스 선언 / 종료
- C++ : new / delete
- 자바 : new / finalize() (함수)
- 파이썬 : x / del
클래스 내부의 객채
- 생성자 : 해당 클래스의 객체가 생성될 때 자동으로 호출되는 메서드 / 변수를 초기화
- 소멸자 : 객체의 수명이 끝났을 때 객체를 제거하기 위한 목적으로 사용되는 메서드
- 생성자 / 소멸자
- C++ : 클래스명과 동일 / ~클래스명()
- 자바 : 클래스명과 동일/ finalize()
- 파이썬 : _ _init _ _ / _ _ del _ _
상속
어떤 객체가 있을 때 그 객체의 변수와 메서드를 다른 객체가 물려받는 기능
문법
C++ 자식클래스명 : public 부모클래스명{} 자바 자식클래스명 extends 부모클래스명{} 파이썬 자식클래스명(부모클래스명)
오버로딩
- 동일 이름의 메서드를 매개변수만 다르게 하여 여러 개 정의할 수 있는 기능
- 특징
- 메서드명 동일
- 매개변수 개수 달라야함
- 매개변수 개수 같을경우, 데이터 타입이 달라야함
- 반환형은 무관
오버라이딩
하위 클래스에서 상위 클래스 메서드를 재정의할 수 있는 기능
특징
- 오버라이드 하고자 하는 메서드가 상위클래스에 존재 해야함
- 메서드명 , 매개변수 개수, 데이터타입, 반환형 모두 동일해야함
C++ : virtual 키워드 필수(부모,자식 둘 중 하나는 반드시 있어야함) 자바,파이썬 : 별도의 키워드 x
상위클래스 접근
C++ : 콜론 두 번 // 부모클래스::메서드명()
자바 : super.메서드명()
파이썬 : super().메서드명()
추상클래스
- 구현되지 않은 추상 메서드를 한 개 이상 가지며, 자식 클래스에서 해당 추상 메서드를 반드시 구현하다록 강제하는 기능
인터페이스
자바의 다형성을 극대화하여 개발코드의 수정을 줄이고 프로그램의 유지보수성을 높이기 위한 문법
자바에만 존재
interface 클래스명{ 데이터타입 메서드명(); } //받을 경우 implements class B implements A{ 명령어 }
배열&포인터
2차원 배열
C, C++ 초깃값 O 타입 배열명[행 수][열 수]; int a[5][4]; // 20개 생성 초깃값 X 타입 배열명[행 수][열 수]={초깃값}
자바
초깃값 O 타입 [][]배열명 = new 타입[행 수][열 수];
타입 배열명[][] = new 타입[행 수][열 수];
초깃값 X 타입[][]배열명 = {초깃값}; int [][]a = new int[5][4]
### ch2 1.프로그래밍 언어의 언어별 특성
#### 절차형 프로그래밍 언어
- 프로시저 호출의 개념을 바탕으로 하고 있는 프로그래밍 언어 ( =명령형 프로그래밍 언어)
- 명령어들이 절차적으로 실행되는 프로그래밍 방식
#### 객체지향 프로그래밍 언어
- 객클매
- 객체 : 개체, 속성, 메서드로 구성된 클래스의 인스턴스
- (개속매)
- 개체 : 현실 세계에서 보이는 본질
- 속성 : 자료 저장소 역할을 하며, 절차 지향 프로그래밍의 변수와 대응
- 메서드 : 호출 단위를 의미하며, 절차 지향 프로그래밍의 함수와 대응
- 클래스 : 객체지향 프로그래밍에서 객체를 표현하는 추상 데이터타입으로 객체를 생성하는 틀
- 메시지 : 객체 간의 통신
반응형
'공부 > 정보처리기사' 카테고리의 다른 글
정보처리기사 필기 기출문제 출제유형 분석(22년 4월 기출) (0) | 2023.02.19 |
---|---|
클린코드와 TDD (0) | 2021.10.29 |
정처기 데일리공부 04 - SQL응용, 트랜잭션, DDL, DML, DCL (0) | 2021.07.01 |
정처기 데일리공부 02 - 변수,연산자,표준함수,명령문 종류 (4) | 2021.06.20 |
정처기 데일리 공부01 - 포맷스트링 종류 (2) | 2021.06.18 |
댓글