본문 바로가기
카테고리 없음

1. 객체지향 언어란..

by park_hama 2024. 5. 15.

객체지향 언어는 실제 세계의 사물(객체)를 표현하기 위해 만들었다.

그래서 처음에 만들어진 언어가 시뮬라(Simula)라고 한다. 이름부터가 시뮬레이션? 같은 느낌을 준다.

 

객체지향 언어에는 클래스라는 개념이 나오는데. 클래스란 객체를 정의 해놓은 것, 객체의 설계도 또는 틀이라고 정의한다.

그냥 내가 생각하기엔 클래스는 C언어의 구조체 개념에 함수를 섞어 놓은 것이라고 생각한다.

 

c에서도 구조체를 사용하기 위해 구조체 변수를 선언해야 하는데 자바에서도 이와 유사하게 클래스의 인스턴스화를 거쳐

객체를 만들어 낸다.

 

그리고 객체의 구성요소는 속성과 기능으로 이루어져 있는데

속성-멤버변수(그냥 변수)

기능-메서드(함수)

라고 생각하면 편한 것 같다.

 

예를 들어 아래와 같은 자동차 클래스가 있다고 가정하면

class car{

	String color;
    boolean power;
    int speed;
    
	void power {power = !power};
    void speedUp() = {++speed};
    void sppeddown() = (--speed);
}

car t;
t = new car();

t.color = "red"

 

처음에 참조변수

car t;를 선언하고,  //참조변수 선언.

t = new car()를 적어서 인스턴스를 생성하여 메모리를 준다.

그리고 참조변수.멤버변수 해서 멤버에 접근한다.

 

그래서 내가 생각하기엔

참조변수 선언은 그냥 이러한 타입의 변수를 쓸거야~~ 이렇게 알려주기만 하는 것이고.

뒤에 인스턴스를 만들어 줘야 실제로 쓸 수 있는 공간이 만들어 지는 것이다.

그래서 만약 t1과 t2라는 참조 변수가 두개가 있으면 이의 인스턴스는 서로 바꿀 수 있다.

 

객체는 배열 형태로도 사용 가능함.

car c1, c2, c3;

car[] c_all = new car[3];

 

위 아래 코드 두 개다 똑같은 의미임~~