์•ˆ๋…•, ์•„๋ฏธ๊ณ ! ๋ณ€์ˆ˜์˜ ๋‚ด๋ถ€ ๊ตฌ์กฐ์— ๋Œ€ํ•ด ๋ง์”€๋“œ๋ฆฌ๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฏธ ์•Œ๊ณ  ์žˆ๋“ฏ์ด ๊ฐ ๋ณ€์ˆ˜๋Š” ํ•ด๋‹น ๊ฐ’์ด ์ €์žฅ๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ๊ณผ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค. "

"๋„ค. ์ €๋ฒˆ์— ๋ง์”€ํ•˜์…จ์ž–์•„์š”."

"์ข‹์Šต๋‹ˆ๋‹ค. ๊ธฐ์–ตํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ๊ณ„์†ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค."

"๋ชจ๋“  ๋ณตํ•ฉ ์œ ํ˜•์€ ๋” ๊ฐ„๋‹จํ•œ ์œ ํ˜•์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ฐจ๋ก€๋Œ€๋กœ ๋” ๊ฐ„๋‹จํ•œ ์œ ํ˜• ์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๋งˆ์นจ๋‚ด ์šฐ๋ฆฌ๋Š” ๋” ์ด์ƒ ๋‹จ์ˆœํ™”ํ•  ์ˆ˜ ์—†๋Š” ๊ธฐ๋ณธ ์œ ํ˜•์œผ๋กœ ๋๋‚  ๋•Œ๊นŒ์ง€ ๊ธฐ๋ณธ ์œ ํ˜• ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค . ์˜ˆ๋ฅผ ๋“ค์–ด int ๋Š” ๊ธฐ๋ณธ ์œ ํ˜•์ด์ง€๋งŒ String์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฌธ์ž ํ…Œ์ด๋ธ”๋กœ ์ €์žฅํ•˜๋Š” ๋ณตํ•ฉ ์œ ํ˜•์ž…๋‹ˆ๋‹ค(์—ฌ๊ธฐ์„œ ๊ฐ ๋ฌธ์ž๋Š” ๊ธฐ๋ณธ ์œ ํ˜• char ์ž„ )."

"์•„์ฃผ ํฅ๋ฏธ๋กญ๊ตฐ. ๊ณ„์†ํ•ด."

"๋ณตํ•ฉ ์œ ํ˜•์€ ๋‹จ์ˆœ ์œ ํ˜•์„ ๊ทธ๋ฃนํ™”ํ•˜์—ฌ ํ˜•์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์œ ํ˜•์„ ํด๋ž˜์Šค ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค . ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ƒˆ ํด๋ž˜์Šค๋ฅผ ์ •์˜ํ•  ๋•Œ ์ƒˆ ๋ณตํ•ฉ ๋ฐ์ดํ„ฐ ์œ ํ˜•์„ ์„ ์–ธํ•ฉ๋‹ˆ๋‹ค . ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋Š” ๋‹ค๋ฅธ ๋ณตํ•ฉ ์œ ํ˜• ๋˜๋Š” ๊ธฐ๋ณธ ์œ ํ˜•์ด ๋ฉ๋‹ˆ๋‹ค."

