컴파일러나 인터프리터(둘다 번역기의 일종)에 의해 저급 프로그래밍 언어로 번역되어 실행된다.
여러가지 환경에서 사용이 가능하다.
절차 지향적 언어와 객체 지향적 언어가 존재한다.
절차 지향적 언어 - 모든것을 순차적으로 진행하는 것
객체 지향적 언어 - 모든것을 객체로 사용하는 것
Object Oriented Programming(OOP) 즉, 객체지향프로그램의 4가지 특성
- 우선 4가지의 특성을 말하기전 Class 와 Object 에 대해서 알아보자
class : 같은 특성을 지닌 여러 객체를 총칭하는 집합의 개념이다. 쉽게 붕어빵 틀이라고 생각해보자.(추상적이다)
object : class가 구체적인 실체인 instance가 되었을때 객체라고 한다.
1. Encapsulation(캡슐화)(정보은닉)(재사용)
특정 객체가 독립적으로 역할을 수행하기 위해 필요한 데이터와 기능을 하나로 묶은 것이다.
변수와 함수같이 분산되어 있는 애들을 재활용 하기 힘들다. 하지만 캡슐화를 하면 재활용하기 쉬워진다.
2. Inheritance(상속)(재사용 + 확장)
라이브러리를 통해서 남이 짜놓은 소스코드를 가져와 사용할수 있다. 하지만 의도에 맞게 수정하게 되면 다른 라이브러리가 되어 작동하지 않거나 불필요한 코드의 수정작업이 필요하다. 그렇기에 Inheritance 를 사용한다.
✓ 부모클래스의 속성과 기능을 그대로 가져와 사용할수 있고 필요에 따라 기능을 변경할경우 자식클래스의 해당 기능만 수정해주면 된다.
3. Abstrction(추상화)(모델링)
추상화란 필요로 하는 정보만 표현해줌으로써 공통의 속성이나 기능을 묶어서 이름을 붙이는 것이다.
ex) 전화기 - 우리는 번호를 누르고 말을하면되지만 그 안에서는 다양한 기능들이 실행되고있다.
4.Polymorphism(다형성)(사용편의)
오버라이딩과 오버로딩이 여기에 해당된다. 오버라이딩은 부모클래스의 메소드와 같은 시그니처(이름,인자)로 메소드를 재정의 하는 것을 말하고 오버로딩은 메소드의 이름만 같고 시그니처가 다른 것을 말한다.
클래스 중에 부모 자식 관계로 엮이지 않았다면 각각의 클래스 안에서 변수 명이나 메소드 명이 다른 클래스에 선언된 이름과 같아도 된다.
5분 컨셉이 좋네여