์ธ์คํด์ค ๋ณ์์ ํด๋์ค ๋ณ์๋ฅผ ํ์ธํด๋ด ์๋ค!
์๋ ์ฝ๋์ ๊ฒฐ๊ณผ๋ก ํ์ธ!
package com.test.exam01;
public class Sample {
/*
ํด๋์ค์ ๋ด๋ถ์ ์ ์ธ๋ ๋ณ์ --> ์ธ์คํด์ค ๋ณ์
์ธ์คํด์ค ๋ณ์์ scope์ ์ด ๋ณ์๊ฐ ์ ์ธ๋ ํด๋์ค ์ ์ฒด์ ๋ฏธ์น๋ค.
๋จ, main method ๋ด์์ ์ํฅ์ ๋ฏธ์น๊ธฐ ์ํด์๋ ์ธ์คํด์ค ์ ์ธ์ด ํ์ํ๋ค.
์ธ์คํด์ค ๋ณ์์ lifetime์ ์ด ๊ฐ์ฒด๊ฐ ์กด์ฌํ ๋๊น์ง...
*/
int x, y;
/*
ํด๋์ค์ ๋ด๋ถ์ ์ ์ธ๋ static ๋ณ์ --> static ์ด ๋ถ์ผ๋ฉด ํด๋์ค ๋ณ์!
ํด๋์ค ๋ณ์์ scope ์ ์ด ๋ณ์๊ฐ ์ ์ธ๋ ํด๋์ค ์ ์ฒด์ ๋ฏธ์น๋ค.
*/
static int result;
void add1(int a, int b){ //method ์ ์ธ
//a, b = parameter ๋งค๊ฐ๋ณ์ --> ์ง์ญ๋ณ์(local variable)
x = a; //x ๋ ์ธ์คํด์ค ๋ณ์๋ก ์ด๋ฏธ ์ ์ธ๋จ.
//๋งค๊ฐ๋ณ์ a์ ๊ฐ์ด ์ธ์คํด์ค ๋ณ์ x์ ํ ๋น๋๋ค.
y = b;
int sum = x+y; //์ ์ธ๊ณผ ๋์์ ํ ๋น. --> ์ด๊ธฐํ
result = 88; //class ๋ณ์์ 88์ ํ ๋น.
System.out.println("Result = "+ result);
System.out.println("Sum = "+ sum);
}
void gob2(){ //์์ add1 ์ a,b ๋ณ์๋ ์ง์ญ๋ณ์์๊ธฐ์, ์ฌ๊ธฐ์ ์จ๋ ๋จ.
int a = 3;
int b = 4;
System.out.println(a*b);
}
public static void main(String[] args){
Sample obj = new Sample(); //sample ์ class ์ด๋ฆ. ์ธ์คํด์ค ์ ์ธ. ์ด๋ ๊ฒ ์ธ์คํด์ค ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด์ค์ผ ํจ.
//์ฐธ๊ณ ๋ก obj. ์ณ์ ๋์ค๋ method์ ๋ณ์๋ค์ ๋ชจ๋ sample ์ด๋ผ๋ class ๊ฐ ๊ฐ์ง method์ ๋ณ์๋ค.
obj.add1(10,20);
System.out.println("X = "+obj.x); //obj.x ๋ก ์ธ์คํด์ค ์ ์ธ์ ํด์ค.
System.out.println("Y = "+obj.y);
obj.gob2(); // 12๊ฐ ๋์ฌ ๊ฒ.
System.out.println("Result = " + result); //class ๋ณ์์ด๊ธฐ์, ์ ์ธ์ด ํ์ ์์ด์ ๊ทธ๋ฅ result.
result = 77;
System.out.println("New Result = "+result);
}
}
์คํํ ๊ฒฐ๊ณผ!
Result = 88 Sum = 30 X = 10 Y = 20 12 Result = 88 New Result = 77 |
์ธ์คํด์ค ๋ณ์์ ํด๋์ค ๋ณ์์ ์ฐจ์ด์ ์ ํ๋ก ์ ๋ฆฌํ ๊ฒ!
+ ์ฐธ๊ณ ๋ก ์ธ์คํด์ค ๋ณ์์ ํด๋์ค ๋ณ์๋ ๋ฉค๋ฒ๋ณ์์ ์ํ๋ค!
ํน์ง | ์ธ์คํด์ค ๋ณ์ (Instance Variable) | ํด๋์ค ๋ณ์ (Class Variable) |
์ ์ | ๊ฐ์ฒด๋ณ๋ก ์์ฑ๋๋ ๋ณ์ | ํด๋์ค์ ํ๋๋ง ์กด์ฌํ๋ ๋ณ์ |
ํค์๋ | int x;, String name; | static int result;, static String appName; ์ด๋ ๊ฒ static ์ด ๋ถ์ ๋ณ์๊ฐ ํด๋์ค ๋ณ์! |
๋ฉ๋ชจ๋ฆฌ ์์น | ๊ฐ ๊ฐ์ฒด๋ง๋ค ๋ณ๋๋ก ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ ๋น๋จ | ํด๋์ค ๋ก๋ฉ ์ ๋ฉ๋ชจ๋ฆฌ์ ํ ๋ฒ๋ง ํ ๋น๋จ |
๊ฐ์ ๊ณต์ ์ฌ๋ถ | ๊ฐ์ฒด๋ง๋ค ๋ ๋ฆฝ์ ์ธ ๊ฐ์ ๊ฐ์ง | ๋ชจ๋ ๊ฐ์ฒด๊ฐ ๋์ผํ ๊ฐ์ ๊ณต์ ํจ (๋ฉ๋ชจ๋ฆฌ ๊ฐ์ ๊ณต๊ฐ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ) |
์ ๊ทผ ๋ฐฉ๋ฒ | ๊ฐ์ฒด๋ฅผ ํตํด ์ ๊ทผ (obj.x) | ํด๋์ค ์ด๋ฆ์ ํตํด ์ ๊ทผ (Sample.result) |
์์ | Student name = new Student(); name.age = 10; |
Sample.result = 100; |
์์ฑ ์์ | ๊ฐ์ฒด๊ฐ ์์ฑ๋ ๋ ์์ฑ๋จ | ํด๋์ค๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋๋ ๋ ์์ฑ๋จ |
์๋ช | ๊ฐ์ฒด์ ํจ๊ป ์์ฑ๋๊ณ ์ฌ๋ผ์ง | ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ ๋์ ์ ์ง๋จ |
์ผ๋ฐ์ ์ธ ์ฌ์ฉ | ๊ฐ์ฒด์ ๋ฐ๋ผ ๋ค๋ฅธ ์ํ๋ฅผ ์ ์งํ ๋ ์ฌ์ฉ | ๋ชจ๋ ๊ฐ์ฒด๊ฐ ๊ณตํต์ผ๋ก ์ฌ์ฉํ๋ ๊ฐ์ด๋ ์ํ๋ฅผ ์ ์งํ ๋ ์ฌ์ฉ |
์ค๋ช
- ์ธ์คํด์ค ๋ณ์:
- ๊ฐ ๊ฐ์ฒด๊ฐ ์์ฑ๋ ๋๋ง๋ค ์๋ก์ด ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ํ ๋น๋ฉ๋๋ค.
- ์๋ฅผ ๋ค์ด, Student ๊ฐ์ฒด๋ง๋ค name๊ณผ age๊ฐ ๋ค๋ฅผ ์ ์์ต๋๋ค.
- ๊ฐ์ฒด๋ง๋ค ๋ค๋ฅธ ๊ฐ์ ๊ฐ์ง๊ณ , ๊ฐ์ฒด๊ฐ ์ฌ๋ผ์ง๋ฉด ๋ณ์๋ ์ฌ๋ผ์ง๋๋ค.
- ํด๋์ค ๋ณ์:
- ํด๋์ค๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋๋ ๋ ํ ๋ฒ๋ง ์์ฑ๋ฉ๋๋ค.
- ๋ชจ๋ ๊ฐ์ฒด๊ฐ ์ด ๋ณ์์ ๋์ผํ ๊ฐ์ ๊ณต์ ํฉ๋๋ค.
- ์๋ฅผ ๋ค์ด, result๋ Sample ํด๋์ค์ ๋ชจ๋ ๊ฐ์ฒด๊ฐ ๊ฐ์ ๊ฐ์ ๊ฐ์ง๋ฉฐ, ํด๋์ค ์ ์ฒด์ ํ๋๋ง ์กด์ฌํฉ๋๋ค.
๊ฐ์๊ธฐ ๊ถ๊ธํ๋ ์ !
์ธ์คํด์ค ๋ณ์๋ ๊ฐ์ฒด๊ฐ ์ฌ๋ผ์ง๋ฉด ์ฌ๋ผ์ง๋ค๊ณ ํ๋๋ฐ, ๊ทธ๋ ๋ค๋ฉด ์ฝ๋ ๋ด์์ ๊ฐ์ฒด๋ฅผ ์์จ ์๋ ์์๊น?
↓ ↓ ↓ ์๋ ์ ์ ๊ธ ํ์ธ ↓ ↓ ↓
์๋ฐ์์๋ ๊ฐ์ฒด๋ฅผ ์ง์ ์ ์ผ๋ก "์์ ๋" ์ฝ๋๋ ์ ๊ณตํ์ง ์์ง๋ง, ๊ฐ์ฒด๋ฅผ ๋ ์ด์ ์ฌ์ฉํ์ง ์๋๋ก ๋ง๋๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ์๋ฐ๋ ๊ฐ๋น์ง ์ปฌ๋ ํฐ๋ผ๋ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ ๋ ์ด์ ์ฐธ์กฐ๋์ง ์๋ ๊ฐ์ฒด์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋์ผ๋ก ํ์ํฉ๋๋ค.
๊ฐ์ฒด๋ฅผ ์์ ๋ ๋ฐฉ๋ฒ
- ๊ฐ์ฒด ์ฐธ์กฐ ํด์
java์ฝ๋ ๋ณต์ฌpublic class Example { public static void main(String[] args) { Sample obj = new Sample(); // ๊ฐ์ฒด ์์ฑ obj.add(10, 20); // ๋ฉ์๋ ํธ์ถ obj = null; // ๊ฐ์ฒด ์ฐธ์กฐ ํด์ // ์ด์ ๊ฐ๋น์ง ์ปฌ๋ ํฐ๊ฐ ์ด ๊ฐ์ฒด๋ฅผ ์๊ฑฐํ ์ ์๊ฒ ๋ฉ๋๋ค. } }
- ๊ฐ์ฒด๋ฅผ ์์ ๋ ๊ฒ์ ์ค์ ๋ก ๊ทธ ๊ฐ์ฒด๋ฅผ ๋ฉ๋ชจ๋ฆฌ์์ ์ง์ ์ญ์ ํ๋ ๊ฒ์ด ์๋๋ผ, ๊ทธ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ๊ณ ์๋ ๋ณ์๋ฅผ null๋ก ์ค์ ํ์ฌ ๊ฐ๋น์ง ์ปฌ๋ ํฐ๊ฐ ๊ทธ ๊ฐ์ฒด๋ฅผ ์๊ฑฐํ ์ ์๊ฒ ๋ง๋๋ ๊ฒ์ ๋๋ค.
- ๊ฐ๋น์ง ์ปฌ๋ ์
๊ฐ์ ํธ์ถ (๊ถ์ฅํ์ง ์์)
java์ฝ๋ ๋ณต์ฌpublic class Example { public static void main(String[] args) { Sample obj = new Sample(); // ๊ฐ์ฒด ์์ฑ obj.add(10, 20); // ๋ฉ์๋ ํธ์ถ obj = null; // ๊ฐ์ฒด ์ฐธ์กฐ ํด์ System.gc(); // ๊ฐ๋น์ง ์ปฌ๋ ์ ๊ฐ์ ํธ์ถ // ๊ฐ๋น์ง ์ปฌ๋ ํฐ๊ฐ `obj` ๊ฐ์ฒด๋ฅผ ์๊ฑฐํ ์ ์๋๋ก ์์ฒญํฉ๋๋ค. } }
- ์๋ฐ์์๋ ๊ฐ๋น์ง ์ปฌ๋ ์ ์ ๊ฐ์ ๋ก ํธ์ถํ ์ ์์ง๋ง, ์ด๋ ๋ณดํต ๊ถ์ฅ๋์ง ์์ต๋๋ค. ์์คํ ์์์ ๋นํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ฐ๋น์ง ์ปฌ๋ ์ ์ ๊ฐ์ ๋ก ํธ์ถํ๋ ค๋ฉด System.gc()๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์์ฝ
- ๊ฐ์ฒด ์ฐธ์กฐ ํด์ : ๊ฐ์ฒด๋ฅผ ๋ ์ด์ ์ฐธ์กฐํ์ง ์๊ฒ null๋ก ์ค์ ํ๋ฉด, ๊ฐ๋น์ง ์ปฌ๋ ํฐ๊ฐ ๋์ค์ ์ด ๊ฐ์ฒด๋ฅผ ๋ฉ๋ชจ๋ฆฌ์์ ์ ๊ฑฐํ ์ ์์ต๋๋ค.
- ๊ฐ๋น์ง ์ปฌ๋ ์ ๊ฐ์ ํธ์ถ: System.gc()๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋น์ง ์ปฌ๋ ์ ์ ๊ฐ์ ๋ก ํธ์ถํ ์ ์์ง๋ง, ์ผ๋ฐ์ ์ผ๋ก ์๋ฐ๋ ์๋์ผ๋ก ๊ฐ๋น์ง ์ปฌ๋ ์ ์ ์ ์ฒ๋ฆฌํ๋ฏ๋ก ์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ ๊ฒ์ ์ถ์ฒํ์ง ์์ต๋๋ค.
์ด๋ ๊ฒ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐ์์ ์ ๊ฑฐํ๋ฉด, ์๋ฐ์ ๊ฐ๋น์ง ์ปฌ๋ ํฐ๊ฐ ์ ์ ํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ด๋ฆฌํ๊ฒ ๋ฉ๋๋ค.
'Computer Science' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค 10952๋ฒ] A+B - 5 - JAVA code ํ์ด (0) | 2024.08.29 |
---|---|
[JAVA] ๋ฐ๋ณต๋ฌธ ์ฌ์ฉํด์ 1๋ถํฐ 100๊น์ง์ ํฉ ๊ตฌํ๊ธฐ 5๊ฐ์ง ๋ฐฉ๋ฒ (0) | 2024.08.29 |
[๋ฐฑ์ค 25304๋ฒ] ์์์ฆ - Java code ํ์ด (0) | 2024.08.22 |
[Java] ๋ฌธ์์ด์์ ๋ชจ์ ๋ฐ ์์ ๊ฐ์ ํ์ธํ์ฌ ์ถ๋ ฅํ๊ธฐ ๋ฌธ์ ํ๊ธฐ (0) | 2024.08.14 |
[JAVA] java ๋ก 1๋ถํฐ 9๊น์ง ๊ตฌ๊ตฌ๋จ ๋ง๋ค๊ธฐ (0) | 2024.07.28 |