Computer Science/Java

Java - 클래스

ajdanddl 2020. 1. 26. 16:08
반응형

클래스에 대한 예제로 2개의 x,y좌표의 중점을 구하는 코드를 짜보겠습니다.

 

먼저 x와 y의 좌표값이 들어갈 Node 클래스를 생성해줍시다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
public class Node {
    private int x;//x와 y의 값을 외부에서 바꾸지 못하게 하기 위해
    private int y;//private 사용
    
    public int getX() {//public은 외부에서 접근 가능
        return x;
    }
    public void setX(int x) {
        this.x=x;//this.x는 위에 private로 정의된 x를 의미 즉, 함수 매개변수로 갖고 온 x의 값을 위 private x에 넣어주겠다는 뜻
        
    }
    public int getY() {//public은 외부에서 접근 가능
        return y;
    }
    public void setY(int y) {
        this.y=y;//this.x는 위에 private로 정의된 x를 의미 즉, 함수 매개변수로 갖고 온 x의 값을 위 private x에 넣어주겠다는 뜻
        
    }
    public Node(int x, int y) {//인스턴스 변수  Node는 클래스 이름과 같아야 해서 Node임
        this.x = x;
        this.y = y;
    }
    public Node getCenter(Node other) {//Node형 반환, other이라는 Node와 비교해서 정중앙값을 반환하는 메소드
        return new Node((this.x+other.getX())/2, (this.y+other.getY())/2);
    }
}
 
cs

x와 y의 값을 setX와 setY 메소드를 통해서만 변경시킬 수 있게끔

x와 y변수는 private로, setX와 setY메소드는 public으로 선언해줍시다.

 

setX 메소드에서 this.x = x;의 의미는 this.x는 private으로 선언해 준 x변수를 의미하고 뒤쪽에 있는 그냥 x는 메소드에서 인자로 갖고온 x를 뜻합니다. 즉, 메소드 인자를 앞서 선언해준 private x 변수에 대입하겠다는 뜻입니다. setY 메소드도 마찬가지입니다.

 

그 다음 Node 생성자를 만들어 주고 이후 반환형이 Node인 getCenter 메소드를 작성해줍니다.

getCenter 메소드에서 return 값이 other이라는 Node와 본래 private x,y값의 중앙값을 반환하게 됩니다.

 

그리고 이제 Main 클래스를 봅시다.

 

1
2
3
4
5
6
7
8
9
10
public class Main {
 
    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());
    }
}
 
cs

one, two라는 Node 2개를 생성해주고 각각의 x,y좌표를 넣어줍니다. 

그리고 result Node를 하나 더 생성하여 one, two Node의 중앙값을 받아옵니다.

이후 중앙값을 출력해주면 끝

 

 

출력결과

반응형

'Computer Science > Java' 카테고리의 다른 글

Java - 추상화  (0) 2020.01.26
Java - 상속  (0) 2020.01.26
Java - 배열  (0) 2020.01.25
Java - 문자열 함수  (0) 2020.01.25
Java - 사용자 정의 함수 (메소드)  (0) 2020.01.25