๐Ÿชฝ

"ํ‹€๋ฆฐ ๋‚ด์šฉ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค."

 

 

 

 

โ–บ ๋ณ€์ˆ˜

๋ณ€์ˆ˜๋ž€, ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๊ฐ’์„ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์ด๋ฆ„์ด ๋ถ™์€ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ด๋‹ค.

๋ณ€์ˆ˜๋Š” ๋ณ€์ˆ˜๊ฐ€ ์„ ์–ธ๋œ ์œ„์น˜์— ๋”ฐ๋ผ ๋ณ€์ˆ˜์˜ ์ข…๋ฅ˜๋ฅผ ์ •ํ•œ๋‹ค.

 

 

1. ํด๋ž˜์Šค ๋ณ€์ˆ˜ (์ „์—ญ๋ณ€์ˆ˜)

 

ํด๋ž˜์Šค ๋ณ€์ˆ˜์˜ ํŠน์ง•์€ ํฌ๊ฒŒ ๋„ค๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

  • ๋ณ€์ˆ˜ ํƒ€์ž… ์•ž์— static์„ ๋ถ™์ธ๋‹ค.
  • ํด๋ž˜์Šค ๋ณ€์ˆ˜๋Š” ๋ชจ๋“  ์ธ์Šคํ„ด์Šค๊ฐ€ ๊ณต์œ ํ•œ๋‹ค.
  • ๋ชจ๋“  ์ธ์Šคํ„ด์Šค๊ฐ€ ๊ณตํ†ต๋œ ๊ฐ’์„ ๊ณต์œ ํ•œ๋‹ค.
  • ํด๋ž˜์Šค ์ด๋ฆ„, ํด๋ž˜์Šค ๋ณ€์ˆ˜๋ช…์„ ํ†ตํ•ด ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

Q. ๋ชจ๋“  ์ธ์Šคํ„ด์Šค๊ฐ€ ๊ณต์œ ๋œ๋‹ค๋Š” ๋ง์ด ๋ฌด์Šจ ์˜๋ฏธ์ธ๊ฐ€?

 

A. ์ƒ์„ฑ๋œ ์ธ์Šคํ„ด์Šค๋Š” ํด๋ž˜์Šค ๋ณ€์ˆ˜๋ฅผ ์ฐธ์กฐํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์‰ฝ๊ฒŒ ์„ค๋ช…ํ•˜์ž๋ฉด ํด๋ž˜์Šค ๋ณ€์ˆ˜๋Š” ๋งˆ์„์— ๋†“์ธ ์šฐ์ฒดํ†ต์ด๊ณ  ์ธ์Šคํ„ด์Šค๋Š” ์ง‘์ด๋ผ๊ณ  ๋น„์œ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ง‘(์ธ์Šคํ„ด์Šค)๋Š” ์šฐ์ฒดํ†ต(ํด๋ž˜์Šค ๋ณ€์ˆ˜)์— ํŽธ์ง€๋ฅผ ๊บผ๋‚ผ์ˆ˜๋„ ํŽธ์ง€๋ฅผ ๋„ฃ์„ ์ˆ˜๋„ ์žˆ๋‹ค. ๋ชจ๋“  ์ง‘์ด ๋˜‘๊ฐ™์€ ์šฐ์ฒดํ†ต์„ ์“ฐ๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋–ค ์ง‘์—์„œ ๋„ฃ์€ ํŽธ์ง€๋ฅผ ๋‹ค๋ฅธ ์ง‘์—์„œ ๊บผ๋‚ด ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

// chat-GPT๋ฅผ ํ†ตํ•ด ์˜ˆ์ œ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

class Counter {

    // static์ด ๋ถ™์€ ๊ฒƒ์„ ํ†ตํ•ด ํด๋ž˜์Šค ๋ณ€์ˆ˜๋ผ๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.
    // ํด๋ž˜์Šค ๋ณ€์ˆ˜๋ฅผ 0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ–ˆ๋‹ค.
    static int count = 0;  

    // ์ƒ์„ฑ์ž Counter๋ฅผ ํ†ตํ•ด new Counter()๊ฐ€ ์žˆ์œผ๋ฉด count ๋ณ€์ˆ˜๊ฐ€ ์ฆ๊ฐ€ํ•˜๋„๋ก ํ–ˆ๋‹ค.
    Counter() {
        count++;  
    }
 
    // ํ˜„์žฌ count๊ฐ€ ์–ผ๋งˆ๋‚˜ ์ฆ๊ฐ€ํ–ˆ๋Š”์ง€ ๋ณด์—ฌ์ฃผ๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค.
    void showCount() {
        System.out.println("Count: " + count);
    }
}

