❗어떤 문제가 있었는지
- 금일 학습내용 ( Java 메서드 마무리 / Java 예제 응용 퀘스트 진행)
- 메서드 선언 부분에서 void 로 선언하는 때와 int, double 과 같이 선언하는 개념에서의 혼선이 있었음
- 이는 메서드를 선언함에 있어서 메서드의 반환 타입을 어떻게 돌려줄 것인지에 대한 정의를 한다 라는 개념
- void
- void는 아무 값도 반환하지 않는다는 개념이며 메서드 안에서 동작만 하고 끝낼때 사용
- int, double 등 자료형
- 메서드가 결과값을 계산해서 돌려주어야 할때는 int, double, String과 같은 자료형을 반환 타입으로 지정
- return 키워드로 값을 돌려줘야 하고, 그 값의 타입은 선언한 반환 타입과 동일해야 함
- void
- 이는 메서드를 선언함에 있어서 메서드의 반환 타입을 어떻게 돌려줄 것인지에 대한 정의를 한다 라는 개념
- 메서드 선언 부분에서 void 로 선언하는 때와 int, double 과 같이 선언하는 개념에서의 혼선이 있었음
- 사전캠프 퀘스트 진행 간 배우거나 사용해보지 않았던 기능들에 대한 활용 필요성을 확인
- Quest 1.
- java.util.Random 기능을 통한 랜덤 닉네임 생성기를 구현해야 함
import java.util.Random; 선언 반드시 필요 - Random 함수에 대한 기본적인 이해도 필요
- java.util.Random 기능을 통한 랜덤 닉네임 생성기를 구현해야 함
- Quest 2 (진행중)
- Map 에 대한 이해도가 없어 실행창에 표시해야 하는 데이터에 대해 매칭시키기 어려운 상황이 발생
- 조건문 생성에 있어 일일히 print 함수로 나타낸 결과값들을 조건문에 포함하기 어려웠음
- Map 에 대한 이해도를 기본적으로 갖춘 이후 코딩 작성 필요
- 향상된 for문 활용에 있어 이해도 필요
- Map 에 대한 이해도가 없어 실행창에 표시해야 하는 데이터에 대해 매칭시키기 어려운 상황이 발생
- Quest 1.
📝 내가 시도해본 것들
- 메서드 호출과 값 변환 예제 진행
더보기
MethodValue2 예제를 통해 메서드 호출 전,후 변경 전,후의 결과값과 실행 과정들을 살펴볼 수 있음
package method; public class MethodValue2 { public static void main(String[] args) { int number = 5; System.out.println("1. changeNumber 호출 전, num1 : " + number); changeNumber(number); System.out.println("4. changeNumber 호출 후, num1 : " + number); } public static void changeNumber(int number ) { System.out.println("2. changeNumber 변경 전, num2 : " + number); number = number * 2; System.out.println("3. changeNumber 변경 후, num2 : " + number); } }실행 결과

MethodValue3 예제를 통해 메서드 호출 전,후 변경 전,후의 결과값이 이전 예제와 다르게 호출되는 것을 알 수 있음
package method; public class MethodValue3 { public static void main(String[] args) { int num1 = 5; System.out.println("changeNumber 호출 전, num1 : " + num1); num1 = changeNumber(num1); System.out.println("changeNumber 호출 후, num1 : " + num1); } public static int changeNumber(int num2) { num2 = num2 * 2; return num2; } }
실행 결과
💡어떻게 해결했는지
- Random 클래스 객체 생성을 통해 1차원 배열을 랜덤하게 불러오는 구성을 활용
import java.util.Random;
public class RandomNicknameCreator {
private String[] firstList = {"기철초풍", "멋있는", "재미있는"};
private String[] secondList = {"도전적인", "노란색의", "바보같은"};
private String[] thirdList = {"돌고래", "개발자", "오랑우탄"};
public String createRandomNickname() {
// 여기에 랜덤으로 닉네임을 만드는 코드를 적어주세요
Random random = new Random();
String first = firstList[random.nextInt(firstList.length)];
String second = secondList[random.nextInt(secondList.length)];
String third = thirdList[random.nextInt(thirdList.length)];
return first + " " + second + " " + third;
}
public static void main(String[] args) {
RandomNicknameCreator randomNicknameCreator = new RandomNicknameCreator();
String myNickname = randomNicknameCreator.createRandomNickname();
System.out.println("생성된 닉네임 : " + myNickname);
}
}
👍무엇을 새롭게 알았는지
- 메서드의 호출과 값 변환 예제를 통하여 자바는 항상 변수의 값을 복사해서 대입한다는 개념에 대해 익힘
- 메서드 오버로딩은 이름이 같고 매개변수가 다른 메서드를 여러개 정의 하는 개념
- 단, 이름이 같아도 매개변수의 타입 및 순서가 다르면 오버로딩을 할 수 있음
- 메서드 시그니처(method signature)
- 메서드 시그니처 = 메서드 이름 + 매개변수 타입(순서)
- 메서드 시그니처는 메서드를 구분할 수 있는 기준이라고 이해할 수 있음
- Random 라이브러리 활용과 사용 방법에 대한 이해를 갖추게 되었음
- Map은 키(Key)와 값(Value)의 대응관계를 쉽게 표현하고자 할 때 사용하는 자료형
- 맵 자료형에는 HashMap, LinkedHashMap, TreeMap 등이 있음
- 맵의 큰 특징은 순서에 의존하지 않고 Key로 Value를 가져오는 것이나 다음과 같은 경우에는 위의 각 다른 Map 기능을 활용
- LinkedHashMap : 입력된 순서대로 데이터를 저장
- TreeMap : 입력된 key의 오름차순으로 데이터를 저장
- 맵의 큰 특징은 순서에 의존하지 않고 Key로 Value를 가져오는 것이나 다음과 같은 경우에는 위의 각 다른 Map 기능을 활용
- 맵 자료형에는 HashMap, LinkedHashMap, TreeMap 등이 있음
'내배캠 끄적끄적 > Today I Learned' 카테고리의 다른 글
| 250828 TIL (3) | 2025.08.28 |
|---|---|
| 250827 TIL (6) | 2025.08.27 |
| 250825 TIL (4) | 2025.08.25 |
| 250822 TIL (0) | 2025.08.22 |
| 250821 TIL (2) | 2025.08.21 |