평생 소장! 19,800 원 15,000 원(계좌이체 구매 한정)


기업은행: 206-021800-01-029

예금주: 박세홍


카톡 ID: chaesam(카톡 아이디 검색 후, 문의 주세요!)

이메일: [email protected]

# 클래스 메소드 호출 #### 클래스 메소드 vs 인스턴스 메소드 클래스 메소드란, static 적용된 메소드입니다. 이와 반면 static이 없으면 인스턴스 메소드가 됩니다. ``` // 클래스 메소드(static 메소드) static void callClassMethod() { System.out.println("스태틱 메소드 호출!"); } // 인스턴스 메소드(non-static 메소드) void callInstanceMethod() { System.out.println("인스턴스 메소드 호출!"); } ``` #### 메소드 수행의 주체? 이 두 메소드의 차이는 "주체 객체가 있는가?"의 여부입니다. 클래스 메소드의 경우, 주체 객체 없이 클래스명으로 호출됩니다. ``` // Math의 클래스 메소드 random() 호출 예 double rand = Math.random(); ``` 반면 인스턴스 메소드는 먼저 주체 객체를 생성해야만 하고, 이를 통해 메소드 호출이 이루어집니다. ``` // 주체 객체 생성 Hero h1 = new Hero("닥터 스트레인지", 80); // 주체 객체를 통한 인스턴스 메소드 호출 h1.teleport(); ``` ## 문제 주어진 코드의 출력 결과는 아래와 같다. ``` Circle { 중심: (0, 0), 반지름: 3 } => 넓이: 0.00 Circle { 중심: (2, 3), 반지름: 4 } => 넓이: 0.00 ``` 코드를 분석 및 수정하여, 두 써클 객체 c1, c2의 넓이를 출력 예와 같이 얻으시오. ## 출력 예 ``` Circle { 중심: (0, 0), 반지름: 3 } => 넓이: 28.27 Circle { 중심: (2, 3), 반지름: 4 } => 넓이: 50.27 ```
관련 강의로 이동

코드: java 1.8

public class CircleTest { public static void main(String[] args) { // 객체 생성 Circle c1 = new Circle(0, 0, 3); // 중심(0,0) - 반지름3 Circle c2 = new Circle(2, 3, 4); // 중심(2,3) - 반지름4 /* 1. 클래스 메소드를 호출하여 원의 넓이를 구하세요. */ double area1 = 0; double area2 = 0; // 결과 출력 System.out.printf("%s => 넓이: %.2f\n", c1.toStr(), area1); System.out.printf("%s => 넓이: %.2f\n", c2.toStr(), area2); } } class Circle { // 필드 int x; // 원의 중심 - X 좌표 int y; // 원의 중심 - Y 좌표 int r; // 반지름 // 생성자 Circle(int centerX, int centerY, int radius) { x = centerX; y = centerY; r = radius; } // 인스턴스 메소드 String toStr() { return String.format("Circle { 중심: (%d, %d), 반지름: %d }", x, y, r); } // 클래스 메소드 static double area(Circle c) { // 원의 넓이 = 원주율 x 반지름 x 반지름 return Math.PI * c.r * c.r; } }

입력

정답이 궁금하다면? 코드를 제출해보세요!