코딩항해기

[JAVA] 클래스와 객체화 본문

JAVA

[JAVA] 클래스와 객체화

miniBcake 2024. 7. 2. 11:32

클래스 (class)

클래스는 객체지향언어의 기본 단위로, 자료형이다.

클래스를 구체화, 객체화 한 것(메모리에 할당시킨 것)이 객체이다.

 

[요약]

클래스 구조 class 클래스명{ 
자료형 변수;

리턴타입 메소드(자료형 매개변수){
            실행할 코드; return 리턴값;
      }

생성자명[클래스명과 동일함](리턴타입 매개변수){
            [super();]
            this.필드명 = 매개변수명[또는 초기값];
     }
}
객체화 클래스명 참조변수명 = new 생성자명();

 


[이전 객체 관련 글]

 

[JAVA] 객체 생성하기

[관련한 이전 글 보기] [JAVA] 객체와 객체지향언어 장단점객체 지향 프로그래밍Object Oriented Programming java는 객체지향 프로그래밍 언어이다.객체지향 프로그래밍 언어로는 java, c#, python 등이 있다

minibcake.tistory.com

 


 

[클래스]

클래스는 객체 지향 프로그래밍에서 기본 단위로 사용되는 중요한 개념이다.

객체를 컴퓨터에 옮기기 위해 추상화 한 것으로 실제 존재하는 공간이 아니며 추상적이다.

데이터(속성)와 메소드(동작)를 포함하는 하나의 설계도 역할을 하며, 객체를 생성하는데 사용된다.

객체는 클래스를 기반으로 생성되며 클래스 내에 정의된 속성과 메소드를 공유한다.

 

클래스는 속성(멤버변수 또는 필드라고도 함)과 기능(메소드), 생성자로 구성되어 있다.

속성 그 물건들의 특징을 나타낸다. 이름, 나이, 성별, 등...
메소드 물건이 할 수 있는 행동 걷기, 말하기, 먹기, 등...
생성자 필드 값을 초기화시켜주는 역할을 담당한다. 이름 = "영희", 나이=20... 

*생성자는 정의하지 않으면 java 컴파일러가 기본 생성자를 제공해준다.

*이 경우 null, 0, 0.0과 같은 기본값으로 초기화된다.

 

클래스를 사용하는 법

클래스를 통해 실제 물건(객체)을 만들 수 있다.

같은 클래스로 여러 개의 객체를 생성할 수 있다.

ex) 사람 클래스 > 철수, 영희, ...

 

사용자 정의 타입 자료형

클래스를 사용하면 여러 타입, 여러 값을 저장할 수 있는 저장공간을 만들 수 있다.

클래스 안에 선언되어 있는 변수를 사용하고 싶다면 해당 클래스 타입으로 변수를 선언해야한다.

(=> 자료형으로 사용됨)

 

연관성 있는 저장공간과 기능을 묶는 역할

연관되는 저장공간과 기능을 클래스로 묶어서 관리할 수 있다.

길이를 알아야하고, 같은 타입만 묶을 수 있는 배열과는 다른 개념이다.

 

객체를 생성하기 위한 틀

공통되는 속성(변수, 필드)과 행위(메소드)를 한번만 선언해놓고 가져다 사용만 하도록 설계한다.

이때 추상적인것(클래스)을 구체화시키면(메모리에 생성된 것) 객체(인스턴스)라고 한다.

 

클래스 선언

class 클래스명{ 
자료형 변수;

리턴타입 메소드(자료형 매개변수){
            실행할 코드; return 리턴값;
      }

생성자명[클래스명과 동일함](리턴타입 매개변수){
            [super();]
            this.필드명 = 매개변수명[또는 초기값];
     }
}

*클래스명은 대문자로 시작하는  파스칼 케이스(PascalCase) 표기법을 따른다.

*변수명은 카멜 케이스(camelCase)표기법을 따른다.

 


 

[객체(Object)와 인스턴스(Instance)]

객체의 사전적 의미는 실제 사물 또는 개념이다.

여기서는 객체는 클래스를 구체화, 메모리에 할당 한 것을 의미한다.

이를 인스턴스라고 하게되는데, 일반적으로 객체와 인스턴스를 동일하다고 생각하고 사용해도 무방하다.

인스턴스(객체)는 물리적으로 존재하는 공간으로 구체적이다. 

 

 

인스턴스화(객체화 작업) : instantiation

객체를 만드는 작업, 추상적인 개념을 구체화 시키는 작업

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

 

객체의 멤버변수나 메소드를 호출하는 법

참조변수명.멤버명
참조변수명.메소드(인수);

 

 

[실행순서와 저장 위치]

public class MyClass{
	public void myMethod(){
	MyClass            mc         =         new MyClass();
	---------          ---       ---        --------------
	자료형(클래스명)  참조변수  대입연산자   new 생성자();
                     1번             3번           2번
	
		}
}

 

1번 : 자료형 참조변수

데이터 타입(자료형)은 참조하려는 대상과 같은 자료형이어야하므로 MyClass라고 지정한다.

mc라는 참조 변수는 myMethod()라는 메소드 영역에서 만들어진 지역변수이므로,

JVM이 관리하는 메모리의 Stack 영역에 생성된다.

 

2번 : new 생성자

new 연산자가 Heap 메모리에 MyClass 객체를 생성하고, 참조값을 가져온다. (참조값 반환)

이 때 생성자가 실행된다.

 

3번 : 대입연산자

대입연산자를 통해 오른쪽의 참조값을 왼쪽의 참조 변수에 저장한다.

 

 

[JAVA] 객체 생성하기

[관련한 이전 글 보기] [JAVA] 객체와 객체지향언어 장단점객체 지향 프로그래밍Object Oriented Programming java는 객체지향 프로그래밍 언어이다.객체지향 프로그래밍 언어로는 java, c#, python 등이 있다

minibcake.tistory.com