Java/나동빈 기초 강좌
나동빈 자바(Java) 클래스 #09
eastperson
2020. 7. 16. 19:12
객체 : 실세계의 사물
하나의 객체를 만든다. 그 객체의 성질들을 묶어서 저장해두는 것을 클래스이다. 예를 들어 게임을 만들 때, 자동차의 특성, 사람의 특성, 나무의 특성 등등을 클래스를 저장한다. 그리고 프로그래밍을 할 때, 그 클래스를 사용해서 성질에 맞는 방법을 구현한다.
가령 car라는 클래스의 특징이 속력, 색상, 이름 등등이 있을 때
new car();
의 함수를 사용하면 car라는 객체가 불러와진다. 이 특성을 프로그램 안에서 개별적으로 설정하거나 사용할 수 있다.
실제로 이러한 데이터를 변수로 활용하는 것을 인스턴스화라고 한다. 어떠한 클래스 안에서 만들어진 실제로 사용하는 단위이다.
자동차 -> car (클래스, 객체화) -> new car; (인스턴스, 객체의 활용) => 객체 지향 프로그래밍
프로그래밍의 모듈화, 변수 가능, 보안 향상
두 클래스를 이용해서 하나의 프로그램을 만들어주자. Node 클래스는 Main 메소드를 넣을 필요가 없다.
객체지향 프로그램의 보안
package 응용예제2;
public class Node {
private int x; // x와 y를 외부에서 접근할 수 없도록 private 으로 만든다.
private int y;
public int getX() {
return x;
}
public void setX(int x) {
this.x = x; // x라는 변수를 지금 들어온 매개 변수로 바꿔주겠다는 뜻.
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
public Node(int x, int y) { //생성자의 정의는 인스턴스(객체)를 새로만들 때 자동으로 값을 초기화해주는 것.
this.x = x;
this.y = y;
}
public Node getCenter(Node other) { // getCenter는 다른 Node를 매개변수로 잡아서 정 중아의 값을 반환한다.
return new Node((this.x + other.getX()) / 2, (this.y + other.getY()) / 2);
}
Main 활용
package 응용예제2;
public class Main17 {
public static void main(String[] args) {
Node one = new Node(10, 20);
Node two = new Node(30, 40);
Node result = one.getCenter(two);
System.out.println("x : " + result.getX() + " y : " + result.getY()); // x(10, 30) 의 중앙, y(20, 40)의 중앙의 값을 가져온다.
}
}