"๊ต์๋์ ํ์์ ๋ฒ์ด๋์ง ๋ชปํ์ญ๋๋ค. ๊ฐ์์ ์ต์ํ ์ ์ ์๋ค์ ํญ์ ์ด๋ ์ต๋๋ค. ์ฑ ์์ ์ฐพ์ ์ ์๋ ๊ฒ์ ๊ทธ๊ฐ ์๋ ค์ค ์ ์๋ ๊ฒ์ ์์ต๋๋ค. ์์์ ๋ง๋ก๋ง ๋ฐฐ์ฐ๋ ๊ฒ์ด ์๋๋๋ค . ์์๊ฐ์๊น์ง์. ๊ฐ์๋ ์ฃผ์ ์ ๋ํด ์ ์๊ณ ์๊ณ ๊ต์๋งํผ ๋ง์ด ์๊ณ ์์ ๋๋ง ์ ์ฉํฉ๋๋ค."
"๊ทธ๋๋ ๊ทธ์ ๊ตํ์ ์ ์ฉํฉ๋๋ค."
"๋ค. ๋ด ๋ง์, ์ฐ๋ฆฌ๋ ๊ทธ๋ค์ด ๊ทธ๋ฌ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๋น์ ์ด ๋ฃ๋ ์ฃผ์ ์ ๋ํด ๋ ๋ง์ ๊ด์ ์ ๊ฐ์ง์๋ก ์ง์ค์ ๋ ๊ฐ๊น์์ง ๊ฒ์ ๋๋ค. ๋น์ ์ด ํ ๊ฐ์ง๋ง ๋ค์์ ๋, ๋น์ ์ด ํ ์ ์๋ ์ผ์ ๊ทธ๊ฒ์ ๋ฏฟ๊ฑฐ๋ ๋ฏฟ์ง ์๋ ๊ฒ์ ๋๋ค. ์ข์์, ๊ฐ์๋ค. ๋ค์ ์ฌ์ ์ ์์ํ์ญ์์ค."
"์์ ์ ๋ณด์ฌ๋๋ ธ๋ ์ฌ์ง์ ๋ด ์๋ค."
โ
โpublic class Variables
โโ
โโ{
โโ private static String TEXT = "The end.";
โโ โโโโโโโโโโโโโโโโโโโโโ
โโ public static void main (String[] args)
โโ โ โโโโโโโโโ
โโ โ {
โโ โ System.out.println("Hi");
โโ โ String s = "Hi!";
โโ โ โโโโโโโ
โโ โ โ System.out.println(s);
โโ โ โ if (args != NULL)
โโ โ โ {
โโ โ โ String s2 = s;
โโ โ โ โโโโโโ โโ โ โ โ
โโ โ โ โ System.out.println(s2);
โโ โ โ โ
โโ โ โ }
โโ โ โ Variables variables = new Variables();
โโ โ โ System.out.println(variables.instanceVariable);
โโ โ โ System.out.println(TEXT);
โโ โ โ
โโ โ }
โโ โ
โโ public String instanceVariable;
โโ โโโโโโโโโโโโโโโโโ
โโ public Variables()
โโ {
โโ instanceVariable = "Instance variable test.";
โโ }
โโ}
โโ
โ
1. ๋ฉ์๋์์ ์ ์ธ๋ ๋ณ์๋ ์ ์ธ ์์๋ถํฐ ๋ฉ์๋ ๋๊น์ง ์กด์ฌ(๋ณด์ด๋)ํฉ๋๋ค.
2. ์ฝ๋ ๋ธ๋ก์ ์ ์ธ๋ ๋ณ์๋ ์ฝ๋ ๋ธ๋ก ๋๊น์ง ์กด์ฌํฉ๋๋ค.
3. ๋ฉ์๋์ ๋งค๊ฐ๋ณ์๋ ๋ฉ์๋๊ฐ ๋ฆฌํด๋ ๋๊น์ง ์กด์ฌํฉ๋๋ค.
4. ๊ฐ์ฒด์ ๋ณ์๋ ๋ณ์๋ฅผ ํฌํจํ๋ ๊ฐ์ฒด์ ์ ์ฒด ์๋ช ๋์ ์กด์ฌํฉ๋๋ค. ๊ฐ์์ฑ๋ ํน์ ์ก์ธ์ค ์์ ์์ ์ํด ์ ์ด๋ฉ๋๋ค.
5. ์ ์ (ํด๋์ค) ๋ณ์๋ ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ ๋ด๋ด ์กด์ฌํฉ๋๋ค. ์ด๋ค์ ๊ฐ์์ฑ์ ์ก์ธ์ค ์์ ์์ ์ํด ์ ์๋ฉ๋๋ค."
"๊ทธ๋. ์ด ์ฌ์ง ๊ธฐ์ต๋."
"์ข์ต๋๋ค. ๋ช ๊ฐ์ง ํต์ฌ ์ฌํญ์ ์๊ธฐ์์ผ ๋๋ฆฌ๊ฒ ์ต๋๋ค."
"๋ฉ์๋ ๋ด๋ถ์ ์ ์ธ๋ ๋ชจ๋ ๋ณ์๋ ์ ์ธ๋ ์์ ๋ถํฐ ๋ฉ์๋๊ฐ ๋๋ ๋๊น์ง ์กด์ฌ(ํ์)๋ฉ๋๋ค(์์ 1)."
"๋ณ์๊ฐ ์ฝ๋ ๋ธ๋ก์์ ์ ์ธ๋๋ฉด ์ฝ๋ ๋ธ๋ก ๋๊น์ง ์กด์ฌํฉ๋๋ค(์์ 2)."
"๋ณ์๊ฐ ๋ฉ์๋ ๋งค๊ฐ๋ณ์์ธ ๊ฒฝ์ฐ ๋ฉ์๋์ ์ ์ฒด ๋ณธ๋ฌธ์ ์กด์ฌํฉ๋๋ค(ํ์๋จ)(์์ 3)."
"๋ณ์๊ฐ ์ธ์คํด์ค ๋ณ์(์์ 4)์ด๋ฉด ํน์ ๊ฐ์ฒด์ ์ฐ๊ฒฐ๋์ด ๊ฐ์ฒด๊ฐ ์กด์ฌํ๋ ํ ์กด์ฌํฉ๋๋ค. ๊ฐ์ฒด๊ฐ ์์ผ๋ฉด ๋ณ์์ ์ธ์คํด์ค๊ฐ ์์ต๋๋ค. ๋ณ์์ ์ก์ธ์คํ ์ ์์ต๋๋ค(์ฆ, ๋ณ์๋ ๋ณ์๊ฐ ์ด์ ๋๋ ์ดํ์ ์ ์ธ๋์๋์ง ์ฌ๋ถ์ ๊ด๊ณ์์ด ํด๋์ค์ ๋ชจ๋ ๋ฉ์๋์์ ๋ณผ ์ ์์ต๋๋ค. ๊ฐ ๊ฐ์ฒด์ ๋ํด ์ ๋ณ์๊ฐ ์์ฑ๋ฉ๋๋ค. ๋ค๋ฅธ ๊ฐ์ฒด์ ๋ ๋ฆฝ์ ์ ๋๋ค. ์ ์ ๋ฉ์๋์์ ์ธ์คํด์ค ๋ณ์์ ์ก์ธ์คํ ์ ์์ต๋๋ค. . "
"๋ณ์๊ฐ static์ผ๋ก ์ ์ธ๋๋ฉด, ์ฆ static ํค์๋๋ก ํ์๋ ๋ณ์ ๋ ํด๋น ํด๋์ค๊ฐ ์กด์ฌํ๋ ํ ์กด์ฌํฉ๋๋ค. JVM์ ์ผ๋ฐ์ ์ผ๋ก ์ฒ์ ์ฌ์ฉํ ๋ ํด๋์ค๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋ํฉ๋๋ค. ์ด๋๋ ์ ์ ๋ณ์๊ฐ ์ด๊ธฐํ๋ฉ๋๋ค."

