Java
객체지향 프로그래밍 - 5. 클래스 / 객체 / 인스턴스 차이
BINTHEWORLD
2022. 5. 20. 12:46
클래스
클래스를 이용하여 현실세계의 특정한 물건을 지칭할 수 있다.
대표적으로 많이 사용되는 것이 Node 클래스이다.
종종 Student 클래스와 같이 하나의 처리할 데이터 단위를 명시하는데 사용된다.
객체
실세계의 사물
Ex.Car
인스턴스
실세계의 사물이 프로그램에 녹아들어가 메모리에 할당됨 -> 객체지향의 의미
Ex. new Car()
클래스의 타입으로 선언되었을 때 객체라고 부르고, 그 객체가 메모리에 할당되어 실제 사용될 때 인스턴스라고 부른다.
Car car; // 객체
Car car = new Car(); // 인스턴스화
두 좌표의 x좌표와 y좌표를 비교하여 정중앙 좌표를 구해보자.
Node.java
// Node 클래스 : 메인메소드는 하나만 있으면 되므로 제외
public class Node {
// 좌표
private int x;
private int y;
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 Node(int x, int y) {
// Node가 가지고있는 고유한 속성으로 초기화
this.x = x;
this.y = y;
}
// 다른 노드의 x좌표, y좌표와 자신의 x좌표, y좌표 비교해서 정중앙값을 가지는 Node 형태로 반환
public Node getCenter(Node other) {
return new Node((this.x + other.getX()) / 2, (this.y + other.getY()) / 2);
}
}
Main.java
// 클래스
public class Main {
public static void main(String[] args) {
// 매개변수 2개 받는 생성자 활용
Node one = new Node(10, 20);
Node two = new Node(30, 40);
// result : 정중앙점
Node result = one.getCenter(two); // one 인스턴스에서 메소드 실행
System.out.println("x : " + result.getX() + ", y : " + result.getY());
}
}
출처
- https://www.youtube.com/c/dongbinna
- [Java] 클래스, 객체, 인스턴스의 차이 https://gmlwjd9405.github.io/2018/09/17/class-object-instance.html