250826 TIL

2025. 8. 26. 18:00·내배캠 끄적끄적/Today I Learned

 

❗어떤 문제가 있었는지

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

📝 내가 시도해본 것들

  • 메서드 호출과 값 변환 예제 진행
    더보기

     

     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의 오름차순으로 데이터를 저장 

'내배캠 끄적끄적 > 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
'내배캠 끄적끄적/Today I Learned' 카테고리의 다른 글
  • 250828 TIL
  • 250827 TIL
  • 250825 TIL
  • 250822 TIL
stark77
stark77
하마의 IT 자기개발 이모저모, 백엔드 개발자로 거듭나기
  • stark77
    하마의 개발자 성장일기
    stark77
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 컴퓨터구조와 운영체제
        • 컴퓨터구조
        • 운영체제
      • SQL 기초
      • Spring
        • 백엔드 기초
        • Spring 실습
      • JAVA
        • Java 실습
      • HTML&CSS
        • HTML&CSS 실습
      • Git&GitHub
        • Git&GitHub 실습
      • 내배캠 끄적끄적
        • Today I Learned
      • 유용한 툴 및 사이트 정리
      • 취미
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    SpringSecurity
    jsp
    MVC
    Til
    RestTemplate
    Github
    Spring
    Spriingboot
    백엔드 기초
    BEAN
    git
    thymleaf
    JPA
    Stomp
    Java 문법기초
    백엔드 기초다지기
    웹소켓
    경합조건과 교착상태
    HTML&CSS
    java
    객체지향
    실시간 데이터 처리
    프로세스와 쓰레드
    for문
    네트워크 기초
    algorithm
    다형성
    String.format
    WebSocket
    객체지향프로그래밍
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
stark77
250826 TIL
상단으로

티스토리툴바