정보처리기사

[정보처리기사] 프로그래밍 언어

hminor 2023. 7. 3. 21:29

 

(필요한것만 정리했음...)

프로그래밍 언어 

C 언어

  • C
    • 자료형
      • 문자형
        • Char: 1 Byte
          • Ascii Code를 사용
      • 정수형
        • short: 2 Byte
        • int: 4 Byte
        • long: 4 Byte
        • long long: 8 Byte
      • 실수형
        • float: 4 Byte
        • double: 8 Byte
        • long double: 8 Byte
  • Java
    • 자료형
      • 논리형
        • boolean: 1 Byte
      • 문자형
        • char: 2 Byte
          • Unicode를 사용해 C언어보다 더 많은 문자를 사용할 수 있음
      • 정수형
        • byte: 1 Byte
        • short: 2 Byte
        • int: 4 Byte
        • long: 8 Byte
      • 실수형
        • float: 4 Byte
        • double: 8 Byte
  • 연산자
    • 논리 연산자
      • &&: AND
      • ||: OR
      • !: Not
    • 비트 연산자
      • &: 비트간 AND
      • |: 비트간 OR
      • ~: 비트 Not
        • 현재 숫자에서 1 더하고 부호를 반대로
        • ex) ~9 ⇒ -(9+1) ⇒ -10
        • ex) ~-10 ⇒ -(-10+1) ⇒ 9
      • ^: 비트 XOR
        • 비트 간 서로 반대의 경우만 True
        • ex) 10^7
        • (10 = 1010, 7 = 111) =⇒ 1101 ⇒ 13
      • <<: 좌 비트 이동
      •  
      • : 우 비트 이동

  • 삼항 연산자
    • (조건)?x:y
      • ex) 10>3?10:3 =⇒ 10
  • 입출력 함수
    • %d: 10진수
    • %o: 8진수
    • %x: 16진수
      • 10부터 15까지 A~F
    • %f: 실수
    • %c: 문자1개
    • %s: 문자열
  • 함수
    • 변수의 유효범위
      • 정적 변수(Static Variable)
        • 단 한 번만 초기화 되고, 프로그램이 종료되어야 메모리에서 사라짐
  • 배열과 포인터
    • 1차원 배열
      • ex) int jumsu[3]
      • sizeof(jumsu)/sizeof(int)
        • int 는 4byte기에 jumsu는 12byte가 되어 결과는 3이 된다.
    • 포인터
      • 개념
        • 메모리의 주소값을 저장하는 변수, 포인터 변수라고도 한다.
      • 포인터 관련 연산자
        • &(주소 연산자)
        • *(참조 연산자)
  • 구조체
    • 개념
      • 여러 변수들을 모아서, 하나의 객체를 구성할 때 사용하는 사용자 정의 타입 객체
    • 구조
      • struct 구조체명 { 멤버변수1, 멤버변수2 }
    • 따로 구조체를 생성하지 않고 바로 사용하려면
      • struct 구조체명 { 멤버변수1, 멤버변수2 } test
        • 위와 같이 test로 명명하게 되면 test.멤버변수1, test.멤버변수2 이렇게 사용할 수 있다.

JAVA

  • 기본 구성
    • 접근 지정자
      • public: 접근 제한 없음 (모두 가능)
      • protected: 동일 패키지와 상속 받은 클래스
      • default: 동일 패키지
      • private: 동일 클래스
  • 객체지향 특징
    • 예외처리(Exception Handling)
      • try
      • catch
      • finally: 에러가 있든 없든 있다면 무조건 실행 해야함
  • 추상클래스와 인터페이스(껍데기, 기능구현 X)
    • 추창클래스(Abstract Class)
      • 반드시 오버라이딩해서 사용할 미완성의 메서드를 하나 이상 가진 미완성 클래스
      • 추상클래스를 상속받은 자식 클래스에서 추상 메서드를 구현해서 사용한다
      • 추상 클래스는 객체를 생성할 수 없다.
    abstract class Remote {
    	public int volume = 10
    	public int channel = 1
    	public void volume_up(){
    		this.volume++
    	}
      // 아래와 같이 abstract가 붙은 메서드가 미완성 메서드(틀만 구성된 메서드)
    	abstract void channel_change(int i)
    }
    
    class TV_Remote extends Remote{
    // 위에서 미완성되어 있는 메서드를 구현
    	void channel_change(int i){
    		channel = i
    	}
    }
    
    • 인터페이스
      • 추상클래스의 극단으로 모든 메서드가 추상적인 형태
      • 추상클래스에서는 하나 이상 미완성 클래스를 가지면 되는거였지만 인터페이스는 하나도 가지면 안됨.
    interface Remote {
    	public void volume_up()
    	public void channel_change(int i)
    }
    
    // interface는 위에서 언급한것처럼 구현이 되어있는게 없어서
    // abstract처럼 extends로 상속이 아니라 
    // implements로 구현을 해야한다.
    class TV_Remote implements Remote {
    	public int volume = 10
    	public int channel = 1
    	public void channel_change(int i){
    		this.channel = i
    	}
    	public void volume_up(){
    		this.volume++
    	}
    }