1.C와 Java의 차이점
C언어는 인간의 명령어를 컴퓨터가 수용할 수 있는 기계적 언어로 변환시켜주는 역할을 한다. 시스템 간 호환 및 이식성이 좋고 고급언어와 저급언어간의 인터페이스가 용이하다는 특징이 있다.
또한, 절차지향 프로그래밍의 대표적 언어로 컴퓨터의 작업 처리 방식과 유사하기 때문에 객체지향 언어를 사용하는 것에 비해 더 빨리 처리되어 시간적으로 유리하다.
JAVA는 인터넷의 분산환경에서 사용되도록 설계된 프로그래밍 언어이며 인터넷 환경 기반의 프로그램을 만들고 수행시킬 수 있는 응용 프로그램을 만들 수 있다.
또한, 객체지향 프로그래밍의 다표적인 언어로 특징으로는 캡슐화, 상속, 다향성등의 특성이 있다.
2.객체지향 언어의 특징
(1)캡슐화(Encapsulation)와 데이터은닉
·캡슐화는 어떤 클래스를 사용함에 있어 그 클래스가 제공하는 메소드의 기능만을 알고 그 기능만을 사용할 뿐 실제로 그 메소드가 어떻게 움직이는지 굳이 알 필요가 없다.(Loose coupling을 위하여)
·은닉화는 이 캡슐화 때문에 나오는 것인데 클래스의 속성들을 private로 만들어 클래서 밖에서 함부로 건드리지 못하게 하는 것을 말한다. 클래스를 사용함에 있어서 속성들에게 직접 접근하는 것은 데이터 무결성 오류 등 치명적일 수 있기 때문에 이를 접근하지 못하게 하고 대신 getter, setter 라고 부르는 메소드를 통해서 접근을 가능하게 하는 것을 말한다.
(2)상속(Inheritance)
부모클래스의 속성과 메소드를 자식클래스가 이어받는 것을 말한다.
이를 통해서 코드의 재사용성을 증대시킬 수 있으며 좀 더 폭 넓게 사용이 가능하다,
상속에는 extends하는 방법과 has~a 하는 방법이 있는데 extends는 모든 메소드를 오버라이드해야 한다는 단점이 있지만
has~a를 하게 되면 필요한 메소드만 가지고 올 수 있다는 장점이 있다.
(3)다형성(Polymorphism)
하나의 클래스나 메소드가 다양한 방식으로 동작이 가능한 것을 의마한다. 이러한 다형성에는 오버로딩과 오버라이딩이 존재한다.
→오버라이딩 : 상위 클래스를 상속받는 하위 클래스가 상위 클래스의 메소드를 사용하지 않고 하위 클래스에서 재정의하여 사용하는 것을 의미한다. 보통 재사용의 의미로 하위 클래스에서 사위클래스의 내용을 사용하는 게 일반적이지만 필요에 따라서 하위 클래스에서 상위클래스의 메소드 내용을 재정의하여 사용하는 것을 의미한다.
→오버로딩 : 같은 메소드 이름으로 다양한 입력에 대해서 처리할 수 있도록 한다. 같은 메소드 이름을 사용하면서 다른 인자 정보를 넘겨주면 인자 정보에 맞는 메소드가 호출된다.
'백엔드 취업준비' 카테고리의 다른 글
DBeaver와 Oracle 연결시 생기는 오류 (0) | 2024.09.24 |
---|---|
JDK와 JRE (0) | 2024.01.21 |