본문 바로가기

JAVA

자바 기초 5 (클래스)

클래스 

객체 지향 프로그래밍에 있어서 가장 기본

하나의 처리할 데이터 단위를 명시하는데 사용

Node라는 클래스를 많이 사용

 

어떠한 데이터를 변수로 만들어서 사용하는 것 : 인스턴스화

어떠한 클래스 안에서 만들어진 실제로 사용할 수 있는 단위를 인스턴스라 함

 

객체 : 실세계의 사물

객체를 한 클래스로 만들어서 그것을 하나의 객체 단위로써 인스턴스화를 해서 실제로 사용한다

 

 

하나의 점을 의미하는 Node 클래스를 생성할 수 있습니다.

 

.(0, 0)

A(3,7)

B(10, 5) 이런식으로 x,y 좌표의 특성이 있다.

 

Node 클래스를 이용하여 두 점 사이의 중점을 구하는 프로그램을 작성합니다.

 

Node.java

public class Node {
// Node 라는 것은 하나의 좌표를 의미

  private int x;
  private int y;
  // 자바의 객체 지향 프로그래밍은 보안을 중요시하기 때문에 외부에서 함부로 접근할 수 없는 private 형태 사용


  public int getX() {
    return x;
  // x의 값을 가져오기 위해서 따로 함수를 만들어서 외부에서 접근 가능하게 만듦
  }


  public void setX(int x) {
  // 외부의 값을 설정하기 위해서 사용
  // 매개변수를 int x로 만들어주기

    this.x = x;
    // 자신이 가지고 있는 고유의 x의 속성의 값(private int x;)을 지금 들어온 매개변수 (int 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;
  // Node라는 하나의 인스턴스 변수를 만들어줌과 동시에 x,y 값을 초기화
  }


  public Node getCenter(Node other){
  // getCenter라는 것은 다른 Node(Node other)를 매개변수로 받음
  // 다른 Node자신이 가지고 있는 x, y좌표를 비교해서 정확히 정중앙에 있는 좌표를 하나 반환
  // 그래서 반환형을 Node라 해줌
    
    return new Node ((this.x + other.getX()) / 2, (this.y + other.getY()) / 2 );
    // 다른 좌표에 get.X를 함으로써 자신의 x 좌표와 다른 좌표의 x를 가져와서 두 개를 더한 후 2로 나눠 정중앙의 x좌표를 지칭하게 함

  }
}

Main.java

public class Main {
  public static void main(String[] args){

    Node one = new Node (10, 20);
    // (10, 20)인 하나의 생성자를 이용해서 one이라는 이름의 하나의 점 Node를 만들어 주었다
    Node two = new Node (30, 40);
    Node result = one.getCenter(two);
    // 다른 Node를 하나 받아서 그것과 자신의 정중앙을 하나 반환


    System.out.println("x : " + result.getX() + " y : " + result.getY());
  }
}

'JAVA' 카테고리의 다른 글

자바 기초 7 (추상, Final 키워드)  (0) 2021.10.14
자바 기초 6 (상속)  (0) 2021.10.13
자바 기초 4 (배열)  (0) 2021.10.13
자바 기초 3 (반복 함수와 재귀 함수)  (0) 2021.10.13
자바 기초 2 (객체지향)  (0) 2021.10.12