본문 바로가기
Java

[자바 입문] 메소드

by sangyunpark 2023. 8. 12.

메소드

필드가 물체의 상태라면, 물체의 행동에 해당하는게 메소드이다.

car에 이름과 번호가 있기도 하지만, car는 앞으로 전진할 수도 있고, 후진하는 행동도 할 수 있다.

- 메소드는 입력값이 있고, 그 입력값을 받아서 무언가 한 다음 결과를 도출해 내는 수학의 함수와 비슷한 개념

- 이때 입력값을 매개변수라고 하고, 결과값을 리턴값이라고 한다.

- 인자(Argument)는 어떠한 함수를 호출시에 전달되는 값

- 매개변수(Parameter)는 그 전달된 인자를 받아들이는 변수를 의미

- 메소드란 클래스가 가지고 있는 기능이다. 클래스 안에 선언된다.

 

다양한 형태의 메소드

매개변수도 없고 리턴하는 것도 없는 형태의 메소드

리턴하는 것이 없는 경우 void라고 작성

 

public class MyClass{
	public void method1(){
    	System.out.println("method1 실행");
    }
}

정수를 받아들인 후, 리턴하지 않는 메소드

받아 들이는 값은 어떤 타입이라도 상관없다.

받아 들이는 값의 수는 여러개 일 수 있다. 여러개 있을 경우 콤마(,)로 구분

 

public class MyClas{
	public void method2(int x){
    	System.out.println(x + " 를 이용하는 method2입니다");
    }
}

정수를 받아들인 후, 리턴하지 않는 메소드이다.

아무것도 받아들이지 않고, 정수를 반환하는 메소드

리턴하는 값 앞에 return이라는 키워드를 사용한다.

메소드 이름 앞에는 리턴하는 타입을 적어준다.

리턴타입은 하나만 사용할 수 있다. 리턴하는 타입은 어떤 타입이라도 상관없다.

public int method3(){
	System.out.println("method3 실행");
    
    return 10;
}

정수를 2개 매개변수로 받고, 아무것도 반환하지 않는 메소드

public void method4(int x, int y){
	System.out.println(x + "," + y + " 를 이용하는 method4입니다.");
}

 

정수를 한 개 받아들인 후, 정수를 반환하는 메소드

public class MyClass{
	public void method(){
    	System.out.println("method1이 실행");
    }
    
    public void method2(){
    	System.out.println(x + " 를 이용하는 method2입니다.");
    }
    
    public int method3(){
    	System.out.println("method3이 실행됩니다.");
        
        return 10;
    }
    
    public void method4(int x, int y){
    	System.out.println(x + "," + y + "를 이용하는 method4입니다.");
    }
    
    public int method5(int y){
    	System.out.println(y + " 를 이용하는 method5입니다.");
        return 5;
    }
}

메소드 선언 실습

https://school.programmers.co.kr/learn/courses/5/lessons/366

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

public class MyClass{
    //이곳에 코드를 작성하세요.
    public int myMethod(int x){
        return 4;
    }
}

메소드 사용해보기

MyClass

 public class MyClass{
        public void method(){
            System.out.println("method1이 실행됩니다.");
        }

        public void method2(int x){
            System.out.println(x + " 를 이용하는 method2입니다.");
        }

        public int method3(){
            System.out.println("method3이 실행됩니다.");
            return 10;
        }

        public void method4(int x, int y){
            System.out.println(x + "," + y + " 를 이용하는 method4입니다.");
        }

        public int method5(int y){
            System.out.println(y + " 를 이용하는 method5입니다.");
            return 5;
        }
    }

메소드를 사용하기 위해서는  메소드가 정의된 클래스인 MyClass가 생성되어야 한다.

객체를 생성할 때는 new 연산자를 이용한다.

메소드를 사용할때는 생성된 클래스를 참조하는 레퍼런스 변수.메소드명()으로 사용할 수 있다.

 

public class MyClassExam{
        public static void main(String args[]){
            MyClass my1 = new MyClass(); //메소드가 정의된 클래스 생성 

            my1.method1();   //MyClass에서 정의해 놓은 메소드 method1() 를 호출한다.       

            my1.method2(10);

            int x = my1.method3();

            System.out.println("method3 이 리턴한 " + x + " 입니다.");

            my1.method4(10,100);

            int x2 = my1.method5(50);

            System.out.println("method5 가 리턴한 " + x2 + " 입니다.");

        }
    }

메소드 사용해보기 실습(1)

https://school.programmers.co.kr/learn/courses/5/lessons/357

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

class ReferenceTypeExam {
    public static void main(String []args) {
        ReferenceTypeExam exam = new ReferenceTypeExam();
        
        //기본형 변수value1을 addOne에 전달합니다.
        int value = 10;
        exam.addOne(value);
        System.out.println("기본형 변수의 값을 다른 메소드에서 변경한 결과: " + value);
        
        //참조형 변수arr을 addOne에 전달합니다.
        int []arr = {10};
        exam.addOne(arr);
        System.out.println("참조형 변수의 값을 다른 메소드에서 변경한 결과: " + arr[0]);
    }
    
    
    public void addOne(int value) {
        value++;
    }
    
    public void addOne(int[] arr) {
        for(int i = 0; i < arr.length; i++){
            arr[i] ++;
        }
    }
}

메소드 사용해보기 실습(2)

https://school.programmers.co.kr/learn/courses/5/lessons/909

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

class CarExam {
    public static void main(String [] args) {
        // 이 아래에서 car에 Car클래스의 인스턴스를 생성하고 run메소드를 사용해 보세요.
        Car car = new Car();
        
        car.run();
        
    }
}

'Java' 카테고리의 다른 글

[자바 입문] 변수의 scope와 static  (0) 2023.08.14
[자바 입문] String 클래스 메소드  (0) 2023.08.14
[자바 입문] 필드(field)선언  (0) 2023.08.12
[자바 입문] String 클래스  (0) 2023.08.11
[자바 입문] 참조 타입  (0) 2023.08.11