반응형
1. 개요
이번 포스팅에서는 Java의 객체 지향 프로그래밍(OOP) 개념을 익히기 위해 Point 클래스를 만들어보겠습니다. 이 클래스는 좌표 (x, y)를 저장하고, 해당 점을 화면에 출력하는 기능을 합니다. 또한, 캡슐화(Encapsulation) 와 생성자(Constructor) 개념을 적용하여 더욱 깔끔하고 확장 가능한 코드를 작성해 보겠습니다.
2. Point 클래스 - 버전 1 (기본적인 구조)
먼저, 가장 기본적인 Point 클래스를 만들어 보겠습니다.
Point 클래스 (v1)
package com.javaex.oop.point.v1;
public class Point {
// 필드 (은닉)
private int x;
private int y;
// Getter & Setter
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
// 점을 그리는 메서드
public void draw() {
System.out.printf("점[x=%d, y=%d]을 그렸습니다.%n", x, y);
}
}
PointApp 클래스 (v1)
package com.javaex.oop.point.v1;
public class PointApp {
public static void main(String[] args) {
Point one = new Point();
one.setX(5);
one.setY(5);
Point two = new Point();
two.setX(10);
two.setY(23);
one.draw();
two.draw();
}
}
실행 결과
점[x=5, y=5]을 그렸습니다.
점[x=10, y=23]을 그렸습니다.
💡 설명
- Point 클래스는 x와 y 좌표 값을 가집니다.
- setX(), setY() 메서드를 이용해 값을 설정할 수 있습니다.
- draw() 메서드는 현재 좌표를 출력합니다.
하지만, 매번 setX(), setY()를 사용해 값을 설정하는 것은 번거롭습니다. 이를 해결하기 위해 생성자를 추가해보겠습니다.
3. Point 클래스 - 버전 2 (생성자 추가)
생성자는 객체가 생성될 때 자동으로 호출되는 특별한 메서드입니다. 이를 활용하면 객체를 만들 때 필드를 초기화하는 작업을 간편하게 처리할 수 있습니다.
Point 클래스 (v2)
package com.javaex.oop.point.v2;
public class Point {
// 필드 (은닉)
private int x;
private int y;
// 기본 생성자
public Point() {
}
// 모든 필드를 초기화하는 생성자
public Point(int x, int y) {
this.x = x;
this.y = y;
}
public int getX() {
return x;
}
public int getY() {
return y;
}
public void draw() {
System.out.printf("점[x=%d, y=%d]을 그렸습니다.%n", x, y);
}
}
PointApp 클래스 (v2)
package com.javaex.oop.point.v2;
public class PointApp {
public static void main(String[] args) {
Point one = new Point(5, 5);
Point two = new Point(10, 23);
one.draw();
two.draw();
}
}
실행 결과
점[x=5, y=5]을 그렸습니다.
점[x=10, y=23]을 그렸습니다.
🔥 개선된 점
- 생성자(Constructor) 를 활용하여 setX(), setY()를 사용하지 않고도 좌표 값을 설정할 수 있습니다.
- 기본 생성자도 추가하여 필요할 경우 빈 객체도 만들 수 있습니다.
- 코드가 더 간결하고 읽기 쉬워졌습니다.
4. 정리
이번 포스팅에서는 클래스, 객체, 필드, 메서드, 생성자 개념을 활용하여 Point 클래스를 만들었습니다.
- 버전 1: setX(), setY() 메서드를 이용하여 좌표 값을 설정.
- 버전 2: 생성자를 활용하여 객체 생성과 동시에 필드 값을 초기화.
이제 Point 클래스를 확장하여 색상 추가, 좌표 이동 등의 기능을 넣어볼 수도 있습니다. 객체 지향 프로그래밍을 배우는 데 중요한 개념이니, 직접 코드를 작성해보면서 익혀보세요! 😊
반응형
'개발 > JAVA' 카테고리의 다른 글
Java로 배우는 객체 지향 프로그래밍 - 추상 클래스와 상속 (8) | 2025.02.07 |
---|---|
Java 객체지향 프로그래밍 - Point 클래스와 상속 개념 배우기 (10) | 2025.02.06 |
Java 객체지향 프로그래밍 - 상속(Inheritance) 개념 이해하기 (9) | 2025.02.04 |
Java 메서드 완벽 정리 - 기초부터 가변인수까지! (5) | 2025.02.03 |
자바의 this와 생성자 활용: 상품 관리 프로그램 심화 학습 (12) | 2025.01.31 |