public class Main {
    public static void main(String[] args) {
    
    	// ์ธ์Šคํ„ด์Šค c1๊ณผ c2๊ฐ€ ์ƒ์„ฑ๋˜์—ˆ๋‹ค.
    	// ์ƒ์„ฑ์ž๋ฅผ ํ†ตํ•ด count++๊ฐ€ ์‹คํ–‰๋œ๋‹ค.
        // c1๊ณผ c2๋กœ count++๊ฐ€ ์ด ๋‘ ๋ฒˆ ์‹คํ–‰๋˜์—ˆ๋‹ค.
        Counter c1 = new Counter();  
        Counter c2 = new Counter();  

        // ์ด c1๊ณผ c2๋Š” showCount ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ๊ฒฐ๊ณผ๊ฐ’์ด ์ถœ๋ ฅ๋œ๋‹ค.
        // ๊ฒฐ๊ณผ๊ฐ’์€ 2๊ฐ€ ๋œ๋‹ค.
        // 2๊ฐ€ ๋‚˜์˜ค๋Š” ์ด์œ ๋Š” ๋™์ผํ•œ ํด๋ž˜์Šค ๋ณ€์ˆ˜ count๋ฅผ ์ถœ๋ ฅํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
        c1.showCount();  
        c2.showCount();  
    }
}

 

 

 

 

 


 

 

 

 

 

2. ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜ (์ „์—ญ๋ณ€์ˆ˜)

 

 

์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜์˜ ํŠน์ง•์€ ํฌ๊ฒŒ ์„ธ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

  • ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋˜์–ด์•ผ ๋ณ€์ˆ˜๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค.
  • ํด๋ž˜์Šค ๊ฐ์ฒด์™€ ๋‹ค๋ฅด๊ฒŒ ๊ณต์œ ๋˜์ง€ ์•Š๋Š”๋‹ค.
  • ์ธ์Šคํ„ด์Šค๋งˆ๋‹ค ๊ณ ์œ ํ•œ ๋‹ค๋ฅธ ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.

 

 

์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜์™€ ํด๋ž˜์Šค ๋ณ€์ˆ˜์˜ ์ฐจ์ด๋ฅผ ์•Œ์•„๋ณด๋Š” ์˜ˆ์ œ๋ฅผ ์ฐพ์•˜๋‹ค.

// ์ถœ์ฒ˜ - sujinhope๋‹˜
public class Main {

    public static class StaticTest {

	// ํด๋ž˜์Šค ๋ณ€์ˆ˜
        static int classVar = 10;
        //์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜
        int instanceVar = 28;

    }


    public static void main(String[] args) {

	// staticTest1๊ณผ staticTest2์ธ ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑํ–ˆ๋‹ค.
        StaticTest staticTest1 = new StaticTest();
        StaticTest staticTest2 = new StaticTest();
        
        // ์‹คํ–‰ ๊ฐ’์€ 1๋ฒˆ๊ณผ 2๋ฒˆ ๋ชจ๋‘ 10๊ณผ 28์ด ๋œ๋‹ค.
        System.out.println("1๋ฒˆ " + staticTest1.classVar + ", " + staticTest1.instanceVar);
        System.out.println("2๋ฒˆ " + staticTest2.classVar + ", " + staticTest2.instanceVar);

	// ํด๋ž˜์Šค ๋ณ€์ˆ˜ staticTest1์˜ ๊ฐ’์„ 12๋กœ ๋ณ€๊ฒฝํ–ˆ๋‹ค.
        staticTest1.classVar = 12;
        // ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜ staticTest1์˜ ๊ฐ’์„ 400์œผ๋กœ ๋ณ€๊ฒฝํ–ˆ๋‹ค.
        staticTest1.instanceVar = 400;

        System.out.println();
        // 1๋ฒˆ์˜ ์ถœ๋ ฅ๊ฐ’์€ 12์™€ 400์ด ๋œ๋‹ค.
        // 2๋ฒˆ์˜ ์ถœ๋ ฅ๊ฐ’์€ 12์™€ 28์ด ๋œ๋‹ค.
        System.out.println("1๋ฒˆ " + staticTest1.classVar + ", " + staticTest1.instanceVar);
        System.out.println("2๋ฒˆ " + staticTest2.classVar + ", " + staticTest2.instanceVar);;
    }
}

 

