티스토리 뷰

[개발] - Java/후발대

후발대 5일차

완벽한 장면 2023. 1. 14. 09:08

메서드와 메서드 문법

메서드

  • 메서드란
  • 메서드 문법의 형식
  • 메서드의 4가지 형태
  • 키워드 : 메서드, static, 메서드 호출방법, 프로그램의 동작과 흐름 등

수업 내용

/*
메서드
: 반복적으로 사용할 모음에 이름표를 붙여주는 것.
 이름표를 호출하는 방식으로 사용을 한다.
 
 메서드란?
 함수와 같은 역할로 자바에서는 클래스 내부에서 메서드를 만들어 사용한다.
 반복적인 기능을 쉽게 관리하기 위해서 사용하고, 재사용의 목적이 있기 때문에 특정성을 부여해서는 안 된다.
 
 사용이유
 1) 높은 재사용성
 : 한 번 만들어놓은 메서드는 몇 번이고 호출할 수 있으며, 다른 프로그램에서도 이용이 가능하다.
 
 2) 중복된 코드의 제거
 : 프로그램의 구조화 및 소스코드의 간결화(모듈화의 시작)
*/



public class Prac05 {
  public static void main(String args[]) {
	String title = "웹개발의 봄 Spring";
	String tutor = "남병관";
	int weeks = 5;
	float ratings = 5.0f;

	System.out.println("제목: " + title);
	System.out.println("튜터: " + tutor);
	System.out.println("주차: " + weeks);
	System.out.println("별점: " + ratings);

// 강의정보를 여러번 인쇄하고 싶다면 
// 같은 코드가 반복이 여러번 되어 코드가 중복, 길어지는 불편이 생김. 
-----
// 메소드로 만들어 보면서 사용해보자.
// 반복적인 동작이 일어날 부분에 메소드로 만들어 이름표를 붙여주고 
// 이름표를 호출하는 방식으로 메소드를 사용해보자.

public class Prac05 {
public static void printInfo() {
	String title = "웹개발의 봄 Spring";
	String tutor = "남병관";
	int weeks = 5;
	float ratings = 5.0f;
	
	System.out.println("제목: " + title);
	System.out.println("튜터: " + tutor);
	System.out.println("주차: " + weeks);
	System.out.println("별점: " + ratings);
}


    public static void main(String[] args) {
        
        // 여러번 인쇄할때 , 이름표 호출
        printInfo();
        printInfo();
        printInfo();
    }
}

// 메소드문법
            // public (반환타입) 메소드명(파라미터) {
    				// 실행 명령문
            // return (반환값) 
// 반환 타입이 없는 경우, void는 프로그램이 자동으로
// return을 만들어 주므로 작성하지 않아도 된다. 

------
// 메소드의 4가지 종류 
  public class Prac05 {
    		
    // 파라미터 X, 반환값 X
    // 메서드니까 public을 붙였고, main문 안에서 실행할 테니 static, 반환값 없으니 void
    // 넘겨받는 파라미터도 없는데, 그 이야기는 simplePrint를 호출했을 때, 요 실행문{ }안의 코드가 출력이 된다는 뜻
    public static void simplePrint() {
        System.out.println("파라미터도 없고, 반환값도 없어요!");
    }

    // 파라미터 O, 반환값 X
    // simpleSum 함수를 main문에서 호출했을 때, 두 개의 정수타입을 넘겨줘야 한다는 의미.
    // 두 개의 정수만 넘겨주면, 해당 함수가 실행된다.
    public static void simpleSum(int num1, int num2) {
        System.out.println("num1 :" + num1 + ", num2: " + num2);
    }

    // 파라미터 X, 반환값 O
    public static int simpleReturn() {
        return 3;
    }

    // 파라미터 O, 반환값 O
    public static int sum(int num1, int num2) {
        return num1 + num2;
    }

    public static void main(String[] args) {
        simplePrint();
        simpleSum(1,3);
        simpleReturn(); // 이건 출력문이 없기 때문에 콘솔에서 받을 수 없겠죠.
        // 이게 int타입이었으니까, int 타입의 변수를 선언해줍니다.
        int ret = simpleReturn();
        System.out.println(ret);

        int ret1 = sum(4,9);
        System.out.println(ret1);
    }

    
// 클래스 안에 작성된 메서드를 main 문에서 호출하여 사용 
    public static void main(String[] args) {
            simplePrint();
            simpleSum(1,2);
            int ret = simpleReturn();
            System.out.println(ret);
            int ret1 = sum(10,7);
						System.out.println(ret1);

		}
} // 클래스 Prac05에 있는 최종괄호는 마지막에 닫혀야 하나의 클래스에서 메인문에서 해당 
// 클래스의 함수를 실행하는데 동작을 끝까지 할 수 있다. {} 중괄호는 흐름에서 꼭 잘 
// 이해하고 확인해 볼 것 
---




// 퀴즈1 
// 계산기를 구현해 봅니다.(Prac 이 Calc 클래스라고 하고 Prac에 만들어 보기.)
// long 타입으로 두 수 를 받아서  덧셈, 뺄셈, 곱셈을  한 값을 반환하는 메소드를 만들고
// 나눗셈의 연산은 double타입으로 반환하는 메서드를 구현합니다.
// 메인문에서 사칙연산을 한 값을 인쇄해 보세요.
// 메소드명은 자유롭게 지으세요.
public class Prac05 {
public static long add(long a, long b) {
      return a + b;
    }

    public static long subtract(long a, long b) {
        return a - b;
    }

    public static long multiply(long a, long b) {
        return a * b;
    }

    public static double divide(double a, double b) {
        return a / b;
    }

    public static void main(String[] args) {
// 연산결과를 메서드를 통해 수행은 하고 그 결과를 담을 변수를 만들어 출력
// 흐름 동작원리에 대해 이해할것 
        long ret1 = add(10L, 7L);
        System.out.println(ret1);

        long ret2 = subtract(10L,7L);
        System.out.println(ret2);

        long ret3 = multiply(10L,7L);
        System.out.println(ret3);

        // 파라미터로 long타입을 넘겨 주었으나, 메소드 실행시 double a = 5L;을
        // 실행한 결과와 같이 double형 값으로 결과가 자동 형변환 되어 연산결과는
        // double값이 됩니다.
        double ret4 = divide(10L,7L);
        System.out.println(ret4);
		}
}
 

---------
// 퀴즈 3
// a를 입력받아 1~a까지의 합을 리턴하는 함수를 만듦.
// 해당 메소드를 호출하여 연산결과를 인쇄하는 프로그램
    public static int function(int a) {
        // 여기서는 우리가 1에서 a까지를 돌면서 그 누적 결과의 합을 반환해주는 함수를 만들어야 할텐데요.
        // for문과 result가 필요하겠지!
        int result1 = 0;
        for(int i = 1; i <= a; i++) {
            result1 += i;
        }
        return result1;
    }
    public static void main(String[] args) {
        // Scanner 사용하지 않고, n값을 직접 지정한다.
        int a = 10;
        int sum = function(a); // 결과를 직접 보기 위한 함수.
        System.out.println("1부터 " + a + "까지의 합은" + sum + "입니다!");

    }


----

// 클래스로 쓸 때의 예 

class Calculator {
    public int value; // 멤버변수

// 생성자
    Calculator() {
        this.value = 0;
    }

// 메서드
    void add(int val) {
        this.value += val;
    }

// 메서드 
    int getValue() {
        return this.value;
    }
}

public class Prac05 {
    public static void main(String[] args) {
        Calculator cal = new Calculator();
        cal.add(10);
        System.out.println(cal.getValue());  // 10 출력
    }
}
728x90
반응형

'[개발] - Java > 후발대' 카테고리의 다른 글

후발대 7일차  (0) 2023.01.14
후발대 6일차  (0) 2023.01.14
후발대 4일차  (0) 2023.01.14
후발대 3일차  (0) 2023.01.14
후발대 2일차  (0) 2023.01.14
Comments
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
250x250