본문 바로가기

국비교육/국비교육 복습

day11_oop.keyword4 : static 메소드 - 클래스를 인스턴스 생성하지 않고도 메소드 호출 가능 (★)

Robot이라는 클래스를 만들고 다음 작업을 처리할 수 있도록 기능을 구현하세요 (메소드 이름은 자유)

 

1. 11의 제곱

2. 신장 180cm, 체중 80kg인 사람의 BMI

3. 1999년생의 지하철 요금(이전 문제와 동일한 요금표) - https://floating-branch.tistory.com/25

4. 밑변 5, 높이 7인 삼각형의 넓이

5. 반지름 7인 원의 넓이

 

 

Robot 클래스

package day10_oop.keyword4;

public class Robot {

	// 제곱 메소드
	public static int square(int number) {
		return number * number;
	}
	
	// BMI 계산 메소드
	public static double bmi(int weight, int height) {
		return weight / (height / 100.0) / (height / 100.0);
	}
	
	// 지하철 요금
	public static String charge(int birth) {
		int age = 2022 - birth;
		if(age <= 7 && age >= 65) {
			return "무료";
		}
		else if(age <= 13) {
			return "450원";
		}
		else if(age <= 19) {
			return "720원";
		}
		else {
			return "1250원";
		}
	}
	
	// 삼각형 넓이
	public static double triangle(int width, int height) {
		return width * height / 2.0;
	}
	
	// 원의 넓이
	public static double circle(int radius) {
		return radius * radius * 3.14;	// 원주율 파이값 출력 : Math.PI
	}
}

 

1) static이 붙은 메소드는 클래스의 인스턴스를 생성하지 않고도 호출할 수 있다

- 객체를 생성하지 않고도 메소드만 호출해서 사용할 수 있다

클래스명.메소드명(매개변수);


2) Java의 상수 (constant)

- Math.PI; : 원주율 파이의 값을 호출한다

 

메인 메소드

package day10_oop.keyword4;

public class Test01 {

	public static void main(String[] args) {
		
		// 1. 11의 제곱
		System.out.println(Robot.square(11));
		
		// 2. 체중 80kg, 키 180cm인 사람의 BMI
		System.out.println(Robot.bmi(80, 180));
		
		// 3. 1999년생의 지하철 요금
		System.out.println(Robot.charge(1999));
		
		// 4. 밑변 5, 높이 7인 삼각형의 넓이
		System.out.println(Robot.triangle(5, 7));
		
		// 5. 반지름 7인 원의 넓이
		System.out.println(Robot.circle(7));
	}
}

 

 

*** Java의 메모리 영역

- 스택(stack)

- 힙(heap)

- 스태틱(static)

- 레지스터(register)