본문 바로가기
공부/정보처리기사

정처기 데일리공부03 - 함수,클래스, 상속, 프로그래밍 언어별 특성

by 매니션 2021. 7. 1.

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.프로그래밍 언어의 언어별 특성

#### 절차형 프로그래밍 언어

- 프로시저 호출의 개념을 바탕으로 하고 있는 프로그래밍 언어 ( =명령형 프로그래밍 언어)
- 명령어들이 절차적으로 실행되는 프로그래밍 방식

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

- 객클매
  - 객체 : 개체, 속성, 메서드로 구성된 클래스의 인스턴스
    - (개속매)
    - 개체 : 현실 세계에서 보이는 본질
    - 속성 : 자료 저장소 역할을 하며, 절차 지향 프로그래밍의 변수와 대응
    - 메서드 : 호출 단위를 의미하며, 절차 지향 프로그래밍의 함수와 대응
  - 클래스 : 객체지향 프로그래밍에서 객체를 표현하는 추상 데이터타입으로 객체를 생성하는 틀
  - 메시지 : 객체 간의 통신
반응형

댓글