[Day15] Java 15 [8/29]
1. ์ ๊ทผ์ง์ ์
1) ์๋ฏธ๊ฐ ๋ค๋ฅด๋ค
- ํด๋์ค ์ ์ ๊ทผ์ง์ ์
- ๋ฉค๋ฒ ์ ์ ๊ทผ์ง์ ์
2) ํด๋์ค ์ ์ ๊ทผ์ง์ ์
- public : ํจํค์ง ๋ด/์ธ๋ถ ์ฐธ์กฐ, ์์ ๊ฐ๋ฅ
- default : ํจํค์ง ๋ด๋ถ ์์๋ง ์ฐธ์กฐ ,์์ ๊ฐ๋ฅ
(๋นํ์ฑํ)
[๋ ๋ฆฝ์ ์ธ ํด๋์ค๋ก ์ ์ธํ ๋ ์ฌ์ฉ ๋ชปํจ / ์ค์ฒฉ ํด๋์ค(๋ด๋ถ ํด๋์ค)๋ก ์ฌ์ฉํ ๋ ์ฌ์ฉ ๊ฐ๋ฅ]
- protected : ํจํค์ง ๋ด๋ถ์์ ์ฐธ์กฐ, ์์ ๊ฐ๋ฅ / ํจํค์ง ์ธ๋ถ๋ ์์๋ง ๊ฐ๋ฅ
- private : ๊ฐ์ ํ์ผ ๋ด์์๋ง ์ฐธ์กฐ, ์์ ๊ฐ๋ฅ
* ๊ธฐํ์ ์ด์ :
- abstract : ์ถ์ํด๋์ค ์ ์ธ
- final : ์ต์ข ํด๋์ค ์ ์ธ
(๋นํ์ฑํ)
- static : ์ค์ฒฉํด๋์ค ์ ์ธ, ์ ์ ํด๋์ค
2. ํด๋์ค
- ํ๋๋ ์ด๊ธฐํํ์ง ์์ผ๋ฉด ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ด๊ธฐํ๋์ด์๋ค.
- ์ธ์คํด์ค๋ ์ฐธ์กฐ๋ณ์๋ฅผ ํตํด์๋ง ๋ค๋ฃฐ ์ ์์ผ๋ฉฐ, ์ฐธ์กฐ๋ณ์์ ํ์ ์ ์ธ์คํด์ค์ ํ์ ๊ณผ ์ผ์นํด์ผ ํ๋ค.
Tv t1 = new Tv();
test( t1 );
System.out.println(t1.color); // red
System.out.println(t1.channel); // 10
} // main
private static void test(Tv t) {
// t1 -> Tv t ๊ฐ์ฒด==์ฐธ์กฐ๋ณ์์ ์๋ฃํ
t.color = "red";
t.channel = 10;
}
์ฐธ์กฐ ๊ด๊ณ ์ ์ดํดํ๊ธฐ
3. ํด๋์ค ๋ณต์ฌ (copy) / ๋ณต์ (clone)
1) ํด๋์ค ๋ณต์ฌ (copy)
- ํ๋์ ์ธ์คํด์ค๋ฅผ ์ฌ๋ฌ ๊ฐ ์ฐธ์กฐํ๋๋ก ํ๋ ๊ฒ
Tv t1 = new Tv();
Tv t2 = t1;
2) ํด๋์ค ๋ณต์ (clone)
- ๋๊ฐ์ ์ธ์คํด์ค๊ฐ ๊ฐ์ ๊ฐ์ ๊ฐ์ง๋ ๊ฒ
Tv t2 = new Tv();
t2.color = t1.color;
t2.channel = t1.channel;
4. Call By Reference (Swap)
public class Ex04 {
public static void main(String[] args) {
Point p = new Point();
p.x= 10;
p.y= 20;
swap( p ); // ๋ x,y ํ๋ ๊ฐ์ ๊ตํ Call By Reference
System.out.println( p.x +"/" + p.y);
} // main
private static void swap(Point p) { // ํด๋์ค ๋ณต์ฌ๋ ๊ฐ๋
.
int temp = p.x;
p.x= p.y;
p.y = temp;
}
} // class
// ํด๋์ค ์ ์ธ
class Point{
// ํ๋ x,y ์ขํ ์ ์ธ
int x;
int y;
}
Class Test {
//๋ฉ์๋
Public void disp( int x ) {
//๊ธฐ๋ณธํ ๋งค๊ฐ๋ณ์
}
Public void disp( int [] m) {
//์ฐธ์กฐํ ๋งค๊ฐ๋ณ์
// ์ฐธ์กฐ ์ฃผ์๊ฐ, ์ธ์คํด์ค์ ์ฃผ์๊ฐ์ ์ฐธ์กฐํ๋ ๊ฒ (ํด๋์ค ๋ณต์ฌ = ๊ฐ์ ์ธ์คํด์ค๋ฅผ ๊ฐ๋ฆฌํจ๋ค๋ ๊ฒ์ด ์ค์ํจ)
}
}
5. ๋ฉค๋ฒ ๋ณ์
1) ์ธ์คํด์ค ๋ณ์ : int i
2) ํด๋์ค ๋ณ์(=static ๋ณ์) : static int i
* ํด๋์ค ๋ด ๋ฉ์๋ ๋ด ์ ์ธ๋ ๋ณ์๋ ์ง์ญ๋ณ์(๋ฐ๋์ ์ด๊ธฐํ)์ (ํ๋ X)
1) ์คํ(Call Stack == execution Stack) ์์ญ
2) ํ(Heap) ์์ญ
3) ๋ฉ์๋(Method Area) ์์ญ - ํด๋์ค ๋ณ์ ์ด ์์ญ์ ์์ฑ๋๋ค. (๋ฉ์๋ ๋ฉ๋ชจ๋ฆฌ์ ํ ๋ฒ๋ง ์ฌ๋ผ๊ฐ)
6. ๋๋จธ์ง
1)
Person p = null;
NullPointerException
- Stack์์ญ์ P๋ผ๋ ๊ฐ์ฒด๊ฐ null๋ก ์ด๊ธฐํ -> ์ธ์คํด์ค(๊ฐ์ฒด)๊ฐ ์์ฑ์๋จ
- P๋ผ๋ ์ฐธ์กฐ๋ณ์์ ์ ์ฅํ๋๊ฒ์ด ๋ถ๊ฐ๋ฅ
2)
ํด๋์ค ๋ฐฐ์ด ์ ์ธํ ๊ฐ ๊ฐ์ฒด๋ ์์ฑํด์ค์ผ ๊ฐ ์ ๊ทผ๊ฐ๋ฅ
9. ์๋ ์ฝ๋ฉ์์ ์๋ชป๋ ๋ถ๋ถ์ ์ฐพ์ ์ฝ๋ฉ ์์ ํ์ธ์.
public class Test{
public static void main(String[] args) {
int result = test();
System.out.println( result );
} // main
public int test() {
return 100;
}
} // class
-> Public static int test()
์ค๋ช : cannot make a static reference to the non-static method~
static ๋ถ์ฌ์ค์ผํจ , static ์๋ถ์๋ค๋ฉด ๊ฐ์ฒด ์์ฑ ํ ๊ฐ์ฒด๋ช .ํ๋๋ช or ๊ฐ์ฒด๋ช .๋ฉ์๋๋ช ์ผ๋ก ํธ์ถ
Ex02 obj = new Ex02();
obj.test();
'๐จโ๐ป Web Development > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Day17] Java 17 - ์์กด์ฑ ์ฃผ์ , ์์, ์ค๋ฒ๋ผ์ด๋ฉ, ์ด๋ ธํ ์ด์ @ (0) | 2022.09.12 |
---|---|
[Day16] Java 16 - ์ค๋ฒ๋ก๋ฉ, getter setter, ์์ฑ์, ์ด๊ธฐํ, static (0) | 2022.09.07 |
[Day14] Java 14 - N์ฐจ์ ๋ฐฐ์ด ์ฑ์๋ฃ๊ธฐ, OOP ๊ธฐ๋ณธ (0) | 2022.09.06 |
[Day13] Java 13 - ์ ๋ ฌ, ์ธ๋ฑ์ค(๋ฉ์๋ํ์ฉX) (0) | 2022.09.06 |
[Day12] Java 12 - ๋ฐฐ์ด์ ํ์ฉ (0) | 2022.09.01 |
์ต๊ทผ๋๊ธ