JAVA

객체지향 프로그래밍 - 클래스(Class)와 객체(Object) // (개발자 기초용어) *알기쉽게 정리

min민 2022. 12. 27.

객체지향 프로그래밍이란?

 

 

실제 사물의 속성과 기능을 분석한 후

 

 

이것을 프로그래밍의 변수와 함수로 정의함으로써

실제 세계를 최대한 컴퓨터 프로그래밍에 반영하고자 한 시도라고 볼 수 있다.

 

 

 

 

장점

쉽게 말하자면 코드 간의 관계 설정을 통해서 적은 노력으로 쉽게 코드를 변경할 수 있게 하는 것이다.

 

 

 

-> 결과적으로 프로그램 개발 및 유지 보수에 드는 비용과 시간을 획기적으로 줄일 수 있고,

객체를 통해서 데이터를 관리하여 데이터를 손실 없이 관리하기에 용이하다.

 

 

-> 더 쉽게 말하면 칼퇴 가능 ^^!! 헤헷

 

 

 

 

 

 

우선 클래스를 만들기 위해 필요한 필드(Field)와 메서드(Method), 생성자가 필요하게되는데

그중 이번 포스팅에서는 클래스, 객체내용을 정리해 볼게용! :)

 

 

 

지금부터 나오는 내용은 너무나도 기초적인 내용이라 필수적으로 알아야 합니다!!

(#개발자 기초용어 로 접근하신분들 ↓ 개념 꽉 잡으세용!)

*물론 나 포함

 

 

 

미니어(필자 민이임) ↓ 최대한 읽기 쉽게 적어봤슴둥 

 

 

 

클래스(Class)란?

객체를 정의한 설계도 또는 틀(frame)이라고 정의할 수 있다.

클래스는 객체를 생성하는데 사용된다.

 

객체(Instance)란?

클래스에 정의되고 설계된 내용을 그대로 생성함.

 

 

 

 

클래스는 객체 자체가 아니라 단지 객체를 생성하는데 사용되는 하나의 틀(frame)임.

따라서 클래스는 객체 그 자체가 될 수 없다.

ex) 건축 설계도(클래스)가 건축물(객체)가 될 수 없음.

 

 

 

 

 

 

클래스 (붕어빵 틀)

 

슈크림 존맛탱

객체 (붕어빵)

 

클래스를 통해 생성된 객체를 해당 클래스의 인스턴스(instance)라고 부르게 된다.

// 또한 클래스로부터 객체를 만드는 과정을 인스턴스화(instantiate)라고 지칭한다.

 

-> 붕어빵기계에서 붕어빵 만드는 과정

 

 

 

 

 

객체와 인스턴스는 같은 말이라 의미 차이는 없다.

 

 

 

하지만,

 

객체는 : 모든 인스턴스를 포괄하는 넓은 의미를 갖고, 

인스턴스는 : 객체가 어떤 클래스로부터 생성된 것인지 강조한다.

 

 

 

 

 

 

이제 내용을 알았으니 코드를 알아봐야겠쥬?

 

 

 

 

클래스 정의방법:

class 클래스명 { // 클래스 정의
	-- 정보 -> 필드 -> 변수 --
        -- 메서드 --
}

 

 

클래스의 구성요소로는 :  필드, 메서드, 생성자, 이너클래스가 있다.

 

public class mini_Class {  // 클래스 이름이 mini_class이다.
	int a = 18; // (1)필드를 나타낸다.
	void printX() {...} // (2) 메서드
	mini_Class {...} // (3) 생성자
	class mini_Class2 {...} // (4)이너 클래스
}

필드: 클래스의 속성의 변수이다. ex) 핸드폰이면 핸드폰 모델명, 카메라 수, 색상 등이 포함된다.  (속성)

메서드: 클래스의 기능을 나타낸다. ex) 핸드폰이면 전화하기, 인터넷접속 하기, 문자 전송하기 등이다.  (기능)

생성자: 클래스의 객체를 생성하는 역할을 의미한다.

이너 클래스: 클래스 내부의 클래스를 의미한다. 

 

보통 생성자를 제외하고  // 필드, 메서드, 이너 클래스를 멤버라고 부른다.

 

 

 

 

 

객체 생성방법:

class PhoneTest {
         public static void main(String[] args) {
         
         Phone iphone = new Phone(); // Phone 클래스를 기반으로 생성된  iphone 인스턴스
         Phone samsung = new Phone(); // Phone 클래스를 기반으로 생성된 samsung 인스턴스 
         
         }

ex) Phone iphone = new Phone(); // 

와 같이 실제 객체를 생성할 수 있다.

 

클래스명  참조_변수명 = new 생성자(); 이다.

 

 ** deep point : 참조 변수명 위치에 new 생성자의 메서드 주소값을 저장하게 되고

그 주소값으로 찾아가면  클래스 영역에 정의된 메서드를 찾아 사용할 수 있게 된다.

 

즉 생성자 Phone(); 인스턴스는 힙 메모리 영역에 들어가며 객체 내부에는

클래스의 멤버들이 위치하게 되고, 메서드의 구현 코드 위치는 클래스 영역에 저장되고

객체 안에서 그 위치를 가리키고 있다.

 

 

 

 

 

 

객체의 활용

 

객체 생성 후에는 

포인트 연산자인 ( . ) 을 통해서 해당 객체의 멤버에 접근이 가능하다. 

 

 

참조 변수명. 필드명 // 필드값 불러오기 방법

참보 변수명.메서드명() // 메서드 호출 방법 이다.

 

 

 

 

 

아주 기본적인 클래스와 객체에 대해서 알아보았다. 

중요개념이니 확실하게 알아가도록하자!

 

 

 

정리 :

1. Person mini = new Person();

객체는 참조타입이다.

2. 객체는 일반적 개념. 인스턴스는 어떤 클래스로부터 파생됐나 강조함.

 

 

 

그러면 저는 20000!

클래스 객체 활용해서 코드 복습 하러 가볼게욥~~! ㅎㅎ 

 

 

댓글