연산자
- 프로그램 실행을 위해 연산을 표현하는 기호
- 산술연산자 : +, -, *, /, /, %
- 시프트 연산자 : >>, <<
- 관계 연산자 : >, <, >=, <=, ==, !=
- 논리 연산자 : &&, !!
- 비트 연산자 : &, |, ^, ~ (AND, OR, XOR, NOT)
- 대입 연산자 : =, +=, -=, *=, /=, %=
- 증감 연산자 : ++x, x++, --x, x--
- 삼항 연산자 : 조건 ? 참일때 : 거짓일때
표준출력
- C++
#include<iostream>
using namespace std;
void main(){
cout << "Hello" << endl << "개행";
cout << 10;
}
- JAVA
public static void main(String[] args){
System.out.print("%d", 10);
}
표준입력
- C
: scanf("%s", &a);
ㆍ포맷스트링
: %c(문자) / %s(문자열) / %d(10진수) / %x(16진수) / %o(8진수) / %f(실수)
- C++
: cin >> a;
: cin >> a >> b;
- JAVA
: Scanner 스캐너변수 = new Scanner(System.in);
: 변수 = 스캐너변수.nextInt();
: 변수 = 스캐너변수.nextFloat();
: 변수 = 스캐너변수.nextLine();
- Python
: 변수명 = input()
: 변수명 = eval(변수명) # 숫자 입력
명령어
if문
- C / C++ / JAVA
: if () {} else if () {} else {}
- Python
: if : elif : else :
Switch (C / C++ / JAVA)
- switch (식) { case 값 : 명령문; break; default : 명령문 }
while문
- C / C++ / JAVA
: while (조건) {명령}
- Python
: while 조건 : 명령
for문
- C / C++ / JAVA
: for (초기 값; 최종 값; 증감 값) {명령문;}
- Python
: for 변수 in range (시작값, 끝값+1, 증감 값) : 명령문
: for 변수 in (반복횟수) : 명령문
루프제어 (C / C++ / JAVA / Python)
- break : 중단
- continue : 중단하고 다음 반복을 수행
사용자 정의 자료형
열거체 (C / C++ / JAVA)
- 서로 연관된 정수형 상수들의 집합
- 형식
class 열거체명(Enum) {
멤버1,
멤버2
};
구조체 (C / C++)
- 사용자가 기본 타입을 가지고 새롭게 정의할 수 있는 자료형
- 형식
struct 구조체명{
자료형 변수명1;
자료형 변수명2;
};
사용자 정의 함수
- C / C++ / JAVA
: int add(int a, int b){ 명령어; return a+b };
- Python
: def 함수명(변수명) : 명령어 return 반환값
재귀함수
- 자기 자신을 호출하는 함수
객체지향
접근제어자
- public : 외부의 모든 클래스에서 접근 가능
- protected : 같은 패키지 내부의 클래스 및 하위 클래스에서 접근 가능
- default : 패키지 내부의 클래스에서 접근 가능 (JAVA에만 존재)
- private : 같은 클래스 내에서만 접근 가능
클래스
- C++
class student{
private:
int age;
public:
string hello(string hi){
cout << "hello";
return age;
}
};
- JAVA
public class student{
private int age;
public String hello(String hi){
System.out.println("hihi %s", hi);
return age;
}
}
- Python
class student:
def __init__(self):
age = self.age;
def hello(self, hi):
print("hello", hi)
return age;
자기자신 참조
- C++
: this -> 변수명
: this -> 함수명(매개변수)
- JAVA
: this.변수
: this.함수(매개변수)
- Python
: self.변수
: self.함수명(매개변수)
클래스 선언
- C++
ㆍ일반변수
: 클래스명 변수(매개변수);
: 변수.메서드(매개변수);
ㆍ포인터변수 사용
: 클래스명* 변수 = new 클래스명(매개변수);
: 변수->메서드(매개변수);
: delete 변수 // 소멸
- JAVA
: 클래스명 변수 = new 클래스명(매개변수);
: 변수.finalize(); // 소멸
- Python
: 변수 = 클래스명(변수)
: del 변수 // 소멸
생성자 (Constructor)
- 클래스의 객체가 생성될때 자동으로 호출되는 특수 메서드
- C++
class student{
public:
student(int age, string name){
cin >> age;
cin >> name;
}
};
- JAVA
public class student{
public student(int age, String name){
Scanner sc = new Scanner(System.in);
age = sc.nextInt();
name = sc.nextLine();
}
}
- Python
class student:
def __init__(self, age, name):
age = eval(input())
name = input()
소멸자 (Destructor)
- 객체의 수명이 끝났을때 객체를 제거하기 위한 목적의 메서드
- C++
class student{
public:
~student(){
// 명령어
}
};
- JAVA
public class student{
public void finalize(int a){
// 명령어
}
}
- Python
class student:
def __del__(self):
# 명령어
상속
- C++
class Parent{ };
class Child : public Parent{ };
- JAVA
public class Parent{ }
public class Child extends Parent{ }
- Python
class Parent:
class Child(Parent):
오버로딩
- 동일한 이름의 메서드를 매개변수만 다르게 하여 재정의하는 것
- C++
class A{
public:
void fn(){
cout << "no" << endl;
}
void fn(int age){
cout << age << "age" << endl;
}
};
- JAVA
public class A{
void fn(){
System.out.println("Hello");
}
void fn(int age){
System.out.println("%d", age);
}
};
오버라이딩
- 하위 클래스에서 상위 클래스의 메서드를 재정의
- C++
class Parent{
public:
virtual void Hello(string name){
}
};
class Child : public Parent{
public:
virtual void Hello(string name){
}
};
- JAVA
class Parent{
public void Hello(String name){
}
}
class Child extends Parent{
public void Hello(String name){
}
}
- Python
class Parent:
def Hello(self, name):
class Child(Parent):
def Hello(self, name):
상위 클래스 접근
- C++
: 부모클래스::매서드명();
- JAVA
: super.메서드명();
- Python
: super().메서드명()
추상클래스
- 구현되지 않은 추상 메서드를 하나 이상 가지며, 자식 클래스에서 반드시 구현하도록 강제
- C++
class Parent{
public:
virtual void hello()=0;
};
- JAVA
abstract class Parent{
abstract void hello();
}
- Python
class Parent:
def hello(self):
pass
인터페이스 (only JAVA)
- JAVA의 다형성을 극대화하여 개발코드 수정을 줄이고 유지보수성을 높이기 위한 일종의 추상클래스
: 오직 추상 메서드와 상수만을 멤버로 가질 수 있음
: 하나도 구현된것이 없는 추상 클래스
- JAVA
interface A{
void hello();
}
public class B extends A{
public void hello(){
System.out.println("Hello");
}
}
'Certification > 정보처리기사' 카테고리의 다른 글
트랜잭션 (0) | 2021.04.11 |
---|---|
프로그래밍 개념 (0) | 2021.04.10 |
프로그래밍 기초 1 (자료형 ~ 식별자) (0) | 2021.04.10 |
인터페이스 구현 검증 (xUnit / STAF / FitNesse / APM) (0) | 2021.04.10 |
인터페이스 보안 (IPSec / SSL / S-HTTP) (0) | 2021.04.10 |