개발저장소
[Java] Java란? 본문
1. Java
Java는 썬 마이크로시스템즈에서 개발한 객체 지향적인 프로그래밍 언어이다.
특징
- JVM(Java Virtual Machine) 위에서 동작하기 때문에 운영체제와 상관없이 동작한다.
- 객체 지향 프로그래밍에 적합한 언어이다. (Object Oriented Programming, OOP)
- Garbage Collector가 메모리를 자동으로 관리한다.
2. 객체 지향 프로그래밍이란?
어떤 제품을 만들 때 부품을 만들고 이를 조립해서 완제품을 만든다.
마찬가지로 소프트웨어를 개발할 때도 객체를 먼저 만들고 이를 조립해서 프로그램을 만드는 기법을
객체 지향 프로그래밍 Object Oriented Programming, OOP라고 한다.
객체 (Object)
객체는 물리적으로 존재하거나 개념적인 것 중에서 다른 것과 식별 가능한 것을 말한다.
객체는 속성과 동작으로 구성되며, 자바에서는 이것을 필드(field)와 메서드(method)라고 한다.
- 사람: [속성] - 이름, 나이 / [동작] - 먹다, 말하다
- 자동차: [속성] - 색깔, 속도 / [동작] - 달리다, 멈추다
객체 지향 프로그래밍의 특징
- 캡슐화(Encapsulation): 객체의 데이터와 동작을 하나로 묶고 실제 구현 내용을 외부에 감추는 것을 말한다. 외부 객체는 객체 내부의 구조를 알지 못하며 객체가 노출해서 제공하는 필드와 메서드만 이용할 수 있다. 필드와 메서드를 캡슐화해서 보호하는 이유는 외부의 잘못된 사용으로 인해 객체가 손상되지 않도록 하는 데 있다. 접근 제한자를 사용한다면 캡슐화된 멤버를 노출시키거나 숨길 수 있다.
- 상속(Inheritance): 객체 지향 프로그래밍에서는 상위 객체와 하위 객체를 부모와 자식의 관계에 빗대어 표현한다. 부모 객체의 필드와 메서드를 자식 객체에게 물려주어 사용할 수 있도록 한다.
코드의 재사용성을 높여주고 유지 보수에 걸리는 시간을 최소화할 수 있는 장점이 있다. - 다형성(Polymorphism): 사용 방법은 동일하지만 실행 결과가 다양하게 나오는 경우가 있다. 하나의 타입에 여러 객체를 대입할 수 있는 성질로, 이를 구현하기 위해서는 자동 타입 변환과 재정의 기술이 필요하다. 이는 상속과 인터페이스를 통해 이뤄진다.
- 추상화(Abstraction): 사물의 공통적인 특성을 파악하고 하나의 집합으로 만드는 것을 말한다. 불필요한 세부 사항을 제거하고 중요한 부분을 강조하여 단순한 구조로 만든다. 클래스를 정의하는 것을 추상화라고 볼 수 있다.
'Programming Language > Java' 카테고리의 다른 글
[Java] 클래스 - 2 (0) | 2024.04.30 |
---|---|
[Java] 클래스 - 1 (0) | 2024.04.26 |
[Java] 제어문 (0) | 2024.04.10 |
[Java] 연산자 (0) | 2024.04.10 |
[Java] 변수와 타입 (0) | 2024.03.29 |