And Brain said,

[Java] 자바로의 회귀 - [1] : 객체지향 본문

IT/Java & Kotlin & Spring boot

[Java] 자바로의 회귀 - [1] : 객체지향

The Man 2022. 10. 2. 06:49
반응형

 

 

최근 파이토치 책만 읽다가 오랜만에 나의 모국어같은 자바 책을 폈더니, 너무나 편안한 느낌이 들었다.

 

이제서야 부족했던 이론을 볼 준비가 된 것 같다.

 

그럼 시작하기에 앞서 여러분은 객체지향이론을 아는가?

 

세계는 사물로 이루어져 있으며, 발생하는 모든 사건들은 사물간의 상호작용이다.

 

500년전 철학자나 할 소리인 이 말이 객체지향이론의 기본개념이다.

 

이 개념을 적용한 객체지향언어 자바의 클래식한 멋을 느껴보시길.

 

시작하자.

 

 

 

Java

 

Write once, Run anywhere

 

 

JVM (Java Virtual Machine)

 

JVM은 플랫폼 독립적으로, JVM이 실행 가능한 환경이라면 어디서든 Java 프로그램이 실행될 수 있도록 한다. 즉, Java의 모토인 Write once, Run anywhere는 JVM을 통해 가능한 것이다.

 

 

 

객체지향언어

 

객체지향언어의 가장 큰 장점은 코드의 재사용성이 높고 유지보수가 용이하다는 것이다.

 

 

 

클래스와 객체

 

클래스란 객체를 정의해 놓은 것이며, 객체를 생성하는데 사용된다. 또한 클래스는 단지 객체를 생성하는데 사용될 뿐, 객체 그 자체는 아니다.

 

JDK에서는 프로그래밍을 위해 많은 수의 유용한 클래스(Java API)를 기본적으로 제공하고 있다.

 

 

 

객체와 인스턴스

 

클래스로부터 객체를 만드는 과정을 클래스의 인스턴스화라고하며, 어떤 클래스로부터 만들어진 객체를 그 클래스의 인스턴스라고 한다.

 

인스턴스는 참조변수를 통해서만 다룰 수 있으며, 참조변수의 타입은 인스턴스의 타입과 일치해야한다.

 

참조변수에는 하나의 값(주소)만이 저장될 수 있고 여러 개의 인스턴스를 참조하는 것은 불가능하다.

 

여러 개의 참조변수가 하나의 인스턴스를 참조하는 것은 가능하다.

 

 

 

속성과 기능, 객체의 구성요소

 

객체는 속성과 기능의 집합이다. 그리고 객체가 가지고 있는 속성과 기능을 그 객체의 멤버라 한다.

 

그리고 이런 객체를 정의한 것이 클래스이므로 클래스에는 객체의 모든 속성과 기능이 정의되어있다.

 

 

속성(property)

 

멤버변수, 특성(attribute), 필드, 상태(state)

 

 

기능(function)

 

메서드, 함수, 행위

 

 

 

 

객체 배열

 

참조변수들을 하나로 묶은 참조변수 배열.

 

객체 배열을 생성하는 것은 그저 객체를 다루기 위한 참조변수들이 만들어진 것이니 객체를 생성해서 객체 배열의 각 요소에 저장해야한다.

 

 

 

클래스의 다른 정의

 

1. 클래스 = 데이터와 함수의 결합 (구조체 + 함수)

 

변수와 함수의 유기적 결합

 

2. 클래스 = 사용자정의 타입

 

기본 자료형(primitive type) 외에 프로그래머가 서로 관련된 변수들을 묶어 하나의 타입으로 추가하는 것.

 

자바와 같은 객체지향언어에서는 클래스가 곧 사용자 정의 타입이다.

 

 

 

 

참고

 

Java의 정석 - 남궁 성 지음

 

 

 

Thanks for watching, Have a nice day.

 

반응형
Comments