JAVA

[JAVA] 클래스 / 객체 (5)

jongh0 2025. 5. 20. 17:53

해당 게시물에서는 "JAVA는 객체지향"이라는 키워드에서 "객체"라는 단어와 클래스에 대해서 글을 적어보려고 한다.

 

[클래스]

- 멤버 변수 : 클래스 내에 선언된 변수를 말하며 필드라고도 부른다.

- 멤버 메서드 : 클래스 내에 선언된 메서드를 말한다.

 

[객체]

- 클래스 자료형 타입으로 new 키워드를 통해 생성되는 요소를 말하며, 클래스가 형식이라고 생각한다면 객체는 내용을 채워넣은 결과물 이라고 볼 수 있다.

 

[객체 생성 예시]

ex) Book book = new Book(); 

 

그러면 왜 클래스와 객체를 통해서 코드를 구현하는 객체지향 형식의 코드를 사용하는 이유가 무엇인지 파악해야한다.

https://blog.hexabrain.net/104 첨부

 

아마 많은 공대생들이 자바의 객체지향을 배울 때, 붕어빵을 이용하여 예시를 많이 들었을 것이다.

클래스는 붕어빵틀로 비유할 수 있다. 값이 들어있지 않은 그저 "형식"이라고 보면된다. 붕어빵이라는 클래스에 변수로 반죽, 속의 재료를 크게 2개를 둔다면, 클래스만 불러와서 변수값만 바꿔가며 팥붕어빵, 피자붕어빵 이런식으로 여러가지 붕어빵(객체)를 생성할 수 있다. 이때 객체는 인스턴스라고 부르며 인스턴스 생성을 인스턴스화 라고 말할 수 있다.

 

위에 예제를 확인했는데도 불구하고 아직 클래스와 객체가 와닿지 않았다면 다음 예시를 확인해보자.

 

ex) 서로다른 붕어빵 종류에 대해서 10개를 만들고 해당 붕어빵에 어떤 재료를 쓰고있는지 모두 출력해줘 !!!

다음과 같은 예제에서 클래스와 객체를 배우지 않은 학생이 코드를 짠다면 다음과 같은 코드를 보일것이다.

String 붕어빵1_반죽 = "~~~";
String 붕어빵1_속 = "~~~";

String 붕어빵2_반죽 = "~~~";
String 붕어빵2_속 = "~~~";

String 붕어빵3_반죽 = "~~~";
String 붕어빵3_속 = "~~~";

String 붕어빵4_반죽 = "~~~";
String 붕어빵4_속 = "~~~";

...

String 붕어빵10_반죽 = "~~~";
String 붕어빵10_속 = "~~~";

 

객체지향을 다루고있는 자바에서 다음과 같은 코드로 문제를 해결하는것은 정말 바보같은 짓이다.

 

클래스와 객체를 통해서 문제를 해결하면 다음과 같은 코드 작성이 가능하다.

public class 붕어빵() {

	String 반죽재료 = "";
	String 속재료 = "";

}

 

다음과 같은 붕어빵 클래스를 만들고 클래스에 변수(필드)로 반죽재료와 속재료를 정의한다.

String[] 반죽재료 = {곡물, 쌀, 밀가루 ...};
String[] 속재료 = {팥, 옥수수, 슈크림, 피자, 누텔라 ... };

붕어빵[] 붕어빵 = new 붕어빵[10];

for(int i=0; i<10; i++) {
	붕어빵[i].반죽재료 = 반죽재료[i];
	붕어빵[i].속재료 = 속재료[i];
}

그리고 메인문에서 다음과 같이 내가 넣어야하는 반죽재료와 속재료를 String 형태의 배열안에 순차적으로 넣어두고

for문을 통해서 순차적으로 넣어줄 수 있다. 더 많은 종류의 붕어빵이 생기더라도 클래스배열 객체의 크기만 늘려주고

추가하면 되는것이다. 

 

추가로 메서드도 동일하게 가능하며 메서드 이외의 내용은 다음 게시물에서 다루겠다.

'JAVA' 카테고리의 다른 글

[JAVA] final / static 키워드 알아보기 (7)  (1) 2025.05.21
[JAVA] 생성자 / 오버로딩 (6)  (1) 2025.05.20
[JAVA] 배열(4)  (0) 2025.05.20
[JAVA] 형변환 메서드(3)  (1) 2025.05.19
[JAVA] 조건/반복문 (2)  (0) 2025.05.19