옝옹
냠
옝옹
전체 방문자
오늘
어제
  • 분류 전체보기 (84)
    • [LG유플러스]유레카 SW (5)
    • React (20)
    • JS (17)
    • TypeScript (5)
    • CSS & HTML (1)
    • 알고리즘 (11)
    • JAVA (20)
    • GIT (1)
    • 자격증 (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • switch문
  • map
  • do-while문
  • TypeScript
  • java
  • 노마드코더
  • indexOf()
  • 화살표함수
  • 혼자 공부하는 자바
  • template literal
  • 리액트
  • join()
  • useMemo
  • 자바스트립트
  • useCallback
  • match()
  • 자바스크립트
  • reverse() 메서드
  • java.lang패키지
  • 함수선언
  • 타입스크립트
  • 백준
  • While문
  • join() 메서드
  • Node.js
  • continue문
  • ==
  • 접근제한자
  • 혼자공부하는자바
  • 템플릿리터럴
  • 인스턴스멤버
  • useRef
  • 코드스플리팅
  • js
  • reduce
  • 기본api클래스
  • sort() 메서드
  • 변수선언
  • 타입변환
  • fillter
  • map() 함수
  • useEffect
  • JavaScript
  • 정적멤버
  • 리액트를다루는기술
  • toFixed
  • 자바
  • useState
  • java.util패키지
  • break문

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
옝옹

냠

메소드
JAVA

메소드

2022. 10. 13. 07:52

메소드 선언

메소드 선언은 선언부(리턴 타입, 메소드 이름, 매개 변수 선언)와 실행 블록으로 구성

  • 리턴 타입
    • 리턴값(메소드를 실행한 후의 결과값)의 타입
    •  메소드는 리턴값이 있을 수도 있고 없을 수도 있으나 리턴값이 있을 경우 리턴 타입이 선언부에 명시
void powerOnO { ••• }
double divide( int x, int y ) { ••• }
// 리턴값의 유무는 메소드를 호출하는 방법에서 다름
powerOnO;
double result = divide( 10, 20 );
  • 메소드 이름 
    • 숫자로 시작하면 안 되고, $와 _를 제외한 특수 문자를 사용하지 말아야 합니다.
    • 관례적으로 메소드 이름은 소문자로 작성합니다.
    •  서로 다른 단어가 혼합된 이름이라면 뒤이어 오는 단어의 첫 글자는 대문자로 작성합니다.
  • 매개 변수 선언
    • 매개 변수는 메소드가 실행할 때 필요한 데이터를 외부로부터 받기 위해 사용
    • 매개 변수의 개수를 모를 경우
    •  
public class Computer {

// 1. 매개 변수를 배열타입으로 선언
    int suml(int[] values) {
        int sum = 0;
        for(int i=0; i<values.length; i++) {
        	sum += values[i];
        }
        return sum;
     }

// 2. 배열을 생성하지 않고 값의 목록만 넘겨주는 방법
// - 메소드의 매개 변수를 •••를 사용해서 선언하게 되면
//   메소드 호출 시 넘겨준 값의 수에 따라 자동으로 배열이 생성되고 매개값으로 사용
    int sum2(int ••• values) {
        int sum = 0;
        for(int i=0; i<values.length; i++) {
        	sum += values[i];
        }
        return sum;
    }
}
public class ComputerExample {
    public static void main(String[] args) {
        Computer myCom = new Computer();

        int[] values1 = {1, 2, 3};
        int resultl = myCom.sum1(values1);

        int result2 = myCom.sum1(new int[] {1, 2, 3, 4, 5});

        int result3 = myCom.sum2(l, 2, 3);
        
       	int result4 =  myCom.sum2(new int[] { 1, 2, 3, 4, 5 });
    }
}

리턴(return)문

  • 리턴값이 있는 메소드
    • 메소드 선언에 리턴 타입이 있는 메소드는 반드시 리턴을 사용해서 리턴값을 지정
  • 리턴값이 없는 메소드: void
    •  void로 선언된 메소드에서도 return문을 사용할 수 있다.
      • 이것은 리턴값을 지정하는 것이 아니라 메소드 실행을 강제 종료시키는 역할
      • return;

메소드 호출

 

 

 

 

1. 객체 내부에서 호출

 

 

 

 

 

 

 

 

2. 객체 외부에서 호출

 

// 1. 클래스로부터 객체를 생성
클래스 참조변수 = new 클래스( 매개값, … );

// 2. 참조 변수와 함께 도트(.) 연산자를 사용해서 메소드를 호출 가능
//  도트(.) 연산자는 객체 접근 연산자로 객체가 가지고 있는 필드나 메소드에 접근할 때 사용
참조변수.메소드( 매개값, … ); //리턴값이 없거나, 있어도 리턴값을 받지 않을 경우 
타입 변수 = 참조변수.메소드( 매개값, … ); //리턴값이 있고, 리턴값을 받고 싶을 경우

Car myCar = new Car();
myCar.keyTurnOn();
myCar.run();
int speed = myCar.getSpeed();

메소드 오버로딩

  • 클래스 내에 같은 이름의 메소드를 여러 개 선언하는 것을 메소드 오버로딩이라고 한다.
  • 매개 변수의 타입, 개수, 순서 중 하나가 달라야 한다

 

확인 문제

1. 메소드에 대한 설명입니다. 빈 칸에 알맞은 단어를 쓰세요.
① 리턴값이 없는 메소드는 리턴 타입을 ( void )로 해야 한다.
② 리턴 타입이 있는 메소드는 리턴값을 지정하기 위해 반드시 ( return )문이 있어야한다.
③ 매개값의 개수를 모를 경우 ( … )를 이용해서 매개 변수를선언할 수있다.
④ 같은 이름의 메소드를 여러 개 선언하는 것을 메소드 ( 오버로딩 )이라고한다.

 

2. 메소드 오버로딩에 대한 설명으로 맞는 것에 O표, 틀린 것에 x표 하세요.
① 동일한 이름의 메소드를 여러 개 선언하는 것을 말한다. ( O )
②  반드시 리턴 타입이 달라야 한다. ( X )

-> 매개 변수의 타입, 개수, 순서 중 하나가 달라야 한다

③ 매개 변수의 타입, 개수, 순서를 다르게 선언해야 한다. ( O )
④ 매개값의 타입 및 개수에 따라 호출될 메소드가 선택된다. ( O )

 

3. MemberService 클래스에 login() 메소드와 logoutQ 메소드를 선언하려고 합니다. login() 메소드를 호출할 때에는 매개값으로 id와 password를 제공하고, logout() 메소드는 id만 매개값으로 제공합니다. [] 에서 MemberSeivice 클래스와 login(), logout() 메소드를 선언해보세요

package CH06.test03;

public class Memberservice {
    boolean login(String id, String password) {
    	if(id.equals("hong") && password.equaIs("12345")) {
    		return true;
    	} else {
        	return false;
        }
    }
    void logout(String id) {
    	System.out.println("로그아웃 되었습니다.");
    }
}
package ch04.test04;

public class MemberServiceExample { 
    public static void main(String[] args) {
        MemberService memberservice = new MemberServiceQ; 
        boolean result = memberservice.login("hong", "12345"); 
        
        if(result) {
        	System.out.println("로그인 되었습니다."); 
        	memberService.logout("hong");
        } else {
        	System.out.println("id 또는 password가 올바르지 않습니다."); 
        }
    }
}

4. PrinterExample 클래스에서 Printer 객체를 생성하고 println() 메소드를 호출해서 매개값을 콘솔에 출력하려고 합니다. println() 메소드의 매개값으로는 int, boolean, double, String 값을 줄 수 있습니다. Printer 클래스에서 printlnO 메소드를 선언해보세요.

package CH06.test04;

public class Printer {
    static void println(int value) {
    	System.out.println(value);
    }
    
    static void println(boolean value) {
    	System.out.println(value);
    }
    static void println(double value) {
    	System.out.println(value);
    }
    static void println(String value) {
    	System.out.println(value);
    }
}

 

저작자표시 비영리 변경금지 (새창열림)

'JAVA' 카테고리의 다른 글

패키지와 접근 제한자  (0) 2022.10.13
인스턴스 멤버와 정적 멤버  (0) 2022.10.13
생성자  (1) 2022.10.12
열거 타입  (1) 2022.09.26
배열  (2) 2022.09.26
    'JAVA' 카테고리의 다른 글
    • 패키지와 접근 제한자
    • 인스턴스 멤버와 정적 멤버
    • 생성자
    • 열거 타입
    옝옹
    옝옹

    티스토리툴바