๐IS A ๊ด๊ณ(is a relationship, inheritance) ๋ ์ผ๋ฐ์ ์ธ ๊ฐ๋ ๊ณผ ๊ตฌ์ฒด์ ์ธ ๊ฐ๋ ์ ๊ด๊ณ - ์์์ผ๋ก ์ฐ๊ฒฐ'~์ ~์ด๋ค' ์ ๊ด๊ณex) ์๋ ๋๋ฌผ์ด๋ค.๐HAS A ๊ด๊ณ(has a relationship, association) ๋ ์ผ๋ฐ์ ์ธ
์ถ๋ ฅ๊ฒฐ๊ณผ32์ธ์น 1024์ปฌ๋ฌ์ถ๋ ฅ๊ฒฐ๊ณผclass Man: ์์์ ๋์์ด ๋๋ ํด๋์ค ์์ ํด๋์ค, ๋ถ๋ชจ ํด๋์ค, ๊ธฐ์ด ํด๋์คclass BusinessMan: ์์์ ํ๋ ํด๋์ค์ ํ์ ํด๋์ค, ์์ ํด๋์ค, ์ ๋ ํด๋์ค
1. enhanced for๋ฌธ 2. ์ธ์คํด์ค ๋ฐฐ์ด ๋์ for-each๋ฌธ (Boxํ)
์ถ๋ ฅ๊ฒฐ๊ณผ์ถ๋ ฅ๊ฒฐ๊ณผ์ถ๋ ฅ๊ฒฐ๊ณผ
int\[] ref = new int5;๋ฐ์ดํฐ ํ์ : int\[] -> ๊ฐ์ฒด ์์ฑint5: intํ ๋ฉ๋ชจ๋ฆฌ ๋ฐฉ 5๊ฐ ์์ฑ (๋ฐ๋์ ์ฐ์๋ intํ)double ar2 = new double7: doubleํ ๋ฉ๋ชจ๋ฆฌ 7๊ฐ (8byte x 7)int ๋ฐฐ์ด 10 ๊ฐ ์ ์ธํ
์ถ๋ ฅ์ด์ : 240ํ๊ท : 80์ถ๋ ฅ๊ฒฐ๊ณผString: ๊ฐ์ฒด์ ํ ๋น๋ ๊ณต๊ฐ์ ํฌ๊ธฐ๊ฐ ๊ณ ์ (=๋ถ๋ณ, immutable) โ ๋ฌธ์์ด์ ๋ํ ๋ ์๋ก์ด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๋ ๋ฐฉ์StringBuilder์ StringBuffer: ๊ฐ์ฒด์ ํ ๋น๋ ๊ณต๊ฐ์ ํฌ๊ธฐ๊ฐ ๊ฐ๋ณ(mutable) โ
s1๋ heap ๋ฉ๋ชจ๋ฆฌ์ ์๋ ํด๋น ์ธ์คํด์ค์ ์ฃผ์๊ฐ ์ฐธ์กฐ.this๋ s1์ ์ฃผ์๊ฐ์ ๋๊ฐ์ด ์ฐธ์กฐํ๋ค.this๋ ํ๋์ ํด๋์ค์ ๋ฉค๋ฒ๋ณ์๋ช ๊ณผ ํ๋ผ๋ฏธํฐ๋ณ์๋ช ์ด ๊ฐ์ ๊ฒฝ์ฐ์ ๋ฉค๋ฒ๋ณ์๋ฅผ ๊ฐ๋ฆฌํค๋ ์ฉ๋๋ก ์ฌ์ฉ๋๋ค.this.๋ณ์๋ช ์ผ๋ก ์ ๊ทผํ๋ค.Person class ์์ re
๋ฉ์๋ ์ค๋ฒ๋ก๋ฉ(Method Overloading): ๊ฐ์ ๋ฉ์๋์ ์ด๋ฆ์ผ๋ก ๋งค๊ฐ๋ณ์์ ๋ฐ์ดํฐ ํ์ ๋๋ ๊ฐ์๋ฅผ ๋ค๋ฅด๊ฒ ์ ์ํ๋ ๊ฒ๋ฉ์๋์ ์ฌ์ฉ๋๋ ์ด๋ฆ์ ์ ์ฝํ ์๋ ์๊ณ , ๋ฉ์๋๋ฅผ ํธ์ถํ ๋ ์ ๋ฌํด์ผ ํ ๋งค๊ฐ๋ณ์์ ํ์ ์ด๋ ๊ฐ์์ ๋ํด ํฌ๊ฒ ์ ๊ฒฝ์ ์ฐ์ง ์๊ณ ํธ์ถํ
โ ๋ฉ์๋ ์์ญ (Method Area): ํด๋์ค ๋ฉค๋ฒ ๋ณ์์ ์ด๋ฆ, ๋ฐ์ดํฐ ํ์ , ์ ๊ทผ ์ ์ด์ ์ ๋ณด์ ๊ฐ์ ๊ฐ์ข ํ๋ ์ ๋ณด๋ค๊ณผ ๋ฉ์๋ ์ ๋ณด, ๋ฐ์ดํฐ Type ์ ๋ณด, Constant Pool, static๋ณ์, final class ๋ฑ์ด ์์ฑ๋๋ ์์ญโก ํ ์์ญ (He
ํด๋์ค ๋ณ์: ๋ฉค๋ฒ๋ณ์ ์ค static์ด ๋ถ์ ๊ฒ= Static ๋ณ์ = ๊ณต์ ๋ณ์ = ์ ์ ๋ณ์(C์ธ์ด์์ ์ฌ์ฉ)static ํค์๋๊ฐ ์ ๋ถ์ด ์์ผ๋ฉด ์ธ์คํด์ค ๋ณ์์ด๋ค.ํด๋์ค ๋ด๋ถ ์ ๊ทผ: static ๋ณ์๊ฐ ์ ์ธ๋ ํด๋์ค ๋ด์์๋ ์ด๋ฆ๋ง์ผ๋ก ์ง์ ์ ๊ทผ ๊ฐ๋ฅํด๋์ค ์ธ๋ถ
์ ๋ณด ์๋(Hidden Information): ํด๋์ค ๋ด๋ถ์์ ์ฌ์ฉํ ๋ณ์๋ ๋ฉ์๋๋ฅผ private์ผ๋ก ์ ์ธํด์ ์ธ๋ถ์์ ์ ๊ทผํ์ง ๋ชปํ๋๋ก ํ๋ ๊ฒ๋ฐฉ๋ฒ: ๋ฐ์ดํฐ ๋ฉค๋ฒ ๋ณ์๋ private๋ก ๋ง๊ณ ๋ฐ์ดํฐ ๋ฉค๋ฒ ๋ณ๊ฒฝ์ ํจ์๋ฅผ ํตํด์ ์งํํ๋ค.๋ค์ ๋ฉค๋ฒ๋ฅผ ๊ฐ์ง๊ณ ์ง์ฌ๊ฐํ์
๐ 1) ์ํํธ์จ์ด ์ํคํ ์ฒ์ ์ค๊ณ์ํํธ์จ์ด ์ํคํ ์ฒ: ์ํํธ์จ์ด์ ๊ณจ๊ฒฉ์ด ๋๋ ๊ธฐ๋ณธ ๊ตฌ์กฐ, ์ํํธ์จ์ด ๊ตฌ์ฑ ์์ ๊ฐ์ ๊ด๊ณ๋ฅผ ํํํ๋ ์์คํ ๊ตฌ์กฐ ๋๋ ๊ตฌ์กฐ์ฒด์ํํธ์จ์ด ๊ฐ๋ฐ ์ ์ ์ฉ๋๋ ์์น๊ณผ ์ง์นจ์ด๋ฉฐ ์ดํด ๊ด๊ณ์๋ค์ ์์ฌ์ํต ๋๊ตฌ์ข์ ํ์ง์ ์ ์งํ๋ฉฐ ์ฌ์ฉ์์ ๋น๊ธฐ
์ถ๋ ฅ๊ฒฐ๊ณผthis : ํ์ฌ ํด๋์ค์ ์ธ์คํด์ค๋ฅผ ์๋ฏธํ๋ฉฐ, ํ์ฌ ํด๋์ค์ ๋งด๋ฒ๋ณ์ (field) ๋ฅผ ์ง์ ํ ๋ ์ฌ์ฉํ๋ค.์๊ธฐ ์์ ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ฐ๋ฆฌํค๋ ์ญํ ์ ํ๋ค.์์ฑ์์์ ๋ค๋ฅธ ์์ฑ์๋ฅผ ํธ์ถ ํ๋ ์ญํ ์ ํ๋ค์ธ์คํด์ค๊ฐ ์๊ธฐ ์์ ์ ์ฃผ์๋ฅผ ๋ฐํํ ๋ ์ฌ์ฉํ๋ค
1) ํด๋์ค ์ด๋ฆ์ฒซ ๋ฌธ์๋ ๋๋ฌธ์๋ก ์์ํ๋ค.๋ ์ด์์ ๋จ์ด๊ฐ ๋ฌถ์ฌ์ ํ๋์ ์ด๋ฆ์ ์ด๋ฃฐ ๋, ์๋ก์ด ๋จ์ด๋ ๋๋ฌธ์๋ก ์์ํ๋ค. (Camel Case) 2) ํจ์์ ๋ณ์๋ฉ์๋ ๋ฐ ๋ณ์ ์ด๋ฆ์ ์ฒซ ๋ฌธ์๋ ์๋ฌธ์๋ก ์์ํ๋ค.๋ ์ด์์ ๋จ์ด๊ฐ ๋ฌถ์ฌ์ ํ๋์ ์ด๋ฆ์ ์ด๋ฃฐ ๋
์ถ๋ ฅ๊ฒฐ๊ณผ์ถ๋ ฅ๊ฒฐ๊ณผcheck(ref); โ ์๋ check ํจ์๋ก ์ฃผ์๊ฐ(์ฐธ์กฐ๊ฐ) ์ ๋ฌ ์ฐธ์กฐ๋ณ์๋ null๊ฐ์ผ๋ก ์ด๊ธฐํ๊ฐ ๊ฐ๋ฅํ๋ฐ, ์ด๋ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ์ง ์๋๋ค๋ ๋ป์ผ๋ก ์ฐธ์กฐํ๋ ์ธ์คํด์ค์์ ๊ด๊ณ๋ฅผ ๋๋ ๊ฒ์ ์๋ฏธํจnull์ ๋์ ํ ๊ฐ์ฒด์ ๋ฐ์ดํฐ๋ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ ์ฝ๋
๐ 1) ์ฌ์ฉ์ ์ธํฐํ์ด์ค (UI, User Interface)์ ๊ฐ์UI๋ ์ฌ์ฉ์์ ์์คํ ๊ฐ์ ์ํธ์์ฉ์ด ์ํํ๊ฒ ์ด๋ค์ง๋๋ก ๋์์ฃผ๋ ์ฅ์น๋ ์ํํธ์จ์ด๋ฅผ ์๋ฏธ์ฌ์ฉ์ ์ธํฐํ์ด์ค์ ์ธ ๊ฐ์ง ๋ถ์ผ์ ๋ณด ์ ๊ณต๊ณผ ์ ๋ฌ์ ์ํ ๋ฌผ๋ฆฌ์ ์ ์ด์ ๊ดํ ๋ถ์ผ์ฝํ ์ธ ์ ์์ธ์ ํํ๊ณผ ์
ref1์ ์ฃผ์๊ฐ์ด ref2์ ๋ฉ๋ชจ๋ฆฌ์ ๋์ ๋์ด ๊ฐ์ ์ธ์คํด์ค๋ฅผ ์ฐธ์กฐํ๊ฒ ๋๋ค.์ถ๋ ฅ๊ฒฐ๊ณผ:์ถ๋ ฅ๊ฒฐ๊ณผ์ถ๋ ฅ๊ฒฐ๊ณผ
๊ทธ๋ฆฌ๋ ์ค๐ ํด๋์ค(Class)๊ฐ์ฒด๋ฅผ ์ ์ํ๊ณ ๋ง๋ค์ด ๋ด๊ธฐ ์ํ ์ค๊ณ๋ ํน์ ํ์ฐ๊ด๋์ด ์๋ ๋ณ์์ ๋ฉ์๋์ ์งํฉ๐ ๊ฐ์ฒด(Object)์ํํธ์จ์ด ์ธ๊ณ์ ๊ตฌํํ ๋์ํด๋์ค์ ์ ์ธ๋ ๋ชจ์ ๊ทธ๋๋ก ์์ฑ๋ ์ค์ฒดํด๋์ค์ ์ธ์คํด์ค(instance) ๋ผ๊ณ ๋ถ๋ฅธ๋ค.๊ฐ์ฒด๋ฅผ ์์ฑํ๋ค
scope๋ ์์ญ, ๋ฒ์๋ผ๋ ๋ป์ผ๋ก ๋ณ์๋ ๋ณ์๊ฐ ์ ์ธ๋ ์์ ๋ถํฐ ํด๋น ๋ณ์๊ฐ ์ํ ์ค๊ดํธ ์์์๋ง ์ฌ์ฉ ๊ฐ๋ฅclass ํด๋์ค ๋ฐ์์์ ๋ณ์ ์ ์ธ์ ๋ถ๊ฐ๋ฅ๊ฐ์ ์์ญ ๋ด์์ ๋์ผ ์ด๋ฆ์ ๋ณ์ ์ ์ธ์ ๋ถ๊ฐ๋ฅ์ง์ญ๋ณ์(local variable): ํจ์ ์์์ ์ ์ธ๋ ๋ณ์์ธ์ค
(1) starReversePrint(5);์ถ๋ ฅstarReversePrint๋ผ๋ ์ด๋ฆ์ ๋ฉ์๋๋ฅผ ์์ฑ์ถ๋ ฅ๊ฒฐ๊ณผ(2) starPrint(5);์ถ๋ ฅ๊ฒฐ๊ณผ(3) oneToHap(10); // 1๋ถํฐ 10๊น์ง์ ํฉ์ถ๋ ฅ๊ฒฐ๊ณผ(4) toHap(2,10); // 2๋ถํฐ 10๊น์ง์