[6-7] 문제 [6-6]에서 작성한 클래스 메서드 getDistance()를 MyPoint 클래스의 인스턴스 메서드로 정의하시오.
class MyPoint {
int x;
int y;
MyPoint(int x, int y) {
this.x = x;
this.y = y;
}
double getDistance(int x1, int y1) {
return Math.sqrt ((x1 - x) * (x1-x) + (y1 - y) * (y1 - y));
}
}
public class No1 {
public static void main(String[] args) {
MyPoint p = new MyPoint(1,1)
}
}
이전 문제의 static 메서드를 인스턴스 메서드로 변경하는 문제였다.
static 메서드의 경우 메서드 내에서 인스턴스 변수를 사용하지 않았다. 대신 매개변수로 작업에 필요한 값을 제공받아야 했다. 그래서 인스턴스와 무관하기 때문에 static 메서드로 선언할 수 있었다.
하지만 인스턴스 메서드는 인스턴스 변수인 x,y를 사용해서 작업하므로 매개변수로 x1과 y1만을 제공받으면 된다. 인스턴스와 관계가 있으므로 static을 붙일 수 없다.
'공부 STUDY > JAVA' 카테고리의 다른 글
[JAVA] Comparable 과 Comparator 차이 (1) | 2023.09.24 |
---|---|
[JAVA] 자바의 정석 연습문제 6장 객체지향프로그래밍 [6-23] (0) | 2023.02.26 |
[JAVA] 자바의 정석 연습문제 5장 배열 [5-5] (0) | 2023.02.25 |
[JAVA] 자바의 정석 연습문제 5장 배열 [5-4] (0) | 2023.02.25 |
[JAVA] Assertions.assertThat 비교 하기 (0) | 2023.01.25 |