์ž๋ฐ” ์ฝ”๋“œ ์„ค๋ช…
public class Person
{
   String name;
   int age;
}
์ƒˆ๋กœ์šด ๋ณตํ•ฉ ์œ ํ˜•์ด ์„ ์–ธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค โ€“ Person. ๊ทธ ๋ฐ์ดํ„ฐ๋Š” (๋ณตํ•ฉํ˜•) ๋ณ€์ˆ˜ ์™€ (๊ธฐ๋ณธํ˜•) ๋ณ€์ˆ˜
์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.Stringnameintage
public class Rectangle
{
   int x, y, width, height;
}
์ƒˆ๋กœ์šด ๋ณตํ•ฉ ์œ ํ˜•์ด ์„ ์–ธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค โ€“ Rectangle. 4๊ฐœ์˜ (๊ธฐ๋ณธ ์œ ํ˜•) ๋ณ€์ˆ˜
๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค .int
public class Cat
{
   Person owner;
   Rectangle territory;
   int age;
   String name;
}
์ƒˆ๋กœ์šด ๋ณตํ•ฉ ์œ ํ˜•์ด ์„ ์–ธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค โ€“ Cat. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ณ€์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
โ€” owner, ๋ณตํ•ฉ ์œ ํ˜• Person
โ€” territory, ๋ณตํ•ฉ ์œ ํ˜• Rectangle
โ€” age, ๊ธฐ๋ณธ ์œ ํ˜• int
โ€” name, ๋ณตํ•ฉ ์œ ํ˜•String

"์•„๋ฌด๋ฆฌ ์ด์ƒํ•˜๊ฒŒ ๋ณด์ผ์ง€๋ผ๋„ ์ง€๊ธˆ์€ ๋ชจ๋“  ๊ฒƒ์ด ๋ช…ํ™•ํ•ฉ๋‹ˆ๋‹ค."

"ํฐ(๋ณตํ•ฉ) ์œ ํ˜•์—๋Š” ๋งŽ์€ ์ž‘์€(๊ธฐ๋ณธ) ์œ ํ˜•์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿฌํ•œ ์œ ํ˜•์˜ ๊ฐœ์ฒด๋Š” ๊ธฐ๋ณธ ์œ ํ˜•์˜ ๋ณ€์ˆ˜๋ณด๋‹ค ๋” ๋งŽ์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ฐจ์ง€ํ•ฉ๋‹ˆ๋‹ค. ๋•Œ๋กœ๋Š” ํ›จ์”ฌ ๋” ๋งŽ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ณ€์ˆ˜๋กœ ํ• ๋‹น ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๊ณ  ๋ฉ”๋ชจ๋ฆฌ์˜ ํฐ ๋ถ€๋ถ„์„ ๋ณต์‚ฌํ•ด์•ผ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ณตํ•ฉ ์œ ํ˜•์˜ ๋ณ€์ˆ˜๋Š” ๊ฐœ์ฒด ์ž์ฒด๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š๊ณ  ๊ฐœ์ฒด์— ๋Œ€ํ•œ ์ฐธ์กฐ, ์ฆ‰ 4๋ฐ”์ดํŠธ ์ฃผ์†Œ๋งŒ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ด๋Ÿฌํ•œ ๊ฐœ์ฒด์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ์— ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. Java ๋จธ์‹ ์€ ๊ด€๋ จ๋œ ๋ชจ๋“  ๋ณต์žก์„ฑ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค."

"๋‚˜๋Š” ๊ทธ ์–ด๋–ค ๊ฒƒ๋„ ์ดํ•ดํ•˜์ง€ ๋ชปํ–ˆ๋‹ค."

"์šฐ๋ฆฌ๋Š” ์ด์ „์— ๋ณ€์ˆ˜๊ฐ€ ์ƒ์ž์™€ ๊ฐ™๋‹ค๊ณ  ๋งํ–ˆ์Šต๋‹ˆ๋‹ค. 13์ด๋ผ๋Š” ์ˆซ์ž๋ฅผ ์ €์žฅํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์ข…์ด์— 13์„ ์จ์„œ ์ƒ์ž์— ๋„ฃ์œผ๋ฉด ๋ฉ๋‹ˆ๋‹ค."