"์์ ์๋ a, b, s(๋น์ ์ ๋ณ์) ๋ฐ count(์ ์ ๋ณ์)์ ๋ค ๊ฐ์ง ๋ณ์๊ฐ ์๋ Cat ํด๋์ค๋ฅผ ์ ์ธํฉ๋๋ค. ์ด ํด๋์ค์ ์ฌ๋ฌ ๊ฐ์ฒด(์: 3๊ฐ)๋ฅผ ๋ง๋ค๋ฉด ๊ฐ ์ฌ๊ธฐ์๋ ํด๋์ค์ ๋น์ ์ ๋ณ์์ ๋ํ ์์ฒด ์ธ์คํด์ค๊ฐ ํฌํจ๋ฉ๋๋ค. ์ ์ ๋ณ์๋ ํด๋์ค์ ๋ชจ๋ ๊ฐ์ฒด์์ ๊ณต์ ๋ฉ๋๋ค. ๊ธฐ์ ์ ์ผ๋ก ๋งํ์๋ฉด Cat ๊ฐ์ฒด๊ฐ ์์ฑ๋๊ธฐ ์ ์๋ ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ์ด๋ฌํ ๊ฐ์ฒด ๋ด๋ถ์๋ ์กด์ฌํ์ง ์์ต๋๋ค."
"๋ณ์๋ฅผ ์ ์ ์ผ๋ก ์ ์ธํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ผ์ด ๋ฐ์ํฉ๋๋ค s
."

