본문 바로가기

JAVA/자바 기초

자바 기초 - #6 클래스(Class)와 객체(Object)

안녕하세요! 이번 글에서는 자바의 클래스(Class)와 객체(Object)에 대해 알아보겠습니다. 클래스와 객체는 자바의 핵심 개념으로, 객체 지향 프로그래밍(OOP)을 이해하는 데 매우 중요합니다. 이 글을 통해 클래스를 정의하고, 객체를 생성하며, 메서드와 필드를 사용하는 방법을 배워보겠습니다.

1. 클래스란?

클래스는 객체를 생성하기 위한 설계도(blueprint)입니다. 클래스에는 객체의 속성(필드, 변수)과 동작(메서드)이 정의되어 있습니다. 쉽게 말해, 클래스는 데이터와 그 데이터를 처리하는 방법을 하나의 단위로 묶어놓은 것입니다.

클래스 정의하기

클래스를 정의할 때는 class 키워드를 사용합니다. 클래스 내부에는 필드(변수)와 메서드가 포함됩니다.

2. 객체란?

객체는 클래스로부터 생성된 인스턴스(instance)입니다. 객체는 클래스에서 정의한 속성과 동작을 실제로 구현한 실체입니다. 자바 프로그램은 여러 개의 객체를 생성하고, 이들 객체가 서로 상호작용하면서 동작합니다.

객체 생성하기

객체를 생성하려면 new 키워드를 사용합니다. 생성된 객체는 클래스에서 정의된 모든 필드와 메서드를 사용할 수 있습니다.

3. 생성자(Constructor)

생성자는 객체가 생성될 때 호출되는 특별한 메서드입니다. 생성자는 클래스와 동일한 이름을 가지며, 객체를 초기화하는 데 사용됩니다. 생성자를 정의하지 않으면, 자바는 기본 생성자를 자동으로 제공하지만, 필요에 따라 사용자 정의 생성자를 만들 수 있습니다.

기본 생성자와 사용자 정의 생성자

 

4. 메서드 오버로딩(Method Overloading)

메서드 오버로딩은 동일한 이름의 메서드를 여러 개 정의하되, 매개변수의 타입 또는 개수를 다르게 하여 구분하는 것입니다. 이를 통해 다양한 형태의 입력값에 대해 동일한 작업을 수행할 수 있습니다.

예시: 메서드 오버로딩

 

5. 캡슐화 (Encapsulation)

캡슐화는 객체의 데이터를 보호하고, 외부에서 직접 접근하지 못하게 하는 객체 지향 프로그래밍의 중요한 개념입니다. 필드를 private으로 선언하고, 이 필드에 접근하기 위한 getter와 setter 메서드를 제공함으로써 캡슐화를 구현할 수 있습니다.

예시: 캡슐화

 
6. 마무리

이번 글에서는 자바의 클래스와 객체 개념을 배우고, 이를 활용하여 프로그램을 구조화하는 방법을 알아보았습니다. 클래스와 객체는 자바에서 매우 중요한 개념으로, 객체 지향 프로그래밍의 기본을 이해하는 데 필수적입니다. 다음 글에서는 상속(Inheritance)과 다형성(Polymorphism)에 대해 다루며, 객체 지향 프로그래밍의 더욱 심화된 개념을 소개하겠습니다.

궁금한 점이 있거나 추가적으로 알고 싶은 내용이 있다면 댓글로 남겨주세요. 그럼 다음 포스트에서 만나요!