본문 바로가기

자바

7. 절차지향 프로그래밍과 함수 그리고 객체지향2

절차지향의 중복된 코드사용과 유지보수의 어려움으로 함수가 나왔다는 것을 지난 시간에 배웠다.

하지만 시간이 지날수록 함수도 온전히 이러한 문제점을 해결해주지 못했다.

이러한 이유로 객체지향개념이 나왔다.

 

객체의 개념을 다시 집어보자

객체란 같은 기능을 하는 데이터와 같은 기능을 하는 로직의 모임이다.

예를 들어 에어컨이라는 객체가 있다고 가정을 하자.

에어컨에는 온도와 습도를 나타내는 데이터가 있다.  그리고 온도를 조절할 수 있는 메소드와 습도를 조절할 수 있는 메소드가 있다. 또한 각각 다른 모습에 에어컨이 존재하기 때문에 객체는 완전한 독립체라고 말할 수 있다. 각각의 객체는 데이터와 메소드를 따로 가지고 있다.

객체는 독립체라고 부르는 이유

 

 

 

객체는 클래스로부터 생산된다.

클래스란 객체의 설계도라 생각하면 된다.

클래스에서 사용자의 요구에 맞게 여러가지 다른 모양의 객체를 생성할 수 있다.

클래스와 객체의 개념

 

 

 

객체는 메모리상에 존재할 때 객체의 데이터 값이 저장되는 것이 아닌 객체의 주소값이 저장된다.

Name name1 = new Name();

name1은 스택 영역에 저장이 되고 Name(0X10)은 힙 영역에 저장이 된다.

 

다음은 클래스와 객체의 간단한 예이다.

//클래스 제작
package Myclass;

public class Myfirstclass { 
	//생성자
	public Myfirstclass() {
		System.out.println("여기는 Myfirstclass 입니다.");
	}
}

 

 

//객체 사용
package Myclass;

public class Main {
	public static void main(String[] args) {
		//객체 mc1과 mc2를 만든다
		Myfirstclass mc1 = new Myfirstclass();
		Myfirstclass mc2 = new Myfirstclass();
		
		System.out.println(mc1.equals(mc2)); //mc1과 mc2는 다른 존재임을 증명
	}
}