서비스 기획자의 성장기록

[Java] 01. 객체지향 프로그램 & Java 개요 본문

Java

[Java] 01. 객체지향 프로그램 & Java 개요

Jenny Noh 2024. 1. 15. 18:24

   객체지향 프로그램

객체지향 프로그래밍(Object Oriented Programming)이란?

: 프로그래밍을 데이터를 입력하고 순서대로 처리한 후 결과를 도출하는 명령어들의 목록으로 보는 시각에서 벗어나 

여러 독립적인 부품들의 조합, 객체들의 유기적인 협력과 결합으로 파악하고자 하는 컴퓨터 프로그래밍의 패러다임

>> 코드를 모듈처럼 짜는 것

 

객체 (Object)

  - 객체지향 프로그래밍의 가장 기본적인 단위

  - 객체란 '모든 실재하는 대상'으로 유, 무형의 대상

  - 한 실체를 구성하는 명사적인 요소와 동사적인 요소의 집합

       - ex. 볼펜: 펜심, 잉크, 볼, 케이스, 쓴다, 누른다 ...등

 

  객체지향 언어의 특징

1) 추상화 (Abstraction)

: 객체의 속성과 behavior를 추출하는 것 (공통된 속성과 기능을 추출하여 객체로 표현)

   - 데이터 추상화: 객체화 시키는 것

   - 메서드 추상화: 동작을 추출하는 것

 

2) 상속 (Inheritance)

: 기존에 정의되어 있는 클래스를 재활용하여 새로운 클래스를 작성하는 문법 요소

 

3) 다형성 (Polymorphism)

: 어떤 객체의 속성이나 기능이 상황에 따라 여러가지 형태를 가질 수 있는 성질

 

4) 캡슐화 (Encapsulation)

: 클래스 외부에서 객체의 추상화 (객체의 속성들)을 조회하지 못하게 하는 것

  - 데이터 보호 (data protection)

  - 데이터 은닉 (data hiding)

 

 

  Java 언어 특징

  - Java는 중간코드(바이트코드)를 사용한다.

  - 객체지향언어의 특징인 상속, 캡슐화, 다형성을 완벽하게 지원한다.

  - C언어에서 제공하는 구조체(structure), 공용체(union), 메소드 디폴트 파라미터 기능이 제공되지 않는다.

  - 다중상속이나 연산자 재정의 같은 복잡한 문법이 제거되었다.

  - 인터넷을 주 목적으로 개발한 언어로 네트워크와 멀티 스레드를 기본적으로 지원한다.

  - Garbage Collector을 이용하여 자동으로 메모리를 관리하기 때문에 메모리 누수 (memory leak)의 위험이 제거되어 신뢰성, 안정성이 높다.

 

 

  Java 구성요소

  - 클래스: 자바 프로그램의 기본 단위

  - 생성자: 멤버 변수의 초기화 등에 사용되는 메서드의 일종

  - 메서드: 클래스에서 실행되는 작업

  - 변수: 데이터를 저장하는 공간 (자바에는 전역변수가 없고 멤버변수와 지역변수만 존재한다.)

 

 

  Java 문법 주의사항

  - Java는 대소문자를 구분한다.

  - 명령문(statement)은 반드시 세미콜론(;)으로 종료한다.

  - 공백이나 탭의 제한이 없다.

  - 프로그램의 기본 단위는 클래스(class)로 선언문, 명령문 등은 모두 클래스 내부에 존재해야한다.

  - 클래스 명은 파일명과 동일해야한다.

  - 하나의 파일은 여러개의 클래스를 가질 수 있다.

  - main() 메소드를 가진 클래스가 public 키워드를 가진다.

 

 

  Java의 명명규칙 (Naming Rules)

1) PascalCase (파스칼 케이스)

: 클래스 명, Exception

 

2) camelCase (카멜 케이스)

: 변수, 메서드

 

3) UPPER_CASE (어퍼 케이스)

: 상수변수

 

4) kebab-case (케밥 케이스)

: 파일명, 폴더명