메서드

메서드가 호출될 때마다 코드를 수행한다. 여러 번 작성하지 않고 재사용 할 수 있다는 장점이 있다.

static void Main(string[] args)
{
    singHappyBirthday();
    singHappyBirthday();
    singHappyBirthday();
}
static void singHappyBirthday()
{
    Console.WriteLine("생일 축하합니다.");
    Console.WriteLine("생일 축하합니다.");
    Console.WriteLine("사랑하는 당신의");
    Console.WriteLine("생일 축하합니다.");
}

 

이름을 넣어 노래를 부르기 위해 변수를 만들어보자.

static void Main(string[] args)
{
    String name = "김사람";

    singHappyBirthday();
}
static void singHappyBirthday()
{
    Console.WriteLine("생일 축하합니다.");
    Console.WriteLine("생일 축하합니다.");
    Console.WriteLine("사랑하는 " + name);
    Console.WriteLine("생일 축하합니다.");
}

 

다른 메서드 내의 변수를 불러올 수 없기 때문에 오류가 발생할 것이다.

 

그렇기 때문에 매개변수와 인자를 통해 메서드에 값을 전달하도록 한다.

static void Main(string[] args)
{
    String name = "김사람";

    singHappyBirthday(name);
}
static void singHappyBirthday(String name)
{
    Console.WriteLine("생일 축하합니다.");
    Console.WriteLine("생일 축하합니다.");
    Console.WriteLine("사랑하는 " + name);
    Console.WriteLine("생일 축하합니다.");
}

 

여러 개의 인수를 입력할 수 있다.

마찬가지로 데이터 타입과 변수명을 입력해주면 된다.

static void Main(string[] args)
{
    String name = "김사람";
    int age = 3;

    singHappyBirthday(name, age);
}
static void singHappyBirthday(String name, int age)
{
    Console.WriteLine("생일 축하합니다.");
    Console.WriteLine("생일 축하합니다.");
    Console.WriteLine("사랑하는 " + name + "의");
    Console.WriteLine(age + "번째 생일을");
    Console.WriteLine("생일 축하합니다.");
}

 

또한 매개변수와 변수명이 같지 않아도 된다.

static void Main(string[] args)
{
    String name = "김사람";
    int age = 3;

    singHappyBirthday(name, age);
}
static void singHappyBirthday(String who, int num)
{
    Console.WriteLine("생일 축하합니다.");
    Console.WriteLine("생일 축하합니다.");
    Console.WriteLine("사랑하는 " + who + "의");
    Console.WriteLine(num + "번째 생일을");
    Console.WriteLine("생일 축하합니다.");
}

중요한 것은 데이터 타입과 값의 순서이다.

 

 

'C# > C#' 카테고리의 다른 글

24. 오버로딩(Method Overloading)  (0) 2023.09.26
23. 리턴(Return Keyword)  (0) 2023.09.20
21. ForEach문(Foreach Loop)  (0) 2023.09.18
20. 배열(Arrays)  (0) 2023.09.14
19. 계산기 프로그램(Calculator Program)  (0) 2023.09.13
함수(Methods)

프로그래밍에서는 한줄의 코드가 아니라 여러 줄의 코드를 조합해서 작업을 수행한다. 그런데 반복적으로 어떤 작업을 처리해야 할 때, 동일한 코드를 여러 번 작성하는 것은 비효율적이다. 그렇기 때문에 어떠한 하나의 작업단위를 이루는 여러가지 코드를 한 묶음으로 만들어서 재사용 할 수 있도록 만든 것이 바로 함수, 또는 메서드라고 한다.

일반적으로 메서드(Method)는 클래스(class)의 기능적인 부분을 나타내는 함수(function)를 나타내는데, 자바에서는 모든게 클래스로 관리되기 때문에 메서드라는 이름으로 통용하고 있다.

 

1. 입력과 출력이 모두 있는 경우

출력은 콘솔의 문자 출력이 아닌 데이터 반환을 뜻한다.

static int mod (int a, int b) {
    int result = a % b;
    return result;
}

반환할 데이터 타입을 정한 후, 메서드의 이름을 정의한다. 괄호 안에는 매개변수, 즉 파라미터(parameter)로 정의한다. 그리고 매개 변수로 받은 값을 함수에서 어떤 식으로 사용할지에 대해 코드로 표현한다. 다시 데이터를 반환해서 사용할 수 있도록 하기 위해 return함수를 사용한다.

 

2. 입력은 있는데 출력은 없는 경우

static void printNum (int a) {
    System.out.println(a);
}

출력이 없다는 것은 아무런 데이터형으로도 만들 필요가 없다는 뜻이기 때문에 void라는 키워드를 작성한다. 서로 다른 메소드에서 쓰이는 변수들은 함수 내에서만 공유되므로 이름이 같아도 서로 공유되지 않는다. 위의 코드는 콘솔에서 출력될 뿐, a로 입력받은 데이터를 이후에 활용할 수 있도록 메모리에 저장해주지 않는다. 즉, 콘솔로 출력 후, a라는 데이터는 시스템에서 휘발된다.

 

3. 입력은 없는데 출력이 있는 경우

static String greeting() {
    return "Hello!";
}

입력값이 없기 때문에 파라미터 자리에는 아무 것도 입력하지 않는다. 그리고 위에서 지정한 데이터 타입인 문자열(String)을 리턴할 수 있도록 String 값을 넣어준다.

 

4. 입력과 출력이 모두 없는 경우

static void greeting_2() {
    System.out.println("Hello!");
}

위 코드는 콘솔로 출력만 하고 데이터 자체는 휘발된다.

 

static 안에서 실행되기 위해서는 함수에도 static이 붙어있어야한다.

 

이제 위의 모든 경우의 함수를 main에서 실행해보자.

public static void main(String[] args) {
	int mod_result = mod(3, 2); // 1번의 경우
	System.out.println(mod_result); // 1

	printNum(10); // 2번의 경우 // 10

	String str = greeting(); // 3번의 경우
	System.out.println(str); // Hello!

	greeting_2(); // 4번의 경우 // Hello!
}

 

 

'Back-End > Java' 카테고리의 다른 글

객체지향 - 객체지향 프로그래밍  (0) 2023.05.18
회원가입 프로그램 실습 - 자바(Java) 편  (1) 2023.05.16
자료구조 - 배열, 리스트, 맵  (0) 2023.05.12
제어문 - 조건문과 반복문  (0) 2023.05.11
연산자  (0) 2023.05.10

+ Recent posts