ํด๋์ค(class)
์ ์: ๊ฐ์ฒด๋ฅผ ์ ์ํด ๋์ ๊ฒ, ๊ฐ์ฒด์ ์ค๊ณ๋ ๋๋ ํ
์ฉ๋: ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ๋ฐ ์ฌ์ฉ
ํด๋์ค๋ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ๋ฐ ์ฌ์ฉ๋๋ฉฐ, ๊ฐ์ฒด๋ ํด๋์ค์ ์ ์๋ ๋๋ก ์์ฑ๋๋ค.
ํด๋์ค๋ ์์ฑ(field)์ ๋์(method)์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
class Main {
// field area
private int a = 0;
// method area
public void run() {
a += 1;
}
}
๊ฐ์ฒด(Object)
์ ์: ์ํํธ์จ์ด ์ธ๊ณ์ ๊ตฌํํ ๋์, ํด๋์ค๋ฅผ ํตํด ์์ฑํ ๋์
์ฉ๋: ๊ฐ์ฒด๊ฐ ๊ฐ์ง๊ณ ์๋ ๊ธฐ๋ฅ๊ณผ ์์ฑ์ ๋ฐ๋ผ ๋ค๋ฆ
์ธ์คํด์ค(Instance)
์ ์: ์ํํธ์จ์ด ์ธ๊ณ์ ๊ตฌํ๋ ์ค์ฒด, ๋ฐํ์์ ๋์ํ๋ ๊ฐ์ฒด๋ก ๊ตฌ์ฒด์ ์ธ ์ค์ฒด์ด๋ค.
๊ฐ์ฒด์ ์ธ์คํด์ค
๐กํด๋์ค๋ก๋ถํฐ ๊ฐ์ฒด๋ฅผ ๋ง๋๋ ๊ณผ์ ์ ํด๋์ค์ ์ธ์คํด์คํ(instantiate)๋ผ๊ณ ํ๋ฉฐ, ์ด๋ค ํด๋์ค๋ก๋ถํฐ ๋ง๋ค์ด์ง ๊ฐ์ฒด๋ฅผ ๊ทธ ํด๋์ค์ ์ธ์คํด์ค(instance)๋ผ๊ณ ํ๋ค.
์ธ์คํด์ค์ ๊ฐ์ฒด๋ ๊ฐ์ ์๋ฏธ์ด์ง๋ง, ๊ฐ์ฒด๋ ๋ชจ๋ ์ธ์คํด์ค๋ฅผ ๋ํํ๋ ํฌ๊ด์ ์ธ ์๋ฏธ๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
์ธ์คํด์ค๋ ์ด๋ค ํด๋์ค๋ก๋ถํฐ ๋ง๋ค์ด์ง ๊ฒ์ธ์ง๋ฅผ ๊ฐ์กฐํ๋ ๋ณด๋ค ๊ตฌ์ฒด์ ์ธ ์๋ฏธ๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
๋ถ์ด๋นต ์์(Class, Object, Instance)
๋ถ์ด๋นต์ ํ ๋ฒ ๋ง๋ค์ด๋ณด์!
์ค๋น๋ฌผ: ๋ถ์ด๋นต์ ์ฐ๊ธฐ ์ํ ํ, ๋ฐ๊ฐ๋ฃจ ๋ฐ์ฃฝ, ํฅ
๋ง๋๋ ๊ณผ์ : ๋ถ์ด๋นต ํ์ ๋ฐ๊ฐ๋ฃจ ๋ฐ์ฃฝ๊ณผ ํฅ์ ๋ฃ๊ณ ๊ตฝ๋๋ค.
์ด๋ฌํ ๊ณผ์ ์ Class, Object, Instance๊ด์ ์์ ์ดํด๋ณด์.
๋ถ์ด๋นต ํ: Class
๋ถ์ด๋นต: Object
๋ง๋ค์ด์ง ๊ฐ๊ฐ์ ๋ถ์ด๋นต: Instance
๋ถ์ด๋นต์ ๊ตฝ๋ค: ์ธ์คํด์ค(Instance)ํ ํ๋ค.
๋จผ์ ๋ถ์ด๋นต ํ, ์ฆ Class์ ๋ํด ์๊ฐํด ๋ณด์.
๋ถ์ด๋นต๋ค์ '๋ฐ๊ฐ๋ฃจ ๋ฐ์ฃฝ ์'๊ณผ 'ํฅ ์'์ด๋ผ๋ ๋ณ์(member variable)๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
๋ํ '๊ตฝ๋ค'๋ผ๋ ๋ฉ์๋(member method)๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
๐ฅ ๋ถ์ด๋นต ํ Class
๋ถ์ด๋นต์ ๊ตฌ์ธ ์ค๋น๊ฐ ๋๋ฌ๋ค!
๋ถ์ด๋นต๋ค์ ๋ฐ๊ฐ๋ฃจ ๋ฐ์ฃฝ๊ณผ ํฅ์ ๋ฃ์ด์ 3๊ฐ์ ๋ถ์ด๋นต์ ๋ง๋ค์ด๋ณด์.
๊ฐ๊ฐ์ ๋ถ์ด๋นต์ ์๋ก ๋ฐ๊ฐ๋ฃจ ๋ฐ์ฃฝ๊ณผ ํฅ์ ์์ ๋ค๋ฅด๊ฒ ์ง์ด๋ฃ๊ณ '๊ตฝ๋ค()'๋ผ๋ ๋ฉ์๋๋ฅผ ํธ์ถํด์ ๋ถ์ด๋นต์ ๊ตฌ์๋ด ์๋ค.
~~~~~ ์ธ์คํด์คํ๋๋ ์ค~~~~~
๐ฅ๋ถ์ด๋นต ์์ฑ๐ฅ => ๊ฐ์ฒด๊ฐ ๋ง๋ค์ด์ง
๋ถ์ด๋นต์ ๋ณด๋ฉด ๊ฐ์ ํ์์ ๊ตฌ์์ก์ง๋ง ๋ชจ๋ ๋ค๋ฅธ ํน์ง์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
๊ทธ ๊ฐ๊ฐ์ ๊ฐ์ฑ์ ๊ฐ์ง ๋ถ์ด๋นต๋ค! ์ฆ, ์ค์ ๋ถ์ด๋นต๋ค์ ์ธ์คํด์ค(instance)๋ผ๊ณ ํฉ๋๋ค.
public class FishBread {
private String name;
private int flour;
private int redbean;
public FishBread(String name, int flour, int redbean) {
this.name = name;
this.flour = flour;
this.redbean = redbean;
}
public void bake() {
System.out.println(name + " ๋ถ์ด๋นต์ด ๋ง๋ค์ด์ก์ต๋๋ค!");
}
public static void main(String[] args) {
FishBread fb = new FishBread("๋ฌ๋ฟ", 100, 100);
fb.bake();
}
}
Reference
'๐กCS > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] equals()์ hashCode()(+ ๋์ผ์ฑ, ๋๋ฑ์ฑ) (0) | 2023.06.09 |
---|---|
[Java] Call by value vs Call by reference (0) | 2023.06.08 |
์์ ํ์ (Primitive), ์ฐธ์กฐ ํ์ (Reference) (0) | 2023.06.07 |
์ ๊ทผ ์ ์ด์(private, default, protected, public) (0) | 2023.06.07 |
Java์ ๋์ ์๋ฆฌ (0) | 2023.06.07 |
๋๊ธ