[프로그래밍] 객체지향 언어의 특징과 C++ 과 Java 의 차이
객체지향 언어
코드내의 '변수' 및 '함수'를 하나의 객체로 묶고, 이들을 조합하여 프로그램이 실행되도록 하는 것.
명령과 데이터를 가진 객체들을 조합하여 프로그램을 구성한다.
객체지향 언어의 특징
캡슐화 : 객체의 '필드'(변수) 와 '메소드'(명령) 의 접근 권한을 설정하여 데이터의 보안이 가능.
상속 : 부모클래스의 속성과 메서드를 상속 받는 자식클래스를 만들 수 있다.
이를 통해 코드의 재사용이 가능하다. (코드의 중복을 줄일 수 있음.)
추상화 : 공통의 속성이나 기능을 묶어 이름을 붙이는 것.
다형성 : 같은 타입의 객체이지만, 각 객체별로 서로 다른 기능을(역할을) 수행 할 수 있는 것.
1. C++
C언어의 확장이라는 개념으로 C++이라 명명.
시스템 프로그래밍에 적합. Java 에게 영향을 줌
2. Java
C++언어로 부터 나와 문법적으로 유사하다.
JVM을 사용하여 플랫폼의 제약으로 부터 비교적 자유롭다.
[ C++과 Java의 차이 ]
C++은 부호없는 연산을 지원하지만, Java는 지원하지 않는다.
C++은 메모리 관리를 명시적으로 해주어야 하지만, Java는 가비지 컬렉터를 이용하여 메모리 관리가 용이하다.
C++은 형변환이 대해 비교적 관대하지만(자동 형변환), Java는 엄격하다(명시적 형변환).
C++은 다중상속이 가능하지만, Java는 다중상속이 불가능하다.(대신 Interface를 통해 구현할 수 있다)
C++은 플랫폼에 종속적(플랫폼에 따라 다시 재 컴파일 하여야함), Java는 JVM을 이용하여 독립적(어느 플랫폼이든 실행 가능)