1. 메서드, 정의, 메서드 구현
1) 아래의 메서드 구현 코드에서 틀린 곳을 찾아 올바르게 수정하시오.
//문제
public class Java100_method_ExamStatic1 {
public void helloWorld() {
System.out.println("Hello, World~ ^_^");
}
public static void main(String[] args) {
//[1]: 메서드 호출
helloWorld();
}
}
//풀이
public class Java100_method_ExamStatic1 {
public static void helloWorld() {
System.out.println("Hello, World~ ^_^");
}
public static void main(String[] args) {
//[1]: 메서드 호출
helloWorld();
}
}
//main()가 static이니 추가한 함수도 static이어야 호출할 수 있음
2) 메서드의 정의와 기본적인 자바의 메서드를 작성해보시오.
//[1]: 메서드란 무엇인가?
//(1) 메서드는 다른 언어에서의 함수와 마찬가지로 어떤 특정한 동작이나 처리를 하도록 만들어진 코드 단위이다.
//(2) 반복적인 작업을 처리해야 하는 경우 메서드로 만들어 놓으면 이후에 필요할 때 다시 재사용할 수 있어서 아주 유용하다.
//(3) 메서드는 호출시 어떤 결과를 반환하기도 하지만, 결과를 반환하지 않는 메서드도 있다.
//(4) 메서드는 호출시 어떤 인자 값들을 넘겨서 호출하는 경우도 있지만, 인자 값 없이 호출하는 경우도 있다.
//[2]: 메서드 종류-->크게 4가지 유형
//(1) 반환값-->X 받는 인자값-->X
//(2) 반환값-->X 받는 인자값-->O
//(3) 반환값-->O 받는 인자값-->X
//(4) 반환값-->O 받는 인자값-->O
public class Java100_method_Exam001 {
public static void showMenu() {
System.out.println("showMenu() 메서드가 호출되었습니다.");
}
public static void main(String[] args) {
//[1]: 반환값-->X 받는 인자값-->X
showMenu();
}
}
2. 반환값, 리턴, 인자값, 메서드, 덧셈
1) 반환값이 없고 받는 인자값이 2개 있는 덧셈 메서드를 구현하시오.
public class Java100_method_Exam002 {
public static void plusMethod(int a, int b) {
//단순 출력
System.out.printf("인자로 넘겨받은 2개의 값은 %d와 %d입니다.%n", a, b);
//연산 출력
int rst = a + b;
System.out.println("두 수를 더한 값은 = " + rst);
}
public static void main(String[] args) {
//[1]: 반환값-->X 받는 인자값-->O
//메서드가 받는 인자값이 있다는 것은 호출부에서 파라미터 값을 넘긴다는 뜻.
int a = 100, b = 200;
plusMethod(a, b);
}
}
3. 반환값, 인자값, 메서드
1) 반환값이 있고 받는 인자값이 없는 메서드를 구현해보시오.
public class Java100_method_Exam003 {
public static int returnMethod() {
int ret = 100;
ret *= 100;
return ret; //10000
}
public static void main(String[] args) {
//[1]: 반환값-->O 받는 인자값-->X
//반환값이 있다는 것은 메서드(함수) 호출에 따른 리턴값이 있는 것이므로 호출시 리턴값을 받는 변수를 정의한다.
int rst;
rst = returnMethod();
//[2]: 출력
System.out.println("메서드 호출에 따른 리턴된 값은=" + rst); //10000
}
}
4. 반환값, 인자값, 대문자, 메서드
1) 반환값이 있고 받는 인자값이 있는 대문자 출력 메서드를 구현해보시오.
public class Java100_method_Exam004 {
public static String capitalMethod(String str) {
//문자열 변수 선언
String ret = str.toUpperCase();
return ret;
}
public static void main(String[] args) {
//[1]: 반환값-->O 받는 인자값-->O
//반환값이 있다는 것은 메서드(함수) 호출에 따른 리턴되는 값이 있다는 것이므로 호출시 리턴값을 받는 변수를 정의한다.
//문자열 변수 선언
String rst;
rst = capitalMethod("korea");
//[2]: 출력
System.out.println("입력한 소문자의 대문자는=" + rst);
}
}
5. static, 스태틱, 선언, 메서드
1) static 선언이 안 되어있는 메서드를 사용하는 방법에 대해서 코드로 구현해보시오.
//문제
public class Java100_method_ExamStatic2 {
public void helloWorld() {
System.out.println("Hello, World~^_^");
}
public static void main(String[] args) {
//[1]: 메서드 호출
helloWorld();
}
}
//풀이
public class Java100_method_ExamStatic2 {
public void helloWorld() {
System.out.println("Hello, World~^_^");
}
public static void main(String[] args) {
//[1]: 메서드 호출
//helloWorld(); //메인 메서드는 static메서드만 호출할 수 있기 때문에 에러.
//[2]: 객체 생성 후 메서드 호출
Java100_method_ExamStatic2 jes = new Java100_method_ExamStatic2();
jes.helloWorld();
}
}
6. 메서드, 인자, 전달, Call by value
1) 메서드로 인자 전달시 정수 100을 보냈을 때의 아래 코드의 결과를 말해보시오.
public class Java100_method_MethodCall1 {
//[!]: Call by value --> 값에 의한 호출 --> 값에 의해서 (메서드를) 호출
//메서드로 인자값을 넘길 때 해당 값을 복사하여 넘기는 방식 --> 따라서 sum() 메서드 내부에서는 복사된 값으로 처리를 한다.
public static void sum(int a) {
a = a + 400;
System.out.println(a); //500
}
public static void main(String[] args) {
//[1]: 변수 선언 및 메서드 호출
int a = 100;
sum(a); //500
//[2]: 출력
System.out.println(a); //100
}
}
7. Call by reference, 메서드, 메인
1) 메인 메서드에서 100을 보냈을 때 값이 수정되게끔 Call by reference 방식으로 코드를 수정하시오.
public class Java100_method_MethodCall2 {
public static void sum(Integer a) {
a += 400;
System.out.println(a); //500
}
public static void main(String[] args) {
//[1]: 변수 선언 및 메서드 호출
//Wrapper클래스의 Integer클래스 타입으로 변수 a를 선언하고, new로 객체를 생성하여 해당 주소 값을 메서드로 보낸다.
Integer a = new Integer(100); //Call by value 방식임
sum(a);
//[2]: 출력
System.out.println(a); //100
}
}
8. Call by value, Call by reference, 호출
1) 메인 메서드에서 정수 100을 Call by reference 방식으로 메서드 호출하는 코드를 구현하시오.
class TestNumber {
int num;
TestNumber(int num) {this.num = num;}
}
public class Java100_method_MethodCall3 {
public static void sum(TestNumber a) {
System.out.println(a); //TestNumber 주소값
System.out.println(a.num); //100
a.num = a.num + 400;
System.out.println(a.num); //500
}
public static void main(String[] args) {
//[1]: 객체변수 선언
TestNumber a = new TestNumber(100);
sum(a); //a는 주소값
System.out.println("------------------------");
System.out.println(a.num); //500
}
}
9. 리턴, 반환, 메서드, 정수
1) 2개의 정수형 값을 리턴하는 메서드를 구현하시오.
import java.util.Arrays;
public class Java100_method_TwoReturn1 {
public static int[] testMethod() {
int num1 = 100;
int num2 = 200;
return new int[] {num1, num2};
}
public static void main(String[] args) {
//[1]: 배열 변수 선언 --> 메서드로부터 반환 받을 값이 배열이기 때문에
int result[] = testMethod();
//[2]: 출력
System.out.println(result); //주소값이 출력됨
System.out.println(result[0] + "-" + result[1]); //100 - 200
System.out.println(result[0] + result[1]); //300
System.out.println(Arrays.toString(result)); //반복문 사용 없이 한방에 모든 요소를 출력
//[100, 200]
}
}
10. 반환, 반환값, 메서드, 구현
1) 반환값이 2개 있는 메서드를 구현해보시오.
import java.util.Arrays;
public class Java100_method_TwoReturn2 {
public static String[] capitalMethod(String a, String b) {
String a_ = a.toUpperCase();
String b_ = b.toLowerCase();
//리턴값 2개를 저장할 배열 변수 선언
String[] ret = {a_, b_};
return ret;
}
public static void main(String[] args) {
//[1]: 반환값-->O 받는 인자값-->O
//반환값이 있다는 것-->메서드(호출) 호출에 따른 리턴값이 있다는 것-->호출부에서 리턴값을 받는 변수 정의
String[] result = capitalMethod("korea", "USA");
//[2]: 출력
System.out.println(result); //주소값 출력됨
System.out.println(result[0]); //KOREA
System.out.println(result[1]); //usa
System.out.println(result[0] + "-" + result[1]); //KOREA - usa
System.out.println(Arrays.toString(result)); //[KOREA, usa]
}
}
'Java > 예제로 공부하는 Java 100 문제풀이' 카테고리의 다른 글
[예제로 공부하는 Java 100 문제풀이 Part.2] 섹션1 - 배열 (0) | 2023.01.04 |
---|---|
[예제로 공부하는 Java 100 문제풀이 Part.2] 섹션0 - 조건문, 반복문 (0) | 2022.12.22 |
[예제로 공부하는 Java 100 문제풀이 Part.1] 섹션2 - 자료형, 연산자 (0) | 2022.12.13 |
[예제로 공부하는 Java 100 문제풀이 Part.1] ] 섹션1 - 환경설정, 변수 (0) | 2022.12.12 |
[예제로 공부하는 Java 100 문제풀이 Part.1] 섹션0 - 개요 (1) | 2022.12.12 |