1. ๋ชจ๋ ํด๋์ค ์์Object
Java์ ๋ชจ๋ ํด๋์ค๋ ์์์ ์ผ๋ก Object
ํด๋์ค๋ฅผ ์์ํฉ๋๋ค.
Java Core ํ๊ตฌ์์ ์์์ด ๋ฌด์์ด๋ฉฐ Java์์ ์ด๋ป๊ฒ ์๋ํ๋์ง ๋ถ์ํ ๊ฒ์ ๋๋ค. ์ง๊ธ์ ๋ค์๊ณผ ๊ฐ์ ๊ฐ๋จํ ์ฌ์ค ํ๋๋ฅผ ๊ณ ๋ คํ ๊ฒ์ ๋๋ค.
๋ชจ๋ ํด๋์ค์ ๊ฐ์ฒด๋ฅผ Object
๋ณ์์ ํ ๋นํ ์ ์์ต๋๋ค. ์:
์ํธ | ๋ฉ๋ชจ |
---|---|
|
๋ณ์ ๋ ๊ฐ์ฒด o ์ ๋ํ ์ฐธ์กฐ๋ฅผ ์ ์ฅํฉ๋๋ค.Scanner |
|
๋ณ์ ๋ ๊ฐ์ฒด o ์ ๋ํ ์ฐธ์กฐ๋ฅผ ์ ์ฅํฉ๋๋ค.String |
|
๋ณ์ ๋ ๊ฐ์ฒด o ์ ๋ํ ์ฐธ์กฐ๋ฅผ ์ ์ฅํฉ๋๋ค.Integer |
|
๋ณ์ ๋ ๊ฐ์ฒด o ์ ๋ํ ์ฐธ์กฐ๋ฅผ ์ ์ฅํฉ๋๋ค.String |
์ด๊ฒ์ ์ข์ ์์์ด ๋๋๋ ๊ณณ์
๋๋ค. ์ปดํ์ผ๋ฌ๋ ๋ณ์ ์ ์ ์ฅ๋ ๊ฐ์ฒด์ ์๋ ์ ํ์ ์ถ์ ํ์ง ์์ผ๋ฏ๋ก ์ ์ฅ๋ ๊ฐ์ฒด์์ ํด๋์ค ์ ๋ฉ์๋ ์ด์ธ์ ๋ฉ์๋๋ฅผ ํธ์ถํ ์ ์์ต๋๋ค .Object
Object
๊ฐ์ฒด์ ์๋ ์ ํ๊ณผ ์ฐ๊ฒฐ๋ ๋ฉ์๋๋ฅผ ํธ์ถํด์ผ ํ๋ ๊ฒฝ์ฐ ๋จผ์ ํด๋น ๊ฐ์ฒด์ ๋ํ ์ฐธ์กฐ๋ฅผ ์ฌ๋ฐ๋ฅธ ์ ํ์ ๋ณ์์ ์ ์ฅํ ๋ค์ ํด๋น ๋ณ์์ ๋ํ ๋ฉ์๋๋ฅผ ํธ์ถํด์ผ ํฉ๋๋ค.
์ํธ | ๋ฉ๋ชจ |
---|---|
|
ํ๋ก๊ทธ๋จ์ด ์ปดํ์ผ๋์ง ์์ต๋๋ค. ํด๋์ค ์๋ ๋ฉ์๋๊ฐ Object ์์ต๋๋ค nextInt() . |
|
์๋ํฉ๋๋ค. ์ฌ๊ธฐ์์๋ typecast ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ฒด ์ ๋ํ ์ฐธ์กฐ๋ฅผ ๋ณ์ Scanner ์ ์ ์ฅํฉ๋๋ค . Scanner |
๋ณ์๊ฐ ๊ฐ์ฒด ์ฐธ์กฐ๋ฅผ ์ ์ฅ Object
ํ๋๋ผ๋ ์ค์บ๋ ๋ณ์์ ๋ณ์๋ฅผ ํ ๋นํ ์๋ ์์ต๋๋ค . Object
Scanner
๊ทธ๋ฌ๋ ์ด๋ฏธ ์๊ณ ์๋ typecast ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ฉด ์ด ์์
์ ์ํํ ์ ์์ต๋๋ค . ์ผ๋ฐ์ ์ธ ๋ชจ์ต์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
Type name1 = (Type) name2;
์ฌ๊ธฐ์ name1
๋ ๋ณ์ ์ด๋ฆ Type
์ด๊ณ ๋ ๊ฐ์ฒด ์ ๋ํ ์ฐธ์กฐ๋ฅผ ์ ์ฅํ๋ ๋ณ์ name2
์ด๋ฆ์
๋๋ค .Object
Type
ํ์ ์บ์คํ
๋ณ์์ ์ ํ๊ณผ ๊ฐ์ฒด์ ์ ํ์ด ์ผ์นํ์ง ์์ผ๋ฉด a๊ฐ ClassCastException
๋ฐ์ํฉ๋๋ค. ์:
์ํธ | ๋ฉ๋ชจ |
---|---|
|
๋ฐํ์ ์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ์ฌ๊ธฐ์์ a๊ฐ ClassCastException ๋ฐ์ํฉ๋๋ค. |
Java์์ ์ด ์ค๋ฅ๋ฅผ ๋ฐฉ์งํ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ๋ณ์์ ์ ์ฅ๋ ๊ฐ์ฒด์ ์ ํ์ ํ์ธํ์ฌ ์ด๋ฅผ ์ํํฉ๋๋ค .
name instanceof Type
์ฐ์ฐ์ ๋ ๋ณ์๊ฐ ๊ฐ์ฒด์ธ์ง instanceof
์ฌ๋ถ๋ฅผ ํ์ธํฉ๋๋ค .name
Type
์๋ฅผ ๋ค์ด ๋ค์ํ ๊ฐ์ฒด์ ๋ฐฐ์ด์์ ๋ฌธ์์ด์ ์ฐพ์๋ณด๊ฒ ์ต๋๋ค.
์ํธ | ๋ฉ๋ชจ |
---|---|
|
Integer Autoboxing์ ์ด ๊ฐ์ ๊ฐ๊ฐ , String ๋ฐ ๋ก ๋ณํํฉ๋๋ค Double . ๊ฐ์ฒด์ ๋ฐฐ์ด์ ๋ฐ๋ณตํฉ๋๋ค. ๊ฐ์ฒด๊ฐ a์ด๋ฉด ๋ณ์ String ์ ์ ์ฅํฉ๋๋ค . ๋ณ์๋ฅผ ํ๋ฉด์ ํ์ํฉ๋๋ค. String |
2. ์ ๋ค๋ฆญ์ด ๋ฑ์ฅํ ์ด์ โ ์ปฌ๋ ์
์ปฌ๋ ์ ์ผ๋ก ๋์๊ฐ ๋ด ์๋ค.
Java ๊ฐ๋ฐ์๋ ํด๋์ค๋ฅผ ๋ง๋ค์๋ง์ ArrayList
๋ชจ๋ ์ ํ์ ๊ฐ์ฒด๋ฅผ ์ ์ฅํ ์ ์๋๋ก ๋ฒ์ฉ์ผ๋ก ๋ง๋ค๊ณ ์ถ์์ต๋๋ค. Object
๊ทธ๋์ ๊ทธ๋ค์ ์์๋ฅผ ์ ์ฅํ๊ธฐ ์ํด s ์ ๋ฐฐ์ด์ ์ฌ์ฉํ์ต๋๋ค .
์ด ์ ๊ทผ ๋ฐฉ์์ ์ฅ์ ์ ๋ชจ๋ ์ ํ์ ๊ฐ์ฒด๋ฅผ ์ปฌ๋ ์ ์ ์ถ๊ฐํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค.
๋ฌผ๋ก ๋ช ๊ฐ์ง ์ฝ์ ์ด ์๋ค.
๋จ์ 1.
์ปฌ๋ ์ ์์ ์์๋ฅผ ๊ฒ์ํ ๋ ํญ์ ํ์ ๋ณํ ์ฐ์ฐ์๋ฅผ ์์ฑํด์ผ ํ์ต๋๋ค.
์ํธ | ๋ฉ๋ชจ |
---|---|
|
Object ๊ฐ์ฒด ์ ๋ํ ์ฐธ์กฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ํ ์ปฌ๋ ์
๋ง๋ค๊ธฐ ์ปฌ๋ ์
์ ์ซ์ 10 , 20 , ... ๋ก ์ฑ์๋๋ค 100 . ์ปฌ๋ ์ ์ ์์ ํฉ๊ณ Typecasting์ด ํ์ํฉ๋๋ค. |
๋จ์ 2.
์ปฌ๋ ์ ์ ํน์ ์ ํ์ ์์๊ฐ ํฌํจ๋์ด ์๋ค๋ ๋ณด์ฅ์ด ์์ต๋๋ค.
์ํธ | ๋ฉ๋ชจ |
---|---|
|
Object ๊ฐ์ฒด ์ ๋ํ ์ฐธ์กฐ๋ฅผ ์ ์ฅํ๋ ์ปฌ๋ ์
๋ง๋ค๊ธฐ ๊ฐ์ฒด ๋ก ํ์๋ ์ซ์๋ก ์ปฌ๋ ์ ์ ์ฑ์๋๋ค . , , , ... ์ปฌ๋ ์ ์ ์์ ํฉ๊ณ ์ค๋ฅ ๊ฐ ๋ฐ์ํฉ๋๋ค. Double 0.0 2.5 5.0 Double Integer |
๋ฐ์ดํฐ๋ ์ด๋์์๋ ์ปฌ๋ ์ ์ ๋ฃ์ ์ ์์ต๋๋ค.
- ๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก
- ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์์
- ํ์ผ์์
- ๋คํธ์ํฌ๋ฅผ ํตํด
๋จ์ 3.
์ปฌ๋ ์ ์ ๋ฐ์ดํฐ๋ ์ค์๋ก ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค.
๋ฐ์ดํฐ๋ก ์ฑ์์ง ์ปฌ๋ ์ ์ ์ผ๋ถ ๋ฉ์๋์ ์ ๋ฌํ ์ ์์ต๋๋ค. ๋ค๋ฅธ ํ๋ก๊ทธ๋๋จธ๊ฐ ์์ฑํ ์ด ๋ฉ์๋๋ ํด๋น ๋ฐ์ดํฐ๋ฅผ ์ปฌ๋ ์ ์ ์ถ๊ฐํฉ๋๋ค.
์ปฌ๋ ์ ์ ์ด๋ฆ์ ์ฌ๊ธฐ์ ์ ์ฅํ ์ ์๋ ๋ฐ์ดํฐ ์ ํ์ ๋ช ํํ๊ฒ ๋ํ๋ด์ง ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ณ์์ ๋ช ํํ ์ด๋ฆ์ ์ง์ ํ๋๋ผ๋ ๋ณ์์ ๋ํ ์ฐธ์กฐ๊ฐ 12๊ฐ์ง ๋ฉ์๋์ ์ ๋ฌ๋ ์ ์์ผ๋ฉฐ ํด๋น ๋ฉ์๋๋ ๋ณ์์ ์๋ ์ด๋ฆ์ ๋ํด ์ ํ ์์ง ๋ชปํฉ๋๋ค.
3. ์ ๋ค๋ฆญ
Java์์๋ ์ด๋ฌํ ๋ชจ๋ ๋ฌธ์ ๊ฐ ์ ๋ค๋ฆญ์ด๋ผ๋ ๋ฉ์ง ๊ธฐ๋ฅ์ผ๋ก ์ ๊ฑฐ๋ฉ๋๋ค.
Java์์ ์ ๋ค๋ฆญ์ ์ ํ์ ์ ํ ๋งค๊ฐ๋ณ์๋ฅผ ์ถ๊ฐํ๋ ๊ธฐ๋ฅ์ ์๋ฏธํฉ๋๋ค. ๊ฒฐ๊ณผ๋ ๋ณตํฉ ๋ณตํฉ ์ ํ์ ๋๋ค. ์ด๋ฌํ ๋ณตํฉ ์ ํ์ ์ผ๋ฐ์ ์ธ ๋ณด๊ธฐ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
ClassName<TypeParameter>
์ผ๋ฐ ํด๋์ค์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ํ์์ ํด๋์ค๋ฅผ ์ฌ์ฉํ๋ ๋ชจ๋ ๊ณณ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ํธ | ์ค๋ช |
---|---|
|
๋ณ์ ๋ง๋ค๊ธฐ |
|
๊ฐ์ฒด ๋ง๋ค๊ธฐ |
|
์ด๋ ์ด ์์ฑ |
Integer
์ด๋ฌํ ์ปฌ๋ ์
์๋ ๋ณ์ ๋ง ์ ์ฅํ ์ ์์ต๋๋ค.
์ํธ | ์ค๋ช |
---|---|
|
ArrayList Integer ์์ ๊ฐ ํฌํจ๋ ์ปฌ๋ ์
์ด๊ฒ์ ํ์ฉ๋๋ฉฐ ์ด๊ฒ๋ ์๋ํฉ๋๋ค.
์คํ ๋ฐ์ฑ
๊ทธ๋ฌ๋ ์ด๊ฒ์ ํ์ฉ๋์ง ์์ต๋๋ค: ์ปดํ์ผ ์ค๋ฅ |
Java Collections ํ์คํธ์์ ์ ํ ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ์์ ๋ง์ ํด๋์ค๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์๋๋ค. ์ง๊ธ์ ์ฌ์ฉ ๋ฐฉ๋ฒ๊ณผ ์๋ ๋ฐฉ์์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
4. ์ ๋ค๋ฆญ ์๋ ๋ฐฉ์
์ค์ ๋ก ์ ๋ค๋ฆญ์ ๋งค์ฐ ์์์ ์ ๋๋ค.
์ปดํ์ผ๋ฌ๋ ๋จ์ํ ์ ๋ค๋ฆญ ํ์์ ์ผ๋ฐ ํ์์ผ๋ก ๋ฐ๊ฟ๋๋ค. ๊ทธ๋ฌ๋ ์ ๋ค๋ฆญ ํ์์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ปดํ์ผ๋ฌ๋ ๋งค๊ฐ ๋ณ์๋ฅผ ํ์ ๋งค๊ฐ ๋ณ์๋ก ์บ์คํ ํ๊ธฐ ์ํด ํ์ ๋ณํ ์ฐ์ฐ์๋ฅผ ์ถ๊ฐํฉ๋๋ค.
์ํธ | ์ปดํ์ผ๋ฌ๊ฐ ํ๋ ์ผ |
---|---|
|
|
|
|
|
|
|
|
์ ์ ์ปฌ๋ ์ ์ ์ซ์๋ฅผ ํฉ์ฐํ๋ ๋ฉ์๋๊ฐ ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
์ํธ | ์ปดํ์ผ๋ฌ๊ฐ ํ๋ ์ผ |
---|---|
|
|
์ฆ, ์ ๋ค๋ฆญ์ autoboxing๊ณผ ๋น์ทํ์ง๋ง ์กฐ๊ธ ๋ ๋ง์ ๊ตฌ๋ฌธ ์คํ์ ์ผ์ข
์
๋๋ค. int
์คํ ๋ฐ์ฑ์ ํตํด ์ปดํ์ผ๋ฌ๋ an์ an์ผ๋ก Integer
๋๋ ๊ทธ ๋ฐ๋๋ก ๋ณํํ๋ ๋ฉ์๋๋ฅผ ์ถ๊ฐ ํ๊ณ ์ ๋ค๋ฆญ์ ๊ฒฝ์ฐ typecast ์ฐ์ฐ์๋ฅผ ์ถ๊ฐํฉ๋๋ค.
์ปดํ์ผ๋ฌ๊ฐ ์ ํ ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ์ผ๋ฐ ํด๋์ค๋ฅผ ์ปดํ์ผํ ํ ์ผ๋ฐ ํด๋์ค ๋ฐ ์ ํ ๋ณํ ์ฐ์ฐ์๋ก ๊ฐ๋จํ ๋ณํ๋ฉ๋๋ค. ์ ๋ค๋ฆญ ํ์์ ๋ณ์์ ์ ๋ฌ๋ ํ์ ์ธ์์ ๋ํ ์ ๋ณด๊ฐ ์์ค๋ฉ๋๋ค. ์ด ํจ๊ณผ๋ฅผ ์ ํ ์ญ์ ๋ผ๊ณ ๋ ํฉ๋๋ค .
๋๋ก ์ผ๋ฐ ํด๋์ค(์ ํ ๋งค๊ฐ๋ณ์๊ฐ ์๋ ํด๋์ค)๋ฅผ ์์ฑํ๋ ํ๋ก๊ทธ๋๋จธ๋ ์ค์ ๋ก ์ธ์๋ก ์ ๋ฌ๋ ์ ํ์ ๋ํ ์ ๋ณด๊ฐ ํ์ํฉ๋๋ค. Java Collections ํ์คํธ์์ ์ด๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ๊ณผ ์๋ฐ๋๋ ์ฌํญ์ ๋ฐฐ์ฐ๊ฒ ๋ฉ๋๋ค.
5. ์ ๋ค๋ฆญ์ ๋ํ ๋ช ๊ฐ์ง ์ฌ์ค
๋ค์์ ์ ๋ค๋ฆญ์ ๋ํ ๋ช ๊ฐ์ง ํฅ๋ฏธ๋ก์ด ์ฌ์ค์ ๋๋ค.
ํด๋์ค๋ ์ฌ๋ฌ ์ ํ ๋งค๊ฐ๋ณ์๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค. ๋ค์๊ณผ ๊ฐ์ด ๋ณด์ ๋๋ค.
ClassName<TypeParameter1, TypeParameter2, TypeParameter3>
์ฌ์ค ์ด๊ฒ์ ๋ณ๋ก ๋๋ผ์ด ์ผ์ด ์๋๋๋ค. ์ปดํ์ผ๋ฌ๊ฐ ํ๋์ ์ ํ์ผ๋ก ์บ์คํธํ ์ฐ์ฐ์๋ฅผ ์ถ๊ฐํ ์ ์๋ ๋ชจ๋ ๊ณณ์์ ์ฌ๋ฌ ์ ํ ์บ์คํธ โโ์ฐ์ฐ์๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค.
์:
์ํธ | ๋ฉ๋ชจ |
---|---|
|
๋ฉ์๋ put ์ ์ฒซ ๋ฒ์งธ ๋งค๊ฐ๋ณ์๋ Integer ์ด๊ณ ๋ ๋ฒ์งธ ๋งค๊ฐ๋ณ์๋String |
์ ๋ค๋ฆญ ์ ํ๋ ๋งค๊ฐ๋ณ์๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค . ๋ค์๊ณผ ๊ฐ์ด ๋ณด์ ๋๋ค.
ClassName<TypeParameter<TypeParameterParameter>>
๋ฌธ์์ด ๋ชฉ๋ก์ ์ ์ฅํ ๋ชฉ๋ก์ ๋ง๋ค๊ณ ์ถ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ์ด ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ป๊ฒ ๋ฉ๋๋ค.
// List of greetings
ArrayList<String> listHello = new ArrayList<String>();
listHello.add ("Hello");
listHello.add ("Hi");
// List of goodbyes
ArrayList<String> listBye = new ArrayList<String>();
listBye.add("Bye");
listBye.add ("Goodbye");
// List of lists
ArrayList<ArrayList<String>> lists = new ArrayList<ArrayList<String>>();
lists.add(listHello);
lists.add(listBye);
์ผ๋ฐ ์ ํ(์ ํ ๋งค๊ฐ๋ณ์๊ฐ ์๋ ์ ํ)๋ ๋ฐฐ์ด ์ ํ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ค์๊ณผ ๊ฐ์ด ๋ณด์ ๋๋ค.
ClassName<TypeParameter>[] array = new ClassName<TypeParameter>[size];
์ฌ๊ธฐ์๋ ๋ง๋ฒ ๊ฐ์ ์ผ์ด ์ผ์ด๋์ง ์์ต๋๋ค. ๊บพ์ ๊ดํธ๋ ์ ํ ์ด๋ฆ์ ๋ํ๋ ๋๋ค.
์ํธ | ์ ๋ค๋ฆญ์ด ์๋ ๋์๋ฌผ |
---|---|
|
|
|
|
|
|
GO TO FULL VERSION