반응형
클래스에 대한 예제로 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 |