"ํ•˜์ง€๋งŒ ์ƒ์ž(๋ณ€์ˆ˜)์— ๋” ํฐ ๊ฒƒ์„ ์ €์žฅํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ์ƒํ•ด ๋ณด์„ธ์š”. ์˜ˆ๋ฅผ ๋“ค์–ด ๊ฐœ, ์ž๋™์ฐจ ๋˜๋Š” ์ด์›ƒ์ž…๋‹ˆ๋‹ค. ๋ฐ€ ์ˆ˜ ์—†๋Š” ๊ฒƒ์„ ์ƒ์ž์— ๋ฐ€์–ด ๋„ฃ์œผ๋ ค๊ณ  ํ•˜๋Š” ๋Œ€์‹  ์‚ฌ์ง„์„ ์‚ฌ์šฉํ•˜์—ฌ ๋” ์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ ๊ฐœ ๋Œ€์‹  ๊ฐœ, ์‹ค์ œ ์ž๋™์ฐจ ๋Œ€์‹  ๋ฒˆํ˜ธํŒ, ์ด์›ƒ ๋Œ€์‹  ์ด์›ƒ ์ „ํ™” ๋ฒˆํ˜ธ."

"์šฐ๋ฆฌ๋Š” ์ข…์ด ํ•œ ์žฅ์„ ๊ฐ€์ ธ๋‹ค๊ฐ€ ์ด์›ƒ์˜ ์ „ํ™”๋ฒˆํ˜ธ๋ฅผ ์ ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋ฌผ์ฒด์— ๋Œ€ํ•œ ์ฐธ์กฐ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด์›ƒ์˜ ์ „ํ™”๋ฒˆํ˜ธ๊ฐ€ ์ ํžŒ ์ข…์ด๋ฅผ ๋ณต์‚ฌํ•˜์—ฌ ์—ฌ๋Ÿฌ ์ƒ์ž์— ๋„ฃ์œผ๋ฉด ์ด์ œ ๋” ๋งŽ์€ ์ฐธ์กฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด์ „๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์—ฌ์ „ํžˆ ์ด์›ƒ์ด ํ•œ ๋ช…๋ฟ์ž…๋‹ˆ๋‹ค. ๋ง์ด ๋ฉ๋‹ˆ๊นŒ?"

"์ด๋Ÿฌํ•œ ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์ค‘์š”ํ•œ ๊ธฐ๋Šฅ์€ ๋‹จ์ผ ๊ฐœ์ฒด์— ๋Œ€ํ•œ ๋งŽ์€ ์ฐธ์กฐ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค ."

"์–ผ๋งˆ๋‚˜ ํฅ๋ฏธ๋กญ๊ตฐ! ๊ฑฐ์˜ ์•Œ์•„๋ƒˆ์–ด. ํ•œ ๋ฒˆ ๋” ๋งํ•ด์ค˜. ๋ณตํ•ฉ ์œ ํ˜•์˜ ๋ณ€์ˆ˜๋ฅผ ๋™์ผํ•œ ๋ณตํ•ฉ ์œ ํ˜•์˜ ๋‹ค๋ฅธ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ?"

"๊ทธ๋Ÿฌ๋ฉด ๋‘ ๋ณ€์ˆ˜๋Š” ๊ฐ™์€ ์ฃผ์†Œ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰ , ํ•œ ๋ณ€์ˆ˜๊ฐ€ ์ฐธ์กฐํ•˜๋Š” ๊ฐœ์ฒด์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด ๋‹ค๋ฅธ ๋ณ€์ˆ˜๊ฐ€ ์ฐธ์กฐํ•˜๋Š” ๋ฐ์ดํ„ฐ๋„ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค . ๋‘ ๋ณ€์ˆ˜ ๋ชจ๋‘ ๋™์ผํ•œ ๊ฐœ์ฒด๋ฅผ ์ฐธ์กฐํ•ฉ๋‹ˆ๋‹ค . ๋ฌผ๋ก  ๋งŽ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฐธ์กฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋‹ค๋ฅธ ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค."

"๋ณตํ•ฉ(์ฐธ์กฐ/ํด๋ž˜์Šค) ์œ ํ˜•์˜ ๋ณ€์ˆ˜๋Š” ๊ฐœ์ฒด์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ๋ณด์œ ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์–ด๋–ป๊ฒŒ ํ•ฉ๋‹ˆ๊นŒ? ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๊นŒ?"

