본문 바로가기

전체 게시글376

[Java] 얕은 복사에 자세히 알아보면? / Shallow Copy Shallow Copy(얕은 복사) Shallow Copy(얕은 복사)는 '주소값'을 복사함으로, 참조하고 있는 실제값이 같습니다. 아래와 같은 클래스 파일을 만들었습니다. "bal1" 이라는 이름을 가진 인스턴스를 생성했습니다. 또한, 메서드를 통해 name, money를 정해줬습니다. 인스턴스를 "bal1Copy" 라는 이름을 가진 인스턴스에 복사했습니다. 이에, "bal1" changeName 메서드를 통해 name을 변경했고, spenMoney 메서드를 통해 money를 지출했습니다. 그렇다면 "bal1"은 tom 이라는 name과 900원을 가지고 있고, "bal1Copy"은 변경 전의 상황인 bob, 1000원을 가지고 있어야 한다고 생각이 듭니다. 하지만, 현재 상황은 어떻게 될까요? 출력 .. 2022. 9. 28.
[Java] 가변 인자 / String ... args / 인자(argument) 여러 개 [Java] 메서드 오버로딩(Method OverLoading)에 대해서 오버로딩(OverLoading)이란? 사전적인 의미는 '과적하다'라는 뜻을 가지고 있습니다. 기존 C언어에서는 "함수명이 고유하게 존재해야 한다." 라는 것을 시작으로 하나의 함수는 하나의 기능만을 구 starting-coding.tistory.com 하나의 클래스 안에서 같은 메소드 이름이 있더라도, 매개변수가 다르다면 메소드를 정의할 수 있다고 오버로딩에 대해서 배웠습니다. 그렇다면, 메소드 이름이 같은, 매개변수의 개수를 달리해야하는 상황에서, 메소드를 무한히 정의를 해줘야할까? 라는 의문이 들겁니다. void doFunc( String a, String b ) { 코드; } void doFunc( String a, Strin.. 2022. 9. 27.
[Java] 정수(integer), operator(연산자), 정수(integer) / 숫자, 연산자, 숫자를 입력받아 연산된 결과를 출력하는 Method 선언 및 호출 전체 소스코드(if else문을 이용) class Util02 { void doCalculator ( int data1, String data2, int data3 ) { int result; if( data2 == "+") { result = (data1 + data3); System.out.println( result ); } else if (data2 == "X") { result = (data1 * data3); System.out.println( result ); } else if (data2 == "-") { result = (data1 - data3 ); System.out.println( result ); } else if ( data2 == "/") { result = (data1 / d.. 2022. 9. 27.
[Java] 메서드 오버로딩(Method OverLoading)에 대해서 오버로딩(OverLoading)이란? 사전적인 의미는 '과적하다'라는 뜻을 가지고 있습니다. 기존 C언어에서는 "함수명이 고유하게 존재해야 한다." 라는 것을 시작으로 하나의 함수는 하나의 기능만을 구현하는 것으로 약속되어 있었으나, 자바에서는 하나의 메소드 이름으로 여러가지 기능을 구현하기 떄문에 이러한 이름이 쓰이고 있다. 즉, 자바에서는 "함수명이 고유하지 않아도 된다"라는 뜻입니다. 하나의 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메소드가 있더라도 매개변수의 개수 또는 타입이 다르면, 같은 이름을 사용해서 메소드를 정의할 수 있다. 메서드 오버로딩을 사용함으로써 메소드에 사용되는 이름을 절약할 수 있습니다. 또한, 메소드를 호출할 때 전달해야 할 매개변수의 타입이나 개수에 대해 크게 .. 2022. 9. 27.
[Java] 단수를 입력 받아서 구구단을 출력하는 Method 선언 후 호출 전체 소스코드 class Util01 { void doGugudan ( int data1 ) { for( int i = 0; i 2022. 9. 27.
[Java] 메서드 / 리턴 값 명시 / void와 void 자리에 자료형 명시에 이유 'void' 메소드 앞에 있는 문자(void)에 대해서 알아보겠습니다. 아래 코드를 살펴보겠습니다. 'doFunc1' 라는 메소드가 있고, 이 메소드를 '1' 이라는 인자를 넣어서 호출하고 있습니다. 결과는, 오류없이 출력되는 것을 아래 그림을 통해 확인해볼 수 있습니다. 그렇다면 아래 표시한 'void' 단어의 의미는 무엇일까요? 결론부터 말씀드리면, 메소드의 return값이 없음(void: 사전적으로 "텅 빈" 이라는 뜻)을 의미합니다. return이란? return 뒤에 따라오는 값을 메소드의 결과로 반환하고, 메소드를 종료 시킵니다. 주의해야할 점은 return을 통해서 반환할 값의 데이터 형식을 메소드의 이름 옆에 명시해주어야 한다는 것입니다. 아래는 두개의 수를 입력받아 덧셈을 한 후 결과를 .. 2022. 9. 27.