Programming/JAVA

📌 자바(Java)란 무엇인가? 객체지향 프로그래밍의 대표 주자

추천캐릭터 2022. 10. 27. 21:51
728x90
반응형

🧭 목차

  1. 자바(Java)란?
  2. 자바의 주요 특징
  3. 자바의 객체지향 4대 특성

1. 자바(Java)란?

자바(Java)는 1995년, **썬 마이크로시스템즈(Sun Microsystems)**의 **제임스 고슬링(James Gosling)**을 비롯한 연구진들이 개발한 객체 지향 프로그래밍 언어입니다.

원래는 가전제품의 내장 소프트웨어를 위해 개발되었지만,
지금은 웹 애플리케이션, 모바일 앱(Android), 데스크톱 앱
다양한 분야에서 가장 널리 사용되는 언어 중 하나입니다.


2. 자바의 특징

● 객체 지향 언어 (Object-Oriented)

  • 절차 지향과 달리 기능 단위를 **객체(Object)**로 구성
  • 객체 간 협력으로 프로그램 동작
  • 유지보수 및 재사용에 유리

● 인터프리터 + 컴파일 언어

  • .java → 컴파일 → .class(바이트 코드) → JVM에서 실행
  • 실행 시 인터프리트 방식으로 동작

● 플랫폼 독립성

  • 한번 작성하면 어떤 OS에서도 실행 가능
  • 이유: **JVM(Java Virtual Machine)**이 각 OS에 맞게 동작

● 자동 메모리 관리 (Garbage Collection)

  • 개발자가 직접 메모리 해제할 필요 없음
  • 불필요한 객체는 GC가 자동 정리

● 멀티 쓰레딩 지원

  • 여러 작업을 동시에 처리 가능
  • 운영체제마다 쓰레드 API가 달라도, 자바는 자바 API로 일관성 유지

● 동적 바인딩

  • 필요한 객체만 생성
  • 런타임에 동적으로 클래스 및 메소드 결정

3. 자바의 객체지향 4대 특성

🔒 캡슐화 (Encapsulation)

  • 관련 데이터와 메소드를 클래스로 묶음
  • 외부 접근 제한 (정보 은닉)
접근 제어자설명
public 외부/내부 모두 접근 가능
protected 상속받은 클래스에서 접근 가능
default 같은 패키지 내에서 접근 가능
private 클래스 내부에서만 접근 가능
 

👪 상속 (Inheritance)

  • 기존 클래스(부모)의 기능을 재사용
  • 자식 클래스는 extends 키워드로 상속
  • 모든 클래스는 Object 클래스 상속
  • 자바는 단일 상속만 허용
  • Is a: 상속 관계 (예: Student is a Person)
  • Has a: 포함 관계 (예: Car has a Tire)

📦 추상화 (Abstraction)

  • 공통된 속성과 기능만 추출
  • 복잡한 구현은 감추고, 필요한 인터페이스만 공개
  • 추상 클래스 또는 인터페이스로 구현

🔄 다형성 (Polymorphism)

  • 하나의 인터페이스로 다양한 구현
  • 대표적인 두 가지 형태:

▪ 오버라이딩 (Overriding)

  • 부모 메소드를 재정의
  • @Override 어노테이션 사용
  • 조건: 이름, 매개변수, 리턴타입 동일

▪ 오버로딩 (Overloading)

  • 같은 이름의 메소드를 여러 버전으로 정의
  • 조건: 매개변수의 수나 타입이 달라야 함

✅ 마무리

자바는 배우기 쉬우면서도, 실무에서 가장 강력한 도구 중 하나입니다.
웹 백엔드, 안드로이드 앱, 클라우드 서비스 등 어디서나 만나볼 수 있죠.
객체지향의 강력한 특성과 다양한 기능들 덕분에 오늘날도 여전히 인기 있는 언어입니다.

 

💡 다음 포스팅 예고


✅ JVM, JDK, JRE 차이 완전 정리

728x90
반응형