"์˜ˆ, ์•„๋ฏธ๊ณ . ๋‹น์‹ ์€ ๋‹น์‹ ์˜ ์งˆ๋ฌธ์— ๋‚˜๋ณด๋‹ค ์•ž์„œ ๊ฐ€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ฐธ์กฐ(๋ณตํ•ฉ) ์œ ํ˜•์˜ ๋ณ€์ˆ˜๊ฐ€ ๊ฐ์ฒด์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ '๋„(null)'๋กœ ์•Œ๋ ค์ง„ ๊ฒƒ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด๊ฒƒ์€ ์ฃผ์†Œ๊ฐ€ 0์ธ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Java ๋จธ์‹ ์€ ์ด ์ฃผ์†Œ๋กœ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ฐธ์กฐ ๋ณ€์ˆ˜์— 0์ด ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉด ์–ด๋–ค ๊ฐ์ฒด๋„ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์„ ํ•ญ์ƒ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ."

์ž๋ฐ” ์ฝ”๋“œ ์„ค๋ช…
String s;
String s = null;
๋™๋“ฑํ•œ ์ง„์ˆ .
Person person;
person = new Person();
person = null;
๊ฐ’์ด null์ธ ๊ฐœ์ธ ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
์ƒˆ๋กœ ์ƒ์„ฑ๋œ Person ๊ฐœ์ฒด์˜ ์ฃผ์†Œ๋ฅผ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.
๋ณ€์ˆ˜์— null์„ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.
Cat cat = new Cat();
cat.owner = new Person();
cat.owner.name = "God";
Cat ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๊ทธ ์ฃผ์†Œ๋ฅผ ๋ณ€์ˆ˜ cat์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. cat.owner๋Š” null๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
์ƒˆ๋กœ ์ƒ์„ฑ๋œ Person ๊ฐœ์ฒด์˜ ์ฃผ์†Œ์™€ ๋™์ผํ•˜๊ฒŒ cat.owner๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
cat.owner.name์€ ์—ฌ์ „ํžˆ โ€‹โ€‹null์ž…๋‹ˆ๋‹ค.
์šฐ๋ฆฌ๋Š” cat.owner.name์„ "์‹ "๊ณผ ๋™์ผํ•˜๊ฒŒ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

"๋‚ด๊ฐ€ ์ œ๋Œ€๋กœ ์ดํ•ดํ–ˆ๋‚˜์š”? ๋ณ€์ˆ˜๋Š” ๊ธฐ๋ณธ ์œ ํ˜•๊ณผ ์ฐธ์กฐ ์œ ํ˜•์˜ ๋‘ ๊ฐ€์ง€ ์œ ํ˜•์œผ๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ์œ ํ˜•์€ ๊ฐ’์„ ์ง์ ‘ ์ €์žฅํ•˜๋Š” ๋ฐ˜๋ฉด ์ฐธ์กฐ ์œ ํ˜•์€ ๊ฐœ์ฒด์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ์œ ํ˜•์—๋Š” int, char, boolean ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฐธ์กฐ ์œ ํ˜•์—๋Š” ๋‹ค๋ฅธ ๋ชจ๋“  ๊ฒƒ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค."

"๋„ค ๋ง์ด ๋งž์•„, ๋‚ด ์•„๋“ค."

"๊ทธ๋ž˜์„œ ๋‹น์‹ ์€ ๋ชจ๋“  ๊ฒƒ์„ ์ดํ•ดํ–ˆ๋‹ค๊ณ  ๋งํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ๋‹น์‹ ์˜ ์ง€์‹์„ ๊ฐ•ํ™”ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ๋ช‡ ๊ฐ€์ง€ ์ž‘์—…์ž…๋‹ˆ๋‹ค."