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

Sitehyun·2022년 12월 27일
0

IT Log

목록 보기
3/10
post-thumbnail

한파가 많이 풀린 것 같다. 저번주만 해도 롱패딩을 풀착에도 불구하고 추위에 벌벌 떨게 만드는 영하 10도의 한파였는데... 이제 영하 3도 정도는 버틸만 한 것 같다. 🤣

요번주는 java의 핵심이라 할 수있는 객체지향에 대해 공부해보겠다.
그럼 여느날과 같이 공부를 시작해보자!


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

세상은 객체로 이루어져있다. 당장 책상 위에만 보아도 우리가 사용하고 있는 컴퓨터부터 책상, 의자, 시계 심지어는 사람 등 모든 실재하는 대상을 프로그래밍 언어에서는 객체라고 표현한다.

객체지향 개념은 이 객체로 부터 시작되었다.즉, "실제 세계는 객체들로 구성되어 있고, 이 객체들의 상호작용을 통해 모든 사건이 발생된다." 를 전제로 놓고 출발하였다.

그렇다면 객체지향 프로그래밍은 무엇인가? 프로그래밍에서 필요한 데이터를 한 데 모아 추상화시켜 상태와 행위를 가진 객채를 만들고 그 객체들 간의 유기적인 협력과 상호작용을 통해 특정 기능을 구성하는 프로그래밍 방법론 이라고 할 수 있다.

컴퓨터를 예로들어 말하자면 CPU라는 객체는 논리연산을 도맡아서 처리하고 다시 분배하는 역할을 가지고있다. 그래픽카드는 그래픽, 부동소수점 연산 그리고 저장장치들은 데이터의 보관 등 독립적인 기능을 가졌으되 서로 결합되어 소통하며 연산하고 동작한다. 이를 통해 컴퓨터 라는 하나의 결과가 만들어졌다.

즉, "특정 사물이 가지는 속성과 기능을 독립적인 객체로 만들고, 이를 하나하나씩 결합하여 결과물을 만들어 내는 과정" 이 객체지향적 설계라고 할 수 있다!


클래스와 객체

클래스란 위에 설명한 객체를 정의한 설계도 또는 제작틀 이라 할 수 있다. 즉 클래스란 객체를 정의, 설계하고 생성하는데 사용된다. 가장 중요한 건 클래스는 객체 그 자체가 아닌 객체를 생성하는데 사용되는 하나의 틀이란 사실이다.

마치 차량의 휠을 생산할때 쓰는 틀은 휠의 지름, 디자인, 휠을 만드는 소재의 특징들을 가지고 있고 이 틀을 거쳐 휠이 생성되는것과 비슷하다.

클래스의 구성요소와 기본 문법

클래스는 기본적으로 class 키워드를 사용하여 정의한다. 클래스의 이름은 주로 대문자로 시작하는 것이 관례이다.
클래스는 크게 네 가지의 요소로 구성되어 있다.

class ClassName {
	int num1;  // 1. 필드
    void add () {...} // 2. 메서드 
    ExampleClass {...} // 3. 생성자
    class ExampleClass2 {...} // 4. 이너클래스 
}
  1. 필드 : 클래스의 속성을 나타내는 변수.
  2. 메서드 : 클래스의 기능을 나타내는 함수.
  3. 생성자 : 클래스의 객체를 생성.
  4. 이너 클래스 : 클래스 내부의 클래스

객체

객체는 크게 속성기능 이라는 두 가지 구성요소로 이루어져 있다. 속성과 기능은 각각 필드메서드로 정의된다. 하나의 객체는 다양한 속성과 기능의 집합으로 이루어져있고 이너클래스를 포함하여 멤버(member) 라 부른다.

model, carNum, wheels, color 는 이 차량의 속성 power, accelerate, stop 은 기능이다. 클래스라는 울타리 안에 속성과 기능을 넣어 관리함으로서 좀 더 직관적이고 이용하기 쉬워졌다!

객체의 생성

객체는 new 키워드로 생성할 수 있다. 다음과 같다.

Car bmw;   //인스턴스를 참조하기 위한 참조변수 선언
bmw = new Car() ; //인스턴스 생성 후 객체의 주소를 참조 변수에 저장

다음과 같이 축약 가능하다.

Car bmw = new Car();

new 키워드와 생성자를 통해 인스턴스를 생성하여 참조변수에 할당한다. 여기서 참조 변수는 실제 데이터 값이 아니라 실제 데이터가 저장되어 있는 힙 메모리의 주소값을 가리킨다. 즉, 생성된 객체는 힙 메모리에 존재한다.

정리하자면 클래스 Car클래스 영역, 참조 변수 p스택 영역, 인스턴스힙 영역에 저장되게 된다.

0개의 댓글

관련 채용 정보