๐Ÿ“Œ ๋ฉ”์„œ๋“œ๋ž€? (feat.์ž๋ฐ”์˜ ์ •์„)

๋ฆฌ๋ฌด rimu ยท2022๋…„ 10์›” 23์ผ
1

Java

๋ชฉ๋ก ๋ณด๊ธฐ
6/35
post-thumbnail

๋ฉ”์„œ๋“œ๋ž€?

๋ฌธ์žฅ๋“ค์„ ๋ฌถ์–ด ๋†“์€ ๊ฒƒ { } โ† ์ด๋ ‡๊ฒŒ
์ž‘์—…๋‹จ์œ„๋กœ ๋ฌธ์žฅ๋“ค์„ ๋ฌถ์–ด์„œ ์ด๋ฆ„ ๋ถ™์ธ ๊ฒƒ
๊ฐ’(์ž…๋ ฅ)์„ ๋ฐ›์•„์„œ ์ฒ˜๋ฆฌํ•˜๊ณ , ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜(์ถœ๋ ฅ)
ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์ฝ”๋“œ์˜ ์ค‘๋ณต์€ ์ข‹์ง€์•Š๊ฒŒ ๋ณธ๋‹ค๐Ÿ˜ต

๋ฉ”์„œ๋“œ == ํ•จ์ˆ˜ ๊ฑฐ์˜ ๊ฐ™์€ ๋ง
๋ฉ”์„œ๋“œ๋Š” ํด๋ž˜์Šค์•ˆ์— ๋ฐ˜๋“œ์‹œ ๋“ค์–ด๊ฐ€์•ผ ํ•จ, ํ•จ์ˆ˜๋Š” ๋…๋ฆฝ์ ์ž„
๋ฉ”์„œ๋“œ๋Š” ๋ธ”๋ž™๋ฐ•์Šค๋ผ๊ณ ๋„ ํ•จ

int add(int x, int y) { // int๋Š” ๋ฐ˜ํ™˜ํƒ€์ž…(์ถœ๋ ฅ) add๋Š” ๋ฉ”์„œ๋“œ์ด๋ฆ„ int x, int y๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜์„ ์–ธ(์ž…๋ ฅ)
	int result = x + y;
    
    return result; // ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ 
    }

๋ฉ”์„œ๋“œ์˜ ์žฅ์ 

  • ์ฝ”๋“œ์˜ ์ค‘๋ณต์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค
  • ์ฝ”๋“œ์˜ ๊ด€๋ฆฌ๊ฐ€ ์‰ฝ๋‹ค
  • ์ฝ”๋“œ๋ฅผ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค
  • ์ฝ”๋“œ๊ฐ€ ๊ฐ„๊ฒฐํ•ด์„œ ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์›Œ์ง„๋‹ค

๋ฉ”์„œ๋“œ์˜ ์ž‘์„ฑ

  • ๋ฐ˜๋ณต์ ์œผ๋กœ ์ˆ˜ํ–‰๋˜๋Š” ์—ฌ๋Ÿฌ ๋ฌธ์žฅ์„ ๋ฉ”์„œ๋“œ๋กœ ์ž‘์„ฑ
  • ํ•˜๋‚˜์˜ ๋ฉ”์„œ๋“œ๋Š” ํ•œ ๊ฐ€์ง€ ๊ฐ€๋Šฅ๋งŒ ์ˆ˜ํ–‰ํ•˜๋„๋ก ์ž‘์„ฑ

๋ฉ”์„œ๋“œ = ์„ ์–ธ๋ถ€ + ๊ตฌํ˜„๋ถ€

// ๋งค๊ฐœ๋ณ€์ˆ˜ ๋ชฉ๋ก ์ž…๋ ฅ, ์ž‘์—… ํ•„์š”ํ•œ ๊ฐ’๋“ค ๋„ฃ๊ธฐ (0~n๊ฐœ) - ์„ ์–ธ๋ถ€

๋ฐ˜ํ™˜ํƒ€์ž…(์ž‘์—…๊ฒฐ๊ณผ ํƒ€์ž…) ๋ฉ”์„œ๋“œ์ด๋ฆ„ (ํƒ€์ž… ๋ณ€์ˆ˜๋ช…, ํƒ€์ž… ๋ณ€์ˆ˜๋ช…,...)

{
// ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ์‹œ ์ˆ˜ํ–‰๋  ์ฝ”๋“œ
} - ๊ตฌํ˜„๋ถ€

int add(int a, int b) {
	int result = a + b;
    return result; // ํ˜ธ์ถœํ•œ ๋ฉ”์„œ๋“œ๋กœ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค
}

//์ถœ๋ ฅ ๊ฐ’์€ 0~1๊ฐœ , 2๊ฐœ๋Š” ์•ˆ๋จ

๋ฐ˜ํ™˜ํ•  ๊ฐ’์ด ์—†์„๋• ๋ฐ˜ํ™˜ํƒ€์ž…์— void๋ฅผ ๋„ฃ์œผ๋ฉด ๋จ

