거리 측정 클래스(Point)를 구현하고 Main에서 거리 측정하기
거리 측정 클래스 조건
1) 멤버 변수: private double x, y;
2) 생성자: 기본 생성자, 매개변수 생성자
3) 메소드:
(1) getter/setter 메소드 -> 4개
(2) 두 점 사이의 거리를 리턴하는 메소드
- public double distance(Point pt) {...}
- 공식 : D^2 = (x2-x1)^2 + (y2-y1)^2
거리 측정 클래스(Point.java)
public class Point {
// 1. 멤버 변수: private double x, y;
private double x;
private double y;
// 2. 생성자: 기본 생성자, 매개변수 생성자
public Point() {
}
public Point(double x, double y) {
this.x = x;
this.y = y;
}
// 3. getter/setter 메소드
public double getX() {
return x;
}
public void setX(double x) {
this.x = x;
}
public double getY() {
return y;
}
public void setY(double y) {
this.y = y;
}
// 4. 두 점 사이의 거리를 리턴하는 메소드
public double distance(Point pt) { // 현재 인스턴스의 x,y 좌표 값과 매개변수로 받은 인스턴스의 x,y 값을 활용한다.
// 두 점 사이의 거리를 구하는 공식 은
// D^2 = (x2-x1)^2 + (y2-y1)^2 이다.
// 양변에 근호를 씌어 값을 구한다.
return Math.sqrt((x - pt.x) * (x - pt.x) + (y - pt.y) * (y - pt.y)); // math.sqrt()는 제곱근을 구하는 메소드이다.
}
}
Main
public class Main {
//Point클래스를 활용하여 두 점 사이의 거리 구하기
public static void main(String[] args) {
// private 멤버 변수에 접근하는 방법 1
// Point 클래스의 매개변수가 있는 생성자를 활용하여 x,y 값을 바로 초기화 시킨다.
Point pt1 = new Point(2.0, 3.0);
//getter 메소드로 간접적으로 값을 확인한다.
System.out.println(pt1.getX());
System.out.println(pt1.getY());
// private 멤버 변수에 접근하는 방법 2
// setter 메소드를 활용하여 간접적으로 값을 넣는다.
Point pt2 = new Point();
pt2.setX(3.0);
pt2.setY(4.0);
System.out.println(pt2.getX());
System.out.println(pt2.getY());
// 두 점 사이의 거리 계산 (distance 메소드 활용)
System.out.println(pt1.distance(pt2));//인자로 pt2를 받아서
//pt1의 x,y 값과 pt2의 x,y을 활용해 두 점 사이의 거리를 계산한다.
}
}