[Java] 자바란?

자바

자바란?

썬 마이크로시스템즈에서 1995년에 개발한 객체 지향 프로그래밍 언어이다.

자바 특징

자바는 클래스 기반의 객체 지향 프로그래밍 언어입니다.

자바는 JVM(Java Virtual Machine)이 설치된 모든 플랫폼에서 실행할 수 있는 바이트코드로 컴파일할 수 있습니다. 이러한 플랫폼 독립성은 Java 응용 프로그램을 다양한 운영체제 및 하드웨어 아키텍처에서 이식할 수 있도록 합니다.

자바는 더 이상 사용되지 않는 프로그램의 메모리를 자동으로 해제합니다. 따라서 따로 메모리를 관리하지 않아도 되므로, 프로그래밍을 쉽게 할 수 있도록 도와줍니다.

객체 지향 프로그래밍(OOP)

객체 지향 프로그래밍은 데이터와 코드를 결합하는 객체 개념을 중심으로 소프트웨어 설계를 구성하고 구조화하는 데 중점을 둔 프로그래밍 패러다임입니다.

객체 지향 프로그램이 핵심 원칙

캡슐화(Encapsulation): 캡슐화란 데이터와 코드의 형태를 외부로부터 알 수 없게하고, 데이터의 구조와 역할, 기능을 하나의 캡슐형태로 만드는 방법입니다.

자바에서는 public, private, protecteddefault 와 같은 접근 제한자를 통해 필요한 정보만 외부로 노출시킬 수 있습니다. 또 다른 방법으로 모든 속성을 private 접근 제한자로 선언을 한 후 getter/setter 메서드를 통해 외부에서의 접근을 선택적으로 허용할 수 있습니다.

상속(Inheritance): 상속이란 기존 상위클래스에 기능을 가져와 재사용할 수 있으면서도 동시에 하위 클래스에 새로운 기능도 추가할 수 있는 것입니다.

자바에서 “eat()” 메서드가 정의되어 있는 “Animal” 클래스가 있다면 “Dog” 클래스는 “Animal” 클래스를 상속받아 “eat()” 메소드를 재사용하여 코드 중복을 줄이고 “bark()”라는 새로운 기능도 추가할 수 있습니다.

다향성(Polymorphism): 다형성을 사용하면 다른 유형의 객체를 공통 상위 클래스의 객체로 취급할 수 있습니다. 이를 통해 코드를 일반적이고 유연한 방식으로 작성할 수 있습니다. 객체를 상호 교환하여 사용할 수 있으므로 코드 재사용 및 코드를 유연하게 사용할 수 있는 방법이 제공됩니다.

자바에서 대표적인 다향성의 예로 오버라이딩과 오버로딩 있습니다. 오버라이딩은 부모 클래스의 메소드를 재정의한다고 생각하면 됩니다. 만약 “Dog”, “Cat” 클래스가 “makeSound()”라는 메서드를 가지고 있는 “Animal” 클래스를 상속받는다고 하겠습니다. 상속받은 “Dog” 클래스는 “makeSound()” 메서드의 구현부를 “멍멍 소리를 내다”로 재정의 할 수 있고, “Cat” 클래스는 “냐옹 소리를 내다”로 재정의 할 수 있습니다.

추상화(Abstraction): 객체의 공통적인 속성과 기능을 추출하여 정의하는 것입니다. 추상화를 통해 프로그래머는 구현 세부 정보를 지정하지 않고 객체의 공통 속성 및 동작을 정의하는 추상 클래스 또는 인터페이스를 만들 수 있습니다.

자바에서 “calculateArea()” 메소드가 있는 “Shape” 추상 클래스가 정의되어 있다면, “Rectagle” 클래스는 “Shape” 클래스를 확장하여 “calculateArea()” 메서드의 구현부를 “가로x세로”와 같이 자체 구현할 수 있습니다.


© 2023.06. by 고개

Powered by 고개