-
인스턴스, 클래스 메소드 문제Back end/Java 객체지향 2023. 11. 21. 13:54
- 두점 사이의 거리
public class PointTest {
public static void main(String[] args) {
// 객체 생성
Point p1 = new Point(0, 0);
Point p2 = new Point(3, 4);
// 거리 계산
double dist = Point.distance(p1, p2); // 눈여겨 볼 코드
// 결과 출력
Systehttp://m.out.printf("두 점 A%s, B%s 사이의 거리: %.2f ", p1.toStr(), p2.toStr(),dist);
}
}
class Point {
/* 1. 필드를 만드시오. */
int x;
int y;
/* 2. 생성자를 정의하시오. */
Point (int _x, int _y){
x = _x;
y = _y;
}
/* 3. 객체 정보를 문자열로 반환하는 인스턴스 메소드를 만드시오. */
String toStr(){
return String.format("(%d, %d)", x, y);
}
/* 4. 두 점 사이의 거리를 반환하는 클래스 메소드를 만드시오. */
static double distance(Point p, Point q){ // 여기서 p,q는 위의 Point.distance(p1,p2)를 보면 p1,p2는 Point로 받고 있음
double dX = p.x - q.x; // x 좌표의 변화량
double dY = p.y - q.y; // y 좌표의 변화량
return Math.sqrt((dX * dX) + (dY * dY));
}
}- 출력
두 점 A(0, 0), B(3, 4) 사이의 거리: 5.00 - 주어진 코드는 Account와 Hacker 클래스로 동작한다. 초기 계좌에는 백만원(1,000,000원)이 입력되어있는데, 이를 0원으로 변경하려 한다.
public class Main {
public static void main (String[] args) {
// 1. 계좌 생성
Account myAccount = new Account(1000000);
System.out.println(myAccount.toString());
// 2. 계좌 해킹
Hacker.malcious(myAccount);
// 3. 결과 출력
System.out.println(myAccount.toString());
}
}
class Account {
// 필드
int balance; // 디폴트 접근 제한자 -> 같은 공간 클래스에게 공개!
// 생성자
public Account(int balance) {
this.balance = balance;
}
// 메소드
public String toString() {
return String.format("Account { balance: %d }", balance);
}
}
class Hacker {
// 클래스 메소드 - 계좌의 잔액을 0원으로 변경
public static void malcious(Account account) {
/* 1. 파라미터 계좌의 잔액을 0으로 변경하세요. */
account.balance = 0;
}
}- 출력
Account { balance: 1000000 }
Account { balance: 0 }출저: 홍팍 (https://www.youtube.com/@hongpark)
이 블로그 기록은 개인 공부용 기록입니다.
'Back end > Java 객체지향' 카테고리의 다른 글
접근 제한자 (Access Modifer) (0) 2023.11.21 Getter & Setter 문제 (0) 2023.11.21 인스턴스 메소드 < -> 클래스 메소드 (0) 2023.11.21 4가지 맛 붕어빵 만들기 (0) 2023.11.20 생성자[마린과 메딕] 문제 (0) 2023.11.19