ํด๋ž˜์Šค ๋ณ€์ˆ˜๋Š” ์ธ์Šคํ„ด์Šค์˜ ๋ชจ๋“  ๊ฐ’์„ ๊ณต์œ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค ๊ฐ’์ด ๋ฐ”๋€Œ๋ฉด ๋ชจ๋“  ์ธ์Šคํ„ด์Šค๊ฐ€ ๊ฐ’์„ ๋ณ€๊ฒฝ๋œ๋‹ค. 
์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋Š” ์ธ์Šคํ„ด์Šค์˜ ๊ฐ’์„ ๊ณต์œ ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ธ์Šคํ„ด์Šค๊ฐ€ ๊ฐœ๋ณ„์ ์œผ๋กœ ๊ฐ’์„ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

 

 

 

Q. ํด๋ž˜์Šค, ์ธ์Šคํ„ด์Šค, ํด๋ž˜์Šค ๋ณ€์ˆ˜, ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๊ฐ€ ๋ฌด์—‡์ธ๊ฐ€?

 

A. ๋น„์œ ๋กœ ์˜ˆ๋ฅผ ๋“ค์–ด๋ณด๊ฒ ๋‹ค. [ ํด๋ž˜์Šค๋Š” ๋นตํ‹€  ,  ์ธ์Šคํ„ด์Šค๋Š” ๋นตํ‹€๋กœ ์ฐ์–ด๋‚ธ ๋นต  ,  ํด๋ž˜์Šค ๋ณ€์ˆ˜๋Š” ๋นต์— ํ‘œ์‹์„ ๋‚จ๊ธฐ๋Š” ๋นต์ง‘์˜ ์‹œ๊ทธ๋‹ˆ์ฒ˜(?)  ,  ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋Š” ๋นต ์•ˆ์— ๋“ค์–ด๊ฐ€๋Š” ์žผ ]์œผ๋กœ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

 


 

 

 

 

 

3. ์ง€์—ญ๋ณ€์ˆ˜

  • ๋ฉ”์„œ๋“œ ๋‚ด์—์„œ ์„ ์–ธ๋œ๋‹ค.
  • ๋ฉ”์„œ๋“œ๊ฐ€ ์‹คํ–‰๋  ๋•Œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹น๋ฐ›๋Š”๋‹ค.
  • ๋ฉ”์„œ๋“œ๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ์†Œ๋ฉธ๋˜์–ด ์‚ฌ๋ผ์ง„๋‹ค.

 

// ์ถœ์ฒ˜ - sujinhope๋‹˜
public class Main {

    public static class StaticTest {

	// ์ „์—ญ๋ณ€์ˆ˜ ์ค‘ ํ•˜๋‚˜์ธ ํด๋ž˜์Šค ๋ณ€์ˆ˜์ด๋‹ค.
        static int classVar = 10;
        // ์ „์—ญ๋ณ€์ˆ˜ ์ค‘ ํ•˜๋‚˜์ธ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜์ด๋‹ค.
        int instanceVar = 28;

	// ๋ฉ”์„œ๋“œ์ธ method๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค.
        public void method() {
            // ์ง€์—ญ๋ณ€์ˆ˜ localVar
            int localVar = -100;
            System.out.println("์ง€์—ญ ๋ณ€์ˆ˜ ๊ฐ’ : " + localVar);
        }

    }


    public static void main(String[] args) {

	// localTest ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค.
        StaticTest localTest = new StaticTest();
	// ์ธ์Šคํ„ด์Šค๋ฅผ ํ†ตํ•ด method ์‹คํ–‰ํ•œ๋‹ค.
        localTest.method();
    }
}

 

 

 

 

 

 

 

ํ˜ผ์ž ๊ณต๋ถ€ํ•˜๋ฉด์„œ ์ดํ•ดํ•˜๊ณ  ์“ด ๋‚ด์šฉ์ด๋ผ ํ‹€๋ฆฐ ๋‚ด์šฉ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋Œ“๊ธ€๋กœ ์ ์–ด๋‘์‹œ๋ฉด ์ˆ˜์ •ํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๐Ÿ€

 

[ ๋ธ”๋กœ๊ทธ์— ์“ด ๋‚ด์šฉ๋“ค์˜ ์ถœ์ฒ˜๋Š” ์•„๋ž˜์— ์ ์–ด๋‘˜ํ…Œ๋‹ˆ

๋“ค์–ด๊ฐ€์„œ ์ฝ์–ด๋ณด์‹œ๋ฉด ๋”์šฑ ๋„์›€์ด ๋˜์‹ค ๋“ฏ ํ•ฉ๋‹ˆ๋‹ค ]

 

 

 

 


 

< ์ดํ›„ ํฌ์ŠคํŒ… - ์ธ์Šคํ„ด์Šค, ์ƒ์„ฑ์ž, ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ์ธ์ž์˜ ์ฐจ์ด>

 

 

