1. ์ธ์คํด์ค ๋ฉค๋ฒ(Instance Field, Method)
: ๊ฐ์ฒด๋ฅผ ์์ฑ ํ(new ์ฐ์ฐ์ ์ฌ์ฉ), ์ฌ์ฉํ ์ ์๋ ํ๋์ ๋ฉ์๋
์ธ์คํด์ค ํ๋๋ ๊ฐ์ฒด๋ง๋ค ๋ฐ๋ก ์กด์ฌํ๊ณ , ์ธ์คํด์ค ๋ฉ์๋๋ ๋ฉ์๋ ์์ญ์ ์ ์ฅ๋๊ณ ๊ณต์
- this
: ๊ฐ์ฒด ๋ด๋ถ์์ ์ธ์คํด์ค ๋ฉค๋ฒ๋ฅผ ์ ๊ทผํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๊ฒ
์ฃผ๋ก, ์์ฑ์์ ๋ฉ์๋์ ๋งค๊ฐ ๋ณ์์ ์ด๋ฆ์ด ํ๋์ ๋์ผํ ๊ฒฝ์ฐ, ์ธ์คํด์ค ๋ฉค๋ฒ ์์ ์ฃผ๋ก ๋ถ์ฌ์ง๋ค.
private String sentence; // ์ธ์คํด์ค ํ๋
public Hello(String sentence){
this.sentence = sentence; // ์ธ์คํด์ค ํ๋ = ๋งค๊ฐ๋ณ์ ํ๋
}
//------------------------------------------------------------------------------------------
public static void main(String[] args){
Hello hello = new Hellow("ABC");
}
2. Static ๋ฉค๋ฒ (Static Field, Method)
: ์ ์ ๋ฉค๋ฒ๋ ๊ณ ์ ๋ ๋ฉค๋ฒ๋ก์ ๊ฐ์ฒด ์์ฑํ์ง ์๊ณ (new ์ฐ์ฐ์ ์ฌ์ฉ X), ์ฌ์ฉํ ์ ์๋ ํ๋์ ๋ฉ์๋
ํด๋์ค์ ๊ณ ์ ๋ ๋ฉค๋ฒ(์ ์ ํ๋, ์ ์ ๋ฉ์๋)
//Hello.java class ๋ด๋ถ
static int pi = 3.141592;
static String ABC(String a){
a + "EFG";
}
//--------------------------------------------------------------------------------------
public static void main(String[] args){
String a = Hello.ABC("ABC");
// new ํจ์ ์ฌ์ฉํ๋ ๊ฒ๋ณด๋ค ํด๋์ค ์ด๋ฆ์ผ๋ก ์ ๊ทผํ๋ ๊ฒ์ด ์ข์
}
- ์ธ์คํด์ค ํ๋๋ ์ธ์คํด์ค ๋ฉ์๋ ์ฌ์ฉ ๋ถ๊ฐ
-> ์ ์ ๋ฉ์๋์์ ์ธ์คํด์ค ๋ฉค๋ฒ๋ฅผ ์ฌ์ฉํ๊ณ ์ถ๋ค๋ฉด ๊ฐ์ฒด ๋จผ์ ์์ฑ ํ, ์ฐธ์กฐ ๋ณ์๋ก ์ ๊ทผ
- ๊ฐ์ฒด ์์ ์ ์ฐธ์กฐ this ํค์๋ ์ฌ์ฉ ๋ถ๊ฐ
โป ์ธ์คํด์ค Field: ๊ฐ์ฒด๋ง๋ค ๊ฐ๊ณ ์์ด์ผ ํ๋ ๋ฐ์ดํฐ
-> ์ธ์คํด์ค ํ๋๋ฅผ ๊ฐ๊ณ ์๋ค๋ฉด ์ธ์คํด์ค method
โป ์ ์ Field: ๊ฐ์ฒด๋ง๋ค ๊ฐ๊ณ ์์ ํ์๊ฐ ์๋ ๊ณต์ฉ ๋ฐ์ดํฐ
-> ์ ์ ํ๋๋ฅผ ๊ฐ๊ณ ์๋ค๋ฉด ์ ์ method
String color; // instance field
static String pi = 3.141592; //static field
3. ์ฑ๊ธํค(Singleton)
: ๊ฐ์ฒด๊ฐ ์ฌ๋ฌ๊ฐ๊ฐ ๋์ด ์ค์ ๊ฐ์ด ๋ณ๊ฒฝ๋ ์ ์๋ ์ํ ์์๋ฅผ ํผํ๋ ๋ฐฉ๋ฒ
์ฆ, ์ฌ๋ฌ ๊ฐ์ฒด๋ฅด ์์ฑํ ์ ์๊ณ , ํ๋์ ๊ฐ์ฒด๋ก ๋ชจ๋๋ฅผ ์ฐธ์กฐํ๊ฒ ๋๋ค.
ํ๋์ ๊ฐ์ฒด์ด ์์ฑ ๋จ, new ์ฐ์ฐ์๋ก ํธ์ถ๋์ง ๋ชปํ๋๋ก ๋ง์์ผ ํจ(์์ฑ์์ private ๋ฅผ ๋ถ์ด๊ธฐ)
// singleton ๋ด๋ถ class
public class Singleton{
private static Singleton singleton = new Singleton();
// ์์ ์ field์ ๊ฐ์ฒด ์์ฑ ํ ์ด๊ธฐํ
private Singleton(){} // ์ธ๋ถ์์ ๊ฐ์ฒด ์์ฑ ๋ถ๊ฐ๋ฅํ๊ฒ ํ๊ธฐ ์ํด private
// ์ ์ method
static Singleton getInstance(){
return singleton;} // method๋ฅผ ํตํด์ ๊ฐ์ฒด ํธ์ถ
}
// main class
public static void main(String[] args){
Singleton singleton1 = Singleton.getInstance();
Singleton singleton2 = Singleton.getInstance(); // ๋์ผํ ๊ฐ์ฒด ์ฐธ์กฐ
}
4. final ํ๋์ ์์
: ์ต์ข ์ ์ธ ๊ฐ์ด ๋์ด์ ํ๋ก๊ทธ๋จ ์คํ ๋์ค์ ์์ ํ ์ ์๋ค.
- final ํ๋ ๊ฐ์ ์ด๊ธฐํ ํ ์ ์๋ ๊ฒฝ์ฐ
1. ํ๋ ์ ์ธ์ , 2. ์์ฑ์ parameter๋ก ๊ฐ์ ์ ๋ฌ ํ ๋
// 1 ๋ฒ ๋ฐฉ๋ฒ
final String abc = "abc";
// 2 ๋ฒ ๋ฐฉ๋ฒ
//main ํจ์ ๋ด
Hello hello = new Hello(1, 2);
//Hello.java ๋ด
final int a;
final int b;
public Hello(a,b){
this.a = a;
this.b = b;
}
- final ์์( Static final )
: ์ฌ๋ฌ ๊ฐ์ผ๋ก ์ด๊ธฐํ๋ฅผ ํ ์ ์๊ณ , ๊ฐ์ ๋ณ๊ฒฝํ ์ ์๋ ๋ถ๋ณ์ฑ์ ๋ ๋ ๊ฒ์ ์๋ฏธํ๋ค.
-> final field๊ฐ ์์๊ฐ ์๋ ์ด์ ๋, ์ด๊ธฐํ๋ฅผ ํตํด์ ๊ฐ์ ๋ณ๊ฒฝํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
static final int pi = 3.141592;
5. ์ ๊ทผ ์ ํ์
1. public : ์ธ๋ถ ํด๋์ค์์ ์์ ๋กญ๊ฒ ์ฌ์ฉ ๊ฐ๋ฅ
public class Hello{...} // class
public Hello(){} // constructor
public void Hello(){}// method
2. protected : ๊ฐ์ ํจํค์ง ๋๋ ์์ ํด๋์ค์์ ์ฌ์ฉ
protected class Hello{...} // class
protected Hello(){} // constructor
protected void Hello(){}// method
3. private : ์ธ๋ถ์์ ์ฌ์ฉ ๋ถ๊ฐ๋ฅ
private class Hello{...} // class
private Hello(){} // constructor
private void Hello(){}// method
4. default : ๊ฐ์ ํจํค์ง
class Hello{...} // class
Hello(){} // constructor
void Hello(){}// method
6. Getter Setter
getter: ๊ฐ์ฒด์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๋ ๊ฒฝ์ฐ
setter: ์ธ๋ถ ํด๋์ค์์ ํ๋์ ๊ฐ์๊ฒ ์ง์ ์ ์ผ๋ก ์ ๊ทผํ ์ ์๊ฒ ํ๋ ๊ฒ
ํด๋์ค๋ฅผ ์ ์ธํ ๋, ๊ฐ๋ฅํ๋ฉด ํ๋๋ฅผ private์ผ๋ก ์ ์ธํด์ ์ธ๋ถ๋ก๋ถํฐ ๋ณดํธ๋ฐ๊ณ , ํ๋์ ๋ํ setter์ getter ๋ฉ์๋๋ฅผ ์์ฑํด์ ํ๋ ๊ฐ์ ๋ณ๊ฒฝํ๊ฑฐ๋ ์ฌ์ฉํ๋ค.
private int speed;
public void setSpeed(int speed){ //setter
if(speed<10){
this.speed = 10;
}else{
this.speed = speed}
}
public int getSpeed(){ //getter
return this.speed}
- return variable์ด boolean ์ผ ๊ฒฝ์ฐ get์ ์ฌ์ฉํ์ง ์๊ณ , is๋ฅผ ์ฌ์ฉํ๋ค.
private boolean stop;
public void setStop(boolean stop){
this.stop = stop;
}
public boolean isStop(){
return this.stop}
์ถ์ฒ] ํผ๊ณต์๋ฐ p.270 ~ p.307
'Programming Language > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Java 6์ผ์ฐจ ๊ณต๋ถ(Promotion[์๋ ํ์ ๋ณํ], Casting[๊ฐ์ ํ์ ๋ณํ], instanceof) (0) | 2022.02.22 |
---|---|
Java 6์ผ์ฐจ ๊ณต๋ถ(์์, Method ์ฌ์ ์) (0) | 2022.02.21 |
Java 5์ผ์ฐจ ๊ณต๋ถ(๊ฐ์ฒด์งํฅ, Class, Instance ๋ฑ) (0) | 2022.01.31 |
Java 5์ผ์ฐจ ๊ณต๋ถ(์ฐธ์กฐ ํ์ : ์ด๊ฑฐํ์ ) (0) | 2022.01.31 |
Java 4์ผ์ฐจ ๊ณต๋ถ(์ฐธ์กฐ ํ์ ) (0) | 2022.01.30 |