- ๊ฐ์ฒด ์งํฅ 3๋ ํน์ง
- ์บก์ํ(encapsulation)
- ์์(inhritance)
- ๋คํ์ฑ(polymorphism)
๋ณ์ (1๊ฐ์ ์๋ฃํ / 1๊ฐ์ ๋ฐ์ดํฐ)
โ ๋ฐฐ์ด (1๊ฐ์ ์๋ฃํ / ์ฌ๋ฌ๊ฐ์ ๋ฐ์ดํฐ)
โ ๊ตฌ์กฐ์ฒด(ํด๋์ค) (์ฌ๋ฌ๊ฐ์ ์๋ฃํ / ์ฌ๋ฌ๊ฐ์ ๋ฐ์ดํฐ)
๋ฐ์ดํฐ์ ์ ๊ทผ์ ํ
์ ์์น์ผ๋ก ํ์ฌ์บก์ํ ์์น
1. ํด๋์ค์ ๋ฉค๋ฒ ๋ณ์์ ๋ํ ์ ๊ทผ ๊ถํ์ private์ผ๋ก ํจ
2. ํด๋์ค์ ๋ฉค๋ฒ ๋ณ์์ ๋ํ ์ฐ์ฐ์ฒ๋ฆฌ๋ฅผ ๋ชฉ์ ์ผ๋ก ํ๋ ํจ์๋ค์ ํด๋์ค ๋ด๋ถ์ ์์ฑ
3. ๋ฉค๋ฒ ํจ์๋ ํด๋์ค ๋ฐ์์ ์ ๊ทผํ ์ ์๋๋ก public์ผ๋ก ์ค์
package ์ ์ธ๋ถ
public class Member {
private String pName;
private int age;
private boolean yn;
public Member() {}
public String getpName() {
return pName;
}
public void setpName(String pName) {
this.pName = pName;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public boolean isYn() {
return yn;
}
public void setYn(boolean yn) {
this.yn = yn;
}
์ ๊ทผ์ ํ์ | ํด๋น ํด๋์ค ๋ด | ๊ฐ์ ํจํค์ง ๋ด | ํ์ ํด๋์ค ๋ด | ์ ์ฒด |
---|---|---|---|---|
+ public | O | O | O | O |
# protected | O | O | O | |
~ (default) | O | O | ||
- private | O |
๋์ | ์ฌ์ฉ๊ฐ๋ฅํ ์ ํ์, ์์ฝ์ด |
---|---|
ํด๋์ค | public, (default), final, abstract |
๋ฉ์๋ | ๋ชจ๋ ์ ๊ทผ์ ํ์, final, abstract, static |
๋ณ์ | ๋ชจ๋ ์ ๊ทผ์ ํ์, final, static |
์ง์ญ๋ณ์ | final |
์ ์์ฌํญ
- ํด๋์ค์ abstract์ final ๋์ ์ฌ์ฉ ๋ถ๊ฐ
- ๋ฉ์๋์ static๊ณผ abstract ๋์ ์ฌ์ฉ ๋ถ๊ฐ
- abstract ๋ฉ์๋์ ์ ๊ทผ์ ํ์๋ก private ์ฌ์ฉ ๋ถ๊ฐ
package ์ ์ธ๋ถ
์ ๊ทผ์ ํ์ [์์ฝ์ด] class ํด๋์ค๋ช
{
์ ๊ทผ์ ํ์ [์์ฝ์ด] ์๋ฃํ ๋ณ์๋ช
[=์ด๊ธฐ๊ฐ];
}
package ์ ์ธ๋ถ
public class example {
public int num1;
protected int num2;
int num3;
private num4;
}
๊ตฌ๋ถ | ์ ์ฒด |
---|---|
static | ๊ฐ์ ํ์
์ ์ฌ๋ฌ ๊ฐ์ฒด๊ฐ ๊ณต์ ํ ๋ชฉ์ ์ ํ๋์ ์ฌ์ฉ ํ๋ก๊ทธ๋จ ์์์ ์ ์ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์๋ ํ ๋น๋๋ ๋ฉค๋ฒ์ ์ ์ฉ ๊ฐ์ฒด ์์ฑ(new)ํ ํ์์์ |
final | ํ๋ฒ ์ง์ ๋ ๊ฐ ๋ณ๊ฒฝ ๋ถ๊ฐ |
static final (final static) ์์ ํ๋ | static๊ณผ final์ ์๋ฏธ๋ฅผ ๋ ๋ค ๊ฐ์ง |
package ์ ์ธ๋ถ
public class example {
private static int num1;
private final int num2;
}
์๋ฃํ | ๊ธฐ๋ณธ๊ฐ |
---|---|
int | 0 |
double | 0.0 |
char | (๊ณต๋ฐฑ) |
์ฐธ์กฐ์๋ฃํ | null |
package ์ ์ธ๋ถ
์ ๊ทผ์ ํ์ [์์ฝ์ด] class ํด๋์ค๋ช
{
์ ๊ทผ์ ํ์ ํด๋์ค๋ช
() {}
์ ๊ทผ์ ํ์ ํด๋์ค๋ช
(๋งค๊ฐ๋ณ์) {(this.)ํ๋๋ช
= ๋งค๊ฐ๋ณ์;}
}
package ์ ์ธ๋ถ
public class example {
private String name;
public example() {}
public example(String name) {
this.name = name;
}
package ์ ์ธ๋ถ
Class ์์ฑ๋ถ
public User(String userId, String userPwd, String userName) {
this(userId, userPwd);
this.userName = userName;
}
package ์ ์ธ๋ถ
Class ์์ฑ๋ถ
์ ๊ทผ์ ํ์ [์์ฝ์ด] ๋ฐํํ ๋ฉ์๋๋ช
([๋งค๊ฐ๋ณ์]) {
// ๊ธฐ๋ฅ ์ ์
}
๊ตฌ๋ถ | ์ ์ฒด |
---|---|
static | static ์์ญ์ ํ ๋นํ์ฌ ๊ฐ์ฒด ์์ฑ์์ด ์ฌ์ฉ |
final | ์ข ๋จ์ ์๋ฏธ, ์์์ ์ค๋ฒ๋ผ์ด๋ฉ ๋ถ๊ฐ๋ฅ |
abstract | ๋ฏธ์์ฑ๋, ์์ํ์ฌ ์ค๋ฒ๋ผ์ด๋ฉ์ผ๋ก ์์ฑ์์ผ ์ฌ์ฉํด์ผํจ |
synchronized | ๋๊ธฐํ ์ฒ๋ฆฌ, ๊ณต์ ์์์ ํ๊ฐ์ ์ค๋ ๋๋ง ์ ๊ทผ ๊ฐ๋ฅํจ |
static final (final static) | static๊ณผ final์ ์๋ฏธ๋ฅผ ๋ ๋ค ๊ฐ์ง |
๊ตฌ๋ถ | ์ ์ฒด |
---|---|
void | ๋ฐํํ์ด ์์์ ์๋ฏธ, ๋ฐํ๊ฐ์ด ์์ ๊ฒฝ์ฐ ๋ฐ๋์ ์์ฑ |
๊ธฐ๋ณธ ์๋ฃํ | ์ฐ์ฐ ์ํ ํ ๋ฐํ๊ฐ์ด ๊ธฐ๋ณธ ์๋ฃํ์ผ ๊ฒฝ์ฐ ์ฌ์ฉ |
๋ฐฐ์ด | ์ฐ์ฐ ์ํ ํ ๋ฐํ๊ฐ์ด ๋ฐฐ์ด์ธ ๊ฒฝ์ฐ ๋ฐฐ์ด์ ์ฃผ์๊ฐ์ ๋ฐํ |
ํด๋์ค | ์ฐ์ฐ ์ํ ํ ๋ฐํ๊ฐ์ด ํด๋น ํด๋์ค ํ์ ์ ๊ฐ์ฒด์ผ ๊ฒฝ์ฐ ํด๋น ๊ฐ์ฒด์ ์ฃผ์๊ฐ์ด ๋ฐํ |
๊ตฌ๋ถ | ์ ์ฒด |
---|---|
( ) | ๋งค๊ฐ๋ณ์๊ฐ ์์์ ์๋ฏธ |
๊ธฐ๋ณธ ์๋ฃํ | ๊ธฐ๋ณธํ ๋งค๊ฐ๋ณ์ ์ฌ์ฉ์ ๊ฐ์ ๋ณต์ฌํ์ฌ ์ ๋ฌ ๋งค๊ฐ๋ณ์ ๊ฐ์ ๋ณ๊ฒฝํ์ฌ๋ ๋ณธ๋ ๊ฐ์ ๋ณ๊ฒฝ๋์ง ์์ |
๋ฐฐ์ด ํด๋์ค | ๋ฐฐ์ด, ํด๋์ค ๋ฑ ์ฐธ์กฐํ์ ๋งค๊ฐ๋ณ์๋ก ์ ๋ฌ์์๋ ๋ฐ์ดํฐ์ ์ฃผ์๊ฐ์ ์ ๋ฌํ๊ธฐ๋๋ฌธ์ ๋งค๊ฐ๋ณ์๋ฅผ ์์ ํ๋ฉด ๋ณธ๋์ ๋ฐ์ดํฐ๊ฐ ์์ ๋จ (์์ ๋ณต์ฌ) |
๊ฐ๋ณ์ธ์ | ๋งค๊ฐ๋ณ์์ ๊ฐ์๋ฅผ ์ ๋์ ์ผ๋ก ์ค์ ํ๋ ๋ฐฉ๋ฒ ๊ฐ๋ณ ๋งค๊ฐ๋ณ์ ์ธ ๋ค๋ฅธ ๋งค๊ฐ๋ณ์๊ฐ ์์ผ๋ฉด๊ฐ๋ณ ๋งค๊ฐ๋ณ์๋ฅผ ๋ง์ง๋ง์ ์ค์ * ๋ฐฉ๋ฒ : (์๋ฃํ ... ๋ณ์๋ช ) |
package ์ ์ธ๋ถ
Class ์์ฑ๋ถ
์ ๊ทผ์ ํ์ [์์ฝ์ด] void setํ๋๋ช
(์๋ฃํ ๋ณ์๋ช
) {
(this.)ํ๋๋ช
= ๋ณ์๋ช
;
}
public void setpName(String pName) {
this.pName = pName;
}
public void setAge(int age) {
this.age = age;
}
public void setYn(boolean yn) {
this.yn = yn;
}
๊ฐ์ฒด๋ช
.setName("์ด๋ฆ");
package ์ ์ธ๋ถ
Class ์์ฑ๋ถ
์ ๊ทผ์ ํ์ [์์ฝ์ด] ๋ฐํํ getํ๋๋ช
() {
return /*this.*/ํ๋๋ช
;
}
public String getpName() {
return pName;
}
public int getAge() {
return age;
}
public boolean isYn() {
return yn;
}
๊ฐ์ฒด๋ช
.getName();
์ค๋ฒ๋ก๋ฉ ์กฐ๊ฑด
- ๊ฐ์ ๋ฉ์๋๋ช
- ๋งค๊ฐ๋ณ์์ ๊ฐ์/ํ์ (์๋ฃํ)/์์๊ฐ ๋ฌ๋ผ์ผํจ