개발/Java

멀티캠퍼스 [현대 이지웰] Java 기본 개념 클래스에 대해서 알아보자!

taecostudy76 2025. 8. 3. 17:16

오늘은 자바에 대해서 기록하려고 해요!
자바에서 중요한 개념인 클래스!

클래스는 자바에서 기본 개념인데요.

1. 클래스는 객체를 만들기 위한 설계도

2. 변수와 메서드를 가지고 있는 집합

3. 생성자를 통해 객체를 생성

 

그러면 예제를 통해서 클래스가 어떻게 사용되는지 봐볼게요.

 

먼저 Car라는 클래스를 만들었어요.

여기에는 자동차에 관련한 멤버변수와 기능들을 넣을 거예요.

 

 

저는 자동차 이름과, 자동차 번호, 자동차 연식을 이렇게 만들었어요.

 

 

그리고 생성자를 만들 때 인수인자를 통해 매개변수에 값을 넣어 Car 클래스 안 맴버변수에 값을 넣을 거예요.

this. 이 코드는 클래스안 멤버변수를 뜻해요.

매개변수를 만들 때 같은 이름을 자주 쓰는데, carName = carName; 이런 식으로 값을 넣을 수 있지만

헷갈릴 수도 있어 this.carName = carName; 이렇게 사용을 해도 돼요.

둘 다 같은 의미이기에 개발자마다 선호하는 방식으로 코드를 작성하면 돼요.

 

 

밑에는 기능인 move() 함수를 만들었어요.

이 함수를 실행하게 되면 반환 값 없이 "자동차가 움직입니다."만 실행할 수 있어요.

 

 

마지막은 어노테이션 @Override로 toString() 메서드를 만들어서 우리가 넣은 값들을 반환하는 기능을 만들어서 

어떤 값이 들어갔는지 확인할 수 있게 했어요.

 

 

CarMain 클래스를 만들어서 만들었던 Car 클래스를 사용해 볼 거예요.

인스턴스를 만들 때 Car car = new Car(); 이런 식으로 생성자를 만들어요.

여기서 new Car() 같은 경우에는 기본 생성자인데요.

Car 클래스에서 저는 생성자를 제가 따로 만들었어요.

그래서 위 코드처럼 생성자 괄호 안에 인수인자를 필수적으로 작성하도록 했어요.

만약 개발자가 따로 Car클래스에서 생성자를 만들지 않는다면, 컴파일러가 기본 생성자를 자동으로 만들어요.

그래서 new Car() 이런 식으로도 사용할 수 있어요.

만약 기본 생성자와 다른 생성자를 같이 사용하고 싶다면 어떻게 해야 할까요?

 

 

이런식으로 둘 다 Car 클래스에 만들면 인수인자가 필요없는 기본 생성자와

인수인자가 꼭 필요한 생성자 둘다 사용할 수 있어요.

 

 

이제 코드를 실행시키면 이렇게 나오는데요.

생성자를 통해 작성한 값들이 toString 메서드를 통해서 값이 나오게 되고,

move 메서드를 통해서 "자동차가 움직입니다."라는 내용을 확인할 수 있어요.

 

toString 메서드는 최상위 클래스인 Object에 있는 메서드예요.

이 클래스를 따로 Override 하지 않으면 "클래스명@해시코드"가 나오고,

제가 한 것처럼 Override를 하면 사용자가 만든 코드가 나오게 돼요.

 

여기서 해시코드가 뭐지?라는 의문이 들 수 있어요.

hashCode()는 객체를 구분하기 위해 JVM이 부여한 정수 값이에요.

주소처럼 보이지만 실제 메모리 주소는 아니에요.

객체 식별 번호라고 생각하면 이해하기 쉬울 거예요.

 

 

Override 하지 않고 실행시켰을 때 이렇게 나와요.

되게 주소처럼 보이지 않나요?

그 이유는 hashCode()를 16진수로 바꿔서 출력해서 주소처럼 보이는 것뿐이에요.

 

 

오늘은 이렇게 클래스에 대해서 기록을 해봤어요.

다음에는 더 중요한 개념으로 돌아올게요!