개발의 시작과 끝
2020.02.22 / Day - 9 static 메서드, 매개변수, 리턴 본문
a7A - 7일차
static 메서드
static - 고정시키다.
static을 사용하면 객체화 없이 설계도에 있는 능력을 바로 쓸 수 있다.
예를들어 달리다 메서드를 만들때 앞에 static을 붙이면 달리다 메서드는 static 메서드가 된다.
static 메서드는 함수고도 하며, 모든 인스턴스들이 공유하는 자원으로 사용하고 싶을 때 쓴다.
static이 붙어있는 경우 객체화 하지 않아도 되므로 new를 하지 않아도 돼서 편리하다.
바로 클래스로 쓸 수 있고, 변수나 메서드에 붙일 수 있다.
class Main {
public static void main(String[] args) {
자동차.달리다();
}
}
class 자동차 {
static void 달리다() { // 인스턴스 메서드
System.out.println("자동차가 달립니다.");
}
}
매개변수(parameter)
매개변수 함수(메서드) 안에서 미정이었다가 함수가 호출될 때 넘어오는 값으로 세팅 된다.
클래스 안에 void 달리다(int a)를 매개변수라고 한다.
자동차 달리다(70);에서 함수가 호출될 때 매개변수 안에 있는 값을 인자라고 한다.
매개변수를 사용할 때 규칙은 맞춰줘야 한다.
그리고 매개변수가 있으면 함수를 호출할 때 매개변수대로 값을 넣어줘야한다.
class 자동차 {
ststic void 달리다() {
int a = 10;
System.out.println(a + "km/h");
}
}
자동차.달리다(); 출력 값 => 10km/h
▼ 매개변수 사용
class 자동차 {
ststic void 달리다(int a) {
System.out.println(a + "km/h");
}
}
자동차.달리다(70); 출력 값 => 70km/h
리턴
class 계산기 {
static void 더하기(int a, int b) { // void를 쓰면 return하지 않겠다고 선언하는 것이다.
int c = a + b;
System.out.println(c) // 30 출력만 한것이고 과제 제출을 하지 않은 것.
}
int x = 계산기.더하기(10, 20);
System.out.println(x + 20);
▼ return
class 계산기 {
static int 더하기(int a, int b) { // 함수 리턴타입 -> 정수를 리턴한다.
return a + b;
}
int x = 계산기.더하기(10, 20); // int x -> 의뢰자
System.out.println(x); // 30
int x = 계산기.더하기(100, 200);
System.out.println(x); // 300
의뢰자한테 과제를 제출하려면 값을 반환을 해야하는데 return이 그 역할을 한다.
과제를 제출하려면 return을 써야한다.
예제 문제
- 리턴 출력
class Main {
public static void main(String[] args) {
int 결과;
결과 = 계산기.합(10, 20);
System.out.println("결과 : " + 결과);
// 출력: 결과 : 30
결과 = 계산기.합(30, 20);
System.out.println("결과 : " + 결과);
// 출력: 결과 : 50
}
}
class 계산기 {
static int 합(int a, int b) {
return a + b;
}
}
- 1부터 n까지의 합
class Main {
public static void main(String[] args) {
int 결과1 = Math.oneToSum(3);
System.out.println("결과1 : " + 결과1);
// 출력 : 결과1 : 6
int 결과2= Math.oneToSum(10);
System.out.println("결과2 : " + 결과2);
// 출력 : 결과2 : 55
}
}
class Math {
static int oneToSum(int n) {
int sum = 0;
for (int i = 1; i <= n; i++) {
sum += i;
}
return sum;
}
}
- n부터 m까지의 합
class Main {
public static void main(String[] args) {
int 결과1 = Math.nToMSum(2, 3);
System.out.println("결과1 : " + 결과1);
// 출력 : 결과1 : 5
int 결과2 = Math.nToMSum(5, 10);
System.out.println("결과2 : " + 결과2);
// 출력 : 결과2 : 45
}
}
class Math {
static int nToMSum(int a, int b) {
int sum = 0;
for (int i = a; i <= b; a++) {
sum += i;
}
return sum;
}
}
'자바 공부' 카테고리의 다른 글
2020.02.23 / Day - 10 상속을 통한 캐스팅 허용 (0) | 2020.02.23 |
---|---|
2020.02.23 / Day - 10 상속, 메서드 오버라이딩 (0) | 2020.02.23 |
2020.02.19 / Day - 6 레퍼런스 변수 (0) | 2020.02.19 |
2020.02.18 / Day - 5 클래스 (0) | 2020.02.18 |
2020.02.17 / Day - 4 code.org & 자바 기초 문제 (0) | 2020.02.17 |