"์ข์. ์ ๊ฒ ๊ฐ์."
"๋์ผํ ์ด๋ฆ์ผ๋ก ๋ณ์๋ฅผ ์ ์ธํ ์ ์์ต๋๊น?"
"๋ฉ์๋ ๋ด๋ถ๊ฐ ์๋๋๋ค. ๋ฉ์๋ ๋ด๋ถ์์ ์ ์ธ๋ ๋ชจ๋ ๋ณ์๋ ๊ณ ์ ํ ์ด๋ฆ์ ๊ฐ์ ธ์ผ ํฉ๋๋ค. ๋ฉ์๋์ ์ธ์๋ ์ง์ญ ๋ณ์๋ก ๊ฐ์ฃผ๋ฉ๋๋ค."
"๋ฉค๋ฒ ๋ณ์๋ ์ด๋ป์ต๋๊น?"
"๊ตฌ์ฑ์ ๋ณ์๋ ๊ฐ ํด๋์ค์ ๋ํด ๊ณ ์ ํด์ผ ํฉ๋๋ค."
"ํ์ง๋ง ์์ธ๊ฐ ์์ต๋๋ค. ์ง์ญ ๋ณ์์ ๋ฉค๋ฒ ๋ณ์์ ์ด๋ฆ์ ๋์ผํ ์ ์์ต๋๋ค. "
"์ด๋ฌํ ๋ณ์๋ฅผ ๋ณ๊ฒฝํ๋ฉด ์ด๋ฆ์ด ๋์ผํ ๋ ๋ณ์ ์ค ์ด๋ค ๋ณ์๊ฐ ๋ณ๊ฒฝ๋ฉ๋๊น?"
"์ฐ๋ฆฌ ์ฝ๋์ ๊ฐ์์ ์ธ(์ก์ธ์ค ๊ฐ๋ฅํ) ๋ณ์๊ฐ ์ฌ๋ฌ ๊ฐ ์๋ ๊ฒฝ์ฐ(์: ์ธ์คํด์ค ๋ณ์ ๋ฐ ๋ก์ปฌ ๋ณ์) ๋ก์ปฌ ๋ณ์์ ์ก์ธ์คํ ๊ฒ์ ๋๋ค."
class Main
{
public int count = 0; // Declare an instance variable
public void run()
{
count = 15; // Access the instance variable
int count = 10; // Declare a local method variable
count++; // Access the method variable
}
}
"์ด ์ฝ๋๋ ๋ ๊ฐ์ ์นด์ดํธ ๋ณ์๋ฅผ ์ ์ธํฉ๋๋ค. 3ํ์ ์ธ์คํด์ค ๋ณ์๋ฅผ ์ ์ธ ํ๊ณ 8ํ์ ์ง์ญ ๋ณ์๋ฅผ ์ ์ธํฉ๋๋ค ."
"run ๋ฉ์๋๊ฐ ์คํ๋ ๋ ๋ฐ์ํ๋ ์ํฉ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค."
"7ํ์์ ์ธ์คํด์ค ๋ณ์ ์ ์ก์ธ์ค ํ๊ณ ๊ฐ 15๋ฅผ ํ ๋นํฉ๋๋ค."
"8ํ์์ ์ฐ๋ฆฌ๋ ์ ์ง์ญ ๋ณ์๋ฅผ ์ ์ธ(์์ฑ)ํฉ๋๋ค . count
์ธ์คํด์ค ๋ณ์๋ฅผ ๋ง์คํนํฉ๋๋ค. ์ง์ญ ๋ณ์๋ ๋ฉ์๋์ ๋ชจ๋ ํ์ ์ฝ๋๊ฐ ๋ณผ(์ก์ธ์ค) ๊ฒ์
๋๋ค."
"์์์ด์."
"๋ก์ปฌ ๋ณ์๋ ์ธ์คํด์ค ๋ณ์๋ฅผ ๋ง์คํนํฉ๋๋ค. ์ฆ, ๋ก์ปฌ ๋ณ์๋ ์ก์ธ์คํ ์ ์๋ ๋ณ์์ ๋๋ค. ๊ทธ๋ฌ๋ ์ธ์คํด์ค ๋ณ์์๋ ์ก์ธ์คํ ์ ์์ต๋๋ค. ๊ทธ๋ ๊ฒ ํ๋ ๊ฒ์ด ์กฐ๊ธ ๋ ๋ณต์กํฉ๋๋ค."
์ ์ (ํด๋์ค) ๋ณ์
|
๋น์ ์ (์ธ์คํด์ค) ๋ณ์
|
"์ ์ ๋ฉ์๋์ ์ ์ ๋ณ์์ ๋ํด ๋ ๋ฌด์์ ๋ง์ํด ์ฃผ์๊ฒ ์ต๋๊น?"
"์ ์ ๋ฉ์๋์ ๋ณ์๋ ํด๋์ค์ ๊ฐ์ฒด์ ์ฐ๊ฒฐ๋์ง ์๊ณ ํด๋์ค ์์ฒด์ ์ฐ๊ฒฐ๋ฉ๋๋ค. 10๊ฐ์ Variables ๊ฐ์ฒด๋ฅผ ๋ง๋ค๋ฉด(์ด ์์ค์ ์์ ๋ถ๋ถ์ ์๋ ์ ์ฐธ์กฐ) 10๊ฐ์ instanceVariable ๋ณ์(๊ฐ๊ฐ์ ๋ํด ํ๋์ฉ)๋ฅผ ๊ฐ๊ฒ ๋ฉ๋๋ค. ๊ฐ์ฒด) ๋ฐ ๋จ ํ๋์ ๊ณต์ (์ ์ ) ๋ณ์ TEXT ."
"์ง๋ฌธ์ด ์์ต๋๋ค."
"์ ์ ๋ฐฉ๋ฒ๊ณผ ๋น์ ์ ๋ฐฉ๋ฒ์ ์ฐจ์ด์ ์ ๋ฌด์์ ๋๊น?"
"๋น์ ์ ๋ฉ์๋๊ฐ ์ด๋ป๊ฒ ์๋ํ๋์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค."
์ฝ๋์ ๋ชจ์
|
์ค์ ๋ก ์ผ์ด๋๋ ์ผ
|
" <object> dot <method name> ์ ์ฌ์ฉํ์ฌ ๋ฉ์๋๋ฅผ ํธ์ถํ๋ฉด ์ค์ ๋ก ํด๋์ค ๋ฉ์๋๋ฅผ ํธ์ถํ๊ณ ๋์ผํ ๊ฐ์ฒด๋ฅผ ์ฒซ ๋ฒ์งธ ์ธ์๋ก ์ ๋ฌํ๋ ๊ฒ์ ๋๋ค. ๋ฉ์๋ ๋ด์์ ๊ฐ์ฒด๋ฅผ 'this' ๋ผ๊ณ ํฉ๋๋ค . ๋ฉ์๋๋ ์ด ๊ฐ์ฒด์ ํด๋น ๋ฐ์ดํฐ์ ๋ํด ์ํ๋ฉ๋๋ค."
"์์ฐ! ๊ทธ๋์ ๋ชจ๋ ๊ฒ์ด ์๋ํ๋ ๋ฐฉ์์ ๋๋ค!"
"๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ด ์ ์ ๋ฐฉ๋ฒ์ด ์๋ํ๋ ๋ฐฉ์์ ๋๋ค."
์ฝ๋์ ๋ชจ์
|
์ค์ ๋ก ์ผ์ด๋๋ ์ผ
|
"์ ์ ๋ฉ์๋๋ฅผ ํธ์ถํ๋ฉด ๊ฐ์ฒด๊ฐ ์ ๋ฌ๋์ง ์์ต๋๋ค. ์ฆ, 'this' ๋ null๊ณผ ๊ฐ์ต๋๋ค . ์ด๊ฒ์ด ์ ์ ๋ฉ์๋๊ฐ ๋น์ ์ ๋ณ์ ๋ฐ ๋ฉ์๋์ ์ก์ธ์คํ ์ ์๋ ์ด์ ์ ๋๋ค( ์ ๋ฌํ 'this' ๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด๋ฌํ ๋ฐฉ๋ฒ์)."
"์. ์ ๊ฒ ๊ฐ์. ์ ์ด๋ ์กฐ๊ธ์."
"๊ทธ๋ฆฌ๊ณ ์ฌ๊ธฐ ๋์๊ณ ์ผ์ด๊ณผ ๊ทธ์ ์๋ฌด๊ฐ ์จ๋ค."
GO TO FULL VERSION