Math.pow 사용해서 거리를 구해도 되지만 한번 더 곱해서 계산했다.
package ch6;
public class Exercise6_6 {
static double getDistance(int x, int y, int x1, int y1) {
// 1. 거리 계산 + 2. 형변환
// Double distance = (double)((x-x1)*(x-x1) + (y-y1)*(y-y1));
return Math.sqrt((x-x1)*(x-x1) + (y-y1)*(y-y1));
}
public static void main(String args[]) {
System.out.println(getDistance(1,1,2,2));
}
}
나는 미리 distnace 라는 변수 타입을 Double 형변환하여 반환타입 double에 맞게 설정했다.
int -> double 로 자동 형변환이 되지만 직접 눈으로 보는 게 확실해서 사용했다.
해당 문제는 인스턴스 메서드를 사용하는 게 중점이다.
package ch6;
class MyPoint {
int x;
int y;
MyPoint(int x, int y) {
this.x = x;
this.y = y;
}
/*
(1) 인스턴스메서드 getDistance를 작성하시오.
*/
double getDistance(int x1, int y1){
return Math.sqrt((x-x1)*(x-x1) + (y-y1)*(y-y1));
}
}
class Exercise6_7 {
public static void main(String args[]) {
MyPoint p = new MyPoint(1,1);
// p와 (2,2)의 거리를 구한다.
System.out.println(p.getDistance(2,2));
}
}
클래스 변수와 메서드가 되기 위해서는 공통의 속성(변수)를 가져야 한다.
여기서 "단, 모든 병사의 공격력과 방어력은 같아야한다." 중점이다. 모든 병사의 공통 속성인 것이다.
static int waepon
static int armor
static void weaponUp
static void armorUp
정답 : b, e
정답 : b, d
정답 : c, d
오버로딩 성립 조건
1. 메서드의 이름이 같아야함.
2. 매개변수의 개수나 타입이 달라야 한다.
3. 리턴 타입은 영향을 주지 않는다.
정답 : b,c,d
정답 : c, e
멤버 변수 : 클래스 변수 + 인스턴스 변수
정답 : a
정답 : a, e
정답 : b
모두 대기 상태이다.
정답 : 라인 A, B, D
정답
ABC123
After change:ABC123
0x200 객체 주소는 적절한 시기에 가비지 컬렉터에 의해 제거 됨.
출처 : Java의 정석 3rd Edition 도우출판