๋ฉ”์„œ๋“œ์˜ ๊ตฌํ˜„๋ถ€

์ง€์—ญ๋ณ€์ˆ˜(lv) : ๋ฉ”์„œ๋“œ ๋‚ด์— ์„ ์–ธ๋œ ๋ณ€์ˆ˜ (๋ฉ”์„œ๋“œ ์˜์—ญ)

int add(int x, int y) { // ๋งค๊ฐœ๋ณ€์ˆ˜ ์ž…๋ ฅ
	int result = x + y;
    return result;
    }
    
int multiply(int x, int y) {
	int result = x * y;
    return result;
}

๊ฐ๊ฐ์˜ ๋ฉ”์„œ๋“œ๋กœ ๋ณ€์ˆ˜์ด๋ฆ„์ด ๊ฐ™์•„๋„ ๊ฒน์น˜์ง€ ์•Š์Œ
๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ์ง€์—ญ๋ณ€์ˆ˜~

๋ฉ”์„œ๋“œ์˜ ํ˜ธ์ถœ(call)

๋ฉ”์„œ๋“œ๋ฅผ ๋ถˆ๋Ÿฌ์„œ ์ž‘์—…์„ ์‹œํ‚ด
ํ˜ธ์ถœ ๋ฐฉ๋ฒ•์€?
๋ฉ”์„œ๋“œ์ด๋ฆ„(๊ฐ’1, ๊ฐ’2, ...); // ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•, ์ž‘์—…์— ํ•„์š”ํ•œ ๊ฐ’๋“ค ๋„ฃ์œผ๋ฉด ๋จ

print99danAll(); // void print99danAll() ํ˜ธ์ถœ, ์ž…๋ ฅ๊ฐ’ ๋”ฑํžˆ ๋„ฃ์„ ํ•„์š” ์—†์Œ
int result = add(3,5); // int add(int x, int y)๋ฅผ ํ˜ธ์ถœํ•˜๊ณ , ๊ฒฐ๊ณผ๋ฅผ result์— ์ €์žฅ

class MyMath { // 1. MyMath ํด๋ž˜์Šค ์ž‘์„ฑ(๋ฉ”์„œ๋“œ ์ž‘์„ฑ)
	long add(long a, long b) { 
		long result = a + b;
		return result;
		//return a + b; //์œ„์˜ ๋‘ ์ค„์„ ์ด์™€ ๊ฐ™์ด ํ•œ ์ค„๋กœ ๊ฐ„๋‹จํžˆ ํ•  ์ˆ˜ ์žˆ๋‹ค.
        }
       // ๋‘ ๊ฐ’์„ ๋ฐ›์•„์„œ ๋‘˜ ์ค‘์— ํฐ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์ž‘์„ฑํ•˜์‹œ์˜ค 
    long max(long a, long b) {
    	long result = 0;
        if(a>b) {
        	result = a;
        } else {
        	result = b;
        }
        return result;
     }
    long subtract(long a, long b) {
		return a - b;
	}
	long multiply(long a, long b) {
		return a * b;
	}
	double divide(double a, double b) 
		return a / b;
	}
}

class Ex6_4 {
	public static void main(String[] args) {
		MyMath mm = new MyMath(); // MyMath ๊ฐ์ฒด ์ƒ์„ฑ
		long result1 = mm.add(5L, 3L); // MyMath ๊ฐ์ฒด ์‚ฌ์šฉ (๊ฐ์ฒด์˜ ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ) , add๋ฉ”์„œ๋“œ ํ˜ธ์ถœ
		long result2 = mm.subtract(5L, 3L);
		long result3 = mm.multplay(5L, 3L);
		double result4 = mm.divide(5L, 3L);

		System.out.println("add(5L, 3L)= " + result1);
		System.out.println("subtract(5L, 3L)= " + result2);
		System.out.println("multiply(5L, 3L)= " + result3);
		System.out.println("divide(5L, 3L)= " + result4);
	}
}

์ž‘์—…์„ ๋งˆ์น˜๋ฉด ํ˜ธ์ถœํ•œ ๊ณณ์œผ๋กœ ๋Œ์•„์˜ด!
๋ฉ”์„œ๋“œ๋Š” ํด๋ž˜์Šค์˜์—ญ์—๋งŒ ์ •์˜ ๊ฐ€๋Šฅ!

return๋ฌธ

์‹คํ–‰ ์ค‘์ธ ๋ฉ”์„œ๋“œ๋ฅผ ์ข…๋ฃŒํ•˜๊ณ  ํ˜ธ์ถœํ•œ ๊ณณ์œผ๋กœ ๋˜๋Œ์•„๊ฐ„๋‹ค
๋ฐ˜ํ™˜ํƒ€์ž…์ด void ์ผ ๊ฒฝ์šฐ ์ƒ๋žต๊ฐ€๋Šฅ, ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ž๋™ ์ถ”๊ฐ€

๋ฐ˜ํ™˜ํƒ€์ž…์ด void๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ, ๋ฐ˜๋“œ์‹œ return๋ฌธ์ด ํ•„์š”ํ•จ!