๊ธฐ๋ณธ ์šฉ์–ด ์ •๋ฆฌ - ๐Ÿง ์ธ์Šคํ„ด์Šค, ์ƒ์„ฑ์ž ๊ทธ๋ฆฌ๊ณ  ๋งค๊ฐœ๋ณ€์ˆ˜(Parameter)์™€ ์ธ์ž(Argument)์˜ ์ฐจ์ด

๊ธฐ๋ณธ ์šฉ์–ด ์ •๋ฆฌ - ๐Ÿง ๋ณ€์ˆ˜๋ž€?๐Ÿชฝ"ํ‹€๋ฆฐ ๋‚ด์šฉ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค."    โ–บ ๋ณ€์ˆ˜๋ณ€์ˆ˜๋ž€, ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๊ฐ’์„ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์ด๋ฆ„์ด ๋ถ™์€ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ด๋‹ค.๋ณ€์ˆ˜๋Š” ๋ณ€์ˆ˜๊ฐ€ ์„ ์–ธ

post-this.tistory.com

 

 


 

 

- ๋ณ€์ˆ˜์˜ ๊ฐœ๋… ์ •๋ฆฌ ์ถœ์ฒ˜

 

[JAVA] ์ž๋ฐ”์˜ ๋ณ€์ˆ˜ (ํด๋ž˜์Šค ๋ณ€์ˆ˜, ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜, ์ง€์—ญ ๋ณ€์ˆ˜)

์ด ๊ธ€์€ PC ๋ฒ„์ „ TISTORY์— ์ตœ์ ํ™” ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค. ์„ ์–ธ ์œ„์น˜์— ๋”ฐ๋ฅธ ๋ณ€์ˆ˜์˜ ์ข…๋ฅ˜ ์ž๋ฐ”์—์„œ์˜ ๋ณ€์ˆ˜๋Š” ํด๋ž˜์Šค ๋ณ€์ˆ˜, ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜, ์ง€์—ญ ๋ณ€์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณ€์ˆ˜์˜ ์ข…๋ฅ˜๋ฅผ ๊ฒฐ์ •์ง“๋Š” ๊ฒƒ์€ '๋ณ€์ˆ˜๊ฐ€ ์„ ์–ธ

itmining.tistory.com

 

 

- sujinhope๋‹˜์˜ ์˜ˆ์ œ ์ถœ์ฒ˜

 

[java] ํด๋ž˜์Šค๋ณ€์ˆ˜, ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜ ์ฐจ์ด(static๋ณ€์ˆ˜์™€ non Static๋ณ€์ˆ˜) - Break Out of Your Comfort Zone

๋ชฉ์ฐจ ํด๋ž˜์Šค ๋ณ€์ˆ˜, ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜ ํด๋ž˜์Šค ๋ณ€์ˆ˜, ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜, ์ง€์—ญ ๋ณ€์ˆ˜๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ๋˜๋Š” ์œ„์น˜ ํด๋ž˜์Šค ๋ณ€์ˆ˜(Static)์˜ ์ฃผ์˜์ , ํด๋ž˜์Šค ๋ณ€์ˆ˜๊ฐ€ ํ•„์š”ํ•œ ์ด์œ  ํด๋ž˜์Šค ๋ณ€์ˆ˜, ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜

sujinhope.github.io

 

 

- ์ „์—ญ๋ณ€์ˆ˜์™€ ์ง€์—ญ๋ณ€์ˆ˜์˜ ๊ฐœ๋… ์ •๋ฆฌ ์ถœ์ฒ˜

 

๊ตฌ๋ฆ„EDU - ๋ชจ๋‘๋ฅผ ์œ„ํ•œ ๋งž์ถคํ˜• IT๊ต์œก

๊ตฌ๋ฆ„EDU๋Š” ๋ชจ๋‘๋ฅผ ์œ„ํ•œ ๋งž์ถคํ˜• IT๊ต์œก ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค. ๊ฐœ์ธ/ํ•™๊ต/๊ธฐ์—… ๋ฐ ๊ธฐ๊ด€ ๋ณ„ ์ตœ์ ํ™”๋œ IT๊ต์œก ์†”๋ฃจ์…˜์„ ๊ฒฝํ—˜ํ•ด๋ณด์„ธ์š”. ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์‹ค๋ฌด ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ต์œก, ์ „๊ตญ ์ดˆ์ค‘๊ณ /๋Œ€ํ•™๊ต ์˜จ๋ผ์ธ ์ˆ˜์—…, ๊ธฐ์—…/

edu.goorm.io

 

 

- chatGPT์˜ ๋„์›€๋„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.

+ Recent posts