int multiply(int x, int y) {
	int result = x * y;
   
   return result; // ๋ฐ˜ํ™˜ ํƒ€์ž…์ด void๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ ์ƒ๋žต๋ถˆ๊ฐ€
}
   
int max(int a, int b) {
	if(a > b)
   	return a; // ์กฐ๊ฑด์‹์ด ์ฐธ์ผ๋•Œ๋งŒ ์‹คํ–‰๋จ
} // ์—๋Ÿฌ๋œธ : return๋ฌธ์ด ์—†์Œ์ด๋ผ๊ณ  ๋œธ , ์กฐ๊ฑด์‹์ด ๊ฑฐ์ง“์ผ ๋•Œ ๋ฆฌํ„ด๋ฌธ์ด ์—†์–ด์„œ ์—๋Ÿฌ๋‚˜๋Š”๊ฑฐ์ž„!
 int max(int a, int b) {
	if(a > b)
    	return a; // ์กฐ๊ฑด์‹์ด ์ฐธ์ผ๋•Œ๋งŒ ์‹คํ–‰๋จ
    else
    	return b; // ์กฐ๊ฑด์‹์ด ๊ฑฐ์ง“์ผ ๋•Œ ์‹คํ–‰๋จ
 } // ์ด๋ ‡๊ฒŒ ๋งŒ๋“œ๋ฉด ์—๋Ÿฌ ์•ˆ๋œน๋‹ˆ๋‹ค~~

๋ฉ”์†Œ๋“œ์˜ ๊ตฌ๋ถ„

ํด๋ž˜์Šค์˜ ๋ฉ”์†Œ๋“œ(method)๋ž€ ์–ด๋– ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ๋ช…๋ น๋ฌธ์˜ ์ง‘ํ•ฉ์ด๋ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํด๋ž˜์Šค ๋‚ด์—์„œ ๋ฉ”์†Œ๋“œ๋Š” static ํ‚ค์›Œ๋“œ์˜ ์—ฌ๋ถ€์— ๋”ฐ๋ผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌ๋ถ„๋ฉ๋‹ˆ๋‹ค.

    1. ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ(static method)
    1. ์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ(instance method)

์˜ˆ์ œ

class Car {

    boolean door;                       // ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜
    void openDoor() {                   // ์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ
        door = true;
    }

    static void toggleDoor(boolean d) { // ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ
        return !d;
    }
}

ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ์™€ ์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ
์œ„์™€ ๊ฐ™์ด static ํ‚ค์›Œ๋“œ๋ฅผ ๊ฐ€์ง€๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ(static method)๋ผ๊ณ  ๋ถ€๋ฆ„!

๋˜ํ•œ, static ํ‚ค์›Œ๋“œ๋ฅผ ๊ฐ€์ง€์ง€ ์•Š๋Š” ๋ฉ”์†Œ๋“œ๋Š” ์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ(instance method)๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ๋Š” ํด๋ž˜์Šค ๋ณ€์ˆ˜์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ ๋„ ๋ฐ”๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ!

๋”ฐ๋ผ์„œ ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ๋Š” ๋ฉ”์†Œ๋“œ ๋‚ด๋ถ€์—์„œ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค

๊ทธ๋Ÿฌ๋ฏ€๋กœ ๋ฉ”์†Œ๋“œ ๋‚ด๋ถ€์—์„œ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋‚˜ ์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ
ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ๋กœ ์ •์˜ํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ž„

๋‹ค์Œ ์˜ˆ์ œ๋Š” ํด๋ž˜์Šค์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ์ข…๋ฅ˜๋ณ„๋กœ ์ƒ์„ฑํ•˜๊ณ  ์ ‘๊ทผํ•˜๋Š” ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค.

class Method {
    int a = 10, b = 20;                            // ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜
    int add() {									 // ์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ
    return a + b; 					    
    }                
 	static int add(int x, int y) {				// ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ
    	return x + y; 
   } 
}

public class Member02 {
	public static void main(String[] args) {
    	System.out.println(Method.add(20, 30)); // ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ์˜ ํ˜ธ์ถœ
		Method myMethod = new Method();         // ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ
		System.out.println(myMethod.add());     // ์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ์˜ ํ˜ธ์ถœ
    }
}

์‹คํ–‰ ๊ฒฐ๊ณผ
50
30

์œ„์˜ ์˜ˆ์ œ์ฒ˜๋Ÿผ ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ๋Š” ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ ,
์ „๋‹ฌ๋œ ๋งค๊ฐœ๋ณ€์ˆ˜๋งŒ์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ๋ฉ”์„œ๋“œ์ž„

์ฐธ์กฐ
์ž๋ฐ”์˜ ์ •์„ ๊ธฐ์ดˆํŽธ codechobo.com
http://www.tcpschool.com/java/java_member_method

profile
JAVA / SQL / Spring ์„ ๊ณต๋ถ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค ๐Ÿฅ

0๊ฐœ์˜ ๋Œ“๊ธ€