6-1μ₯ κ°μ²΄μ§ν₯μΈμ΄λ κ°λ³κ² μ½μ΄λ³΄λ©΄ μ’μ λ΄μ©μ΄λΌ μ 리λ μλ΅νλ€.
1. ν΄λμ€μ κ°μ²΄μ μ μμ μ©λ
ν΄λμ€
μ μ: κ°μ²΄λ₯Ό μ μν΄ λμ κ², κ°μ²΄μ μ€κ³λ λλ ν
μ©λ: κ°μ²΄λ₯Ό μμ±νλ λ° μ¬μ©
ν΄λμ€λ κ°μ²΄λ₯Ό μμ±νλ λ° μ¬μ©λλ©°, κ°μ²΄λ ν΄λμ€μ μ μλλλ‘ μμ±λλ€.
κ°μ²΄
μ μ: μ€μ λ‘ μ‘΄μ¬νλ κ². μ¬λ¬Ό λλ κ°λ
μ©λ: κ°μ²΄κ° κ°μ§κ³ μλ κΈ°λ₯κ³Ό μμ±μ λ°λΌ λ€λ¦
μμλ₯Ό ν΅ν΄ μ΄ν΄λ³΄κΈ°
TVμ€κ³λ(ν΄λμ€)λ TVλΌλ μ ν(κ°μ²΄)μ μ μν κ² μ΄λ©°. TV(κ°μ²΄)λ₯Ό λ§λλλ° μ¬μ©λλ€.
ν΄λμ€λ λ¨μ§ κ°μ²΄λ₯Ό μμ±νλ λ° μ¬μ©λ λΏ, κ°μ²΄ κ·Έ μ체λ μλλ€.
μ°λ¦¬κ° μνλ κΈ°λ₯μ κ°μ²΄λ₯Ό μ¬μ©νκΈ° μν΄μλ λ¨Όμ ν΄λμ€λ‘λΆν° κ°μ²΄λ₯Ό μμ±νλ κ³Όμ μ΄ μ νλμ΄μΌ νλ€.
2. κ°μ²΄μ μΈμ€ν΄μ€
π‘ν΄λμ€λ‘λΆν° κ°μ²΄λ₯Ό λ§λλ κ³Όμ μ ν΄λμ€μ μΈμ€ν΄μ€ν(instantiate)λΌκ³ νλ©°, μ΄λ€ ν΄λμ€λ‘λΆν° λ§λ€μ΄μ§ κ°μ²΄λ₯Ό κ·Έ ν΄λμ€μ μΈμ€ν΄μ€(instance)λΌκ³ νλ€.
μΈμ€ν΄μ€μ κ°μ²΄λ κ°μ μλ―Έμ΄μ§λ§, κ°μ²΄λ λͺ¨λ μΈμ€ν΄μ€λ₯Ό λννλ ν¬κ΄μ μΈ μλ―Έλ₯Ό κ°μ§κ³ μλ€.
μΈμ€ν΄μ€λ μ΄λ€ ν΄λμ€λ‘λΆν° λ§λ€μ΄μ§ κ²μΈμ§λ₯Ό κ°μ‘°νλ λ³΄λ€ κ΅¬μ²΄μ μΈ μλ―Έλ₯Ό κ°μ§κ³ μλ€.
μλ₯Ό λ€μ΄ 'μ± μμ μΈμ€ν΄μ€λ€.'λΌκ³ ν기보λ€λ 'μ± μμ κ°μ²΄λ€'κ° λ μμ°μ€λ½κ³ ,
'μ± μμ μ± μ ν΄λμ€μ κ°μ²΄μ΄λ€.'λΌκ³ ν기보λ€λ 'μ± μμ μ± μ ν΄λμ€μ μΈμ€ν΄μ€λ€.'λΌκ³ νλ κ²μ΄ λ μμ°μ€λ½λ€.
3. κ°μ²΄μ ꡬμ±μμ - μμ±κ³Ό κΈ°λ₯
π‘κ°μ²΄λ μμ±κ³Ό κΈ°λ₯, λ μ’ λ₯μ ꡬμ±μμλ‘ μ΄λ£¨μ΄μ Έ μλ€. κ°μ²΄κ° κ°μ§κ³ μλ μμ±κ³Ό κΈ°λ₯μ κ·Έ κ°μ²΄μ λ©€λ²(member)λΌ νλ€.
μμ±, κΈ°λ₯κ³Ό κ°μ λ»μ μ¬λ¬κ°μ§ μ©μ΄
μμ±(property): λ©€λ² λ³μ(member variable), νΉμ±(attribute), νλ(field), μν(state)
κΈ°λ₯(function): λ©μλ(method), ν¨μ(function), νμ(behavior)
μμλ₯Ό ν΅ν΄ μ΄ν΄λ³΄κΈ°
κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°μμλ μμ±κ³Ό κΈ°λ₯μ κ°κ° λ³μμ λ©μλλ‘ νννλ€.
μμμ λΆμν ν λλ‘ Tvν΄λμ€λ₯Ό λ§λ€μ΄λ³΄μ.
μμ±μ΄μλ μμ, μ μ μν, μ±λμ λ©€λ² λ³μλ‘, κΈ°λ₯μ΄μλ μΌκΈ°, μ±λ λ³κ²½νκΈ°λ λ©μλλ‘ ννλμλ€.
class Tv {
String color; // μμ
boolean power; // μ μ μν
int channel; // μ±λ
void power() {
power = !power;
}
void channelUp() {
channel++;
}
void channelDown() {
channel--;
}
}
4. μΈμ€ν΄μ€μ μμ±κ³Ό μ¬μ©
μμμ Tvν΄λμ€λ₯Ό μ μΈν κ²μ λ¨μ§ Tv μ€κ³λλ₯Ό μμ±ν κ²μ λΆκ³Όνλ€.
Tvλ₯Ό μ¬μ©νκΈ° μν΄μλ Tv μΈμ€ν΄μ€λ₯Ό μμ±ν΄μΌνλ€.
μΈμ€ν΄μ€μ μμ±
1. ν΄λμ€μ κ°μ²΄λ₯Ό μ°Έμ‘°νκΈ° μν μ°Έμ‘°λ³μ μ μΈ
2. ν΄λμ€μ κ°μ²΄λ₯Ό μμ± ν, κ°μ²΄μ μ£Όμλ₯Ό μ°Έμ‘°λ³μμ μ μ₯
Tv t; // ν΄λμ€λͺ
λ³μλͺ
t = new Tv(); // λ³μλͺ
= new ν΄λμ€λͺ
()
μμ 1λ‘ μ΄ν΄λ³΄κΈ°
public class TvTest {
public static void main(String[] args) {
Tv t;
t = new Tv();
t.channel = 7;
t.channelDown();
System.out.println("νμ¬ μ±λμ " + t.channel + "μ
λλ€");
}
}
1. Tv t;
Tvν΄λμ€ νμ μ μ°Έμ‘°λ³μ tλ₯Ό μ μΈνλ€. λ©λͺ¨λ¦¬μ μ°Έμ‘°λ³μ tλ₯Ό μν 곡κ°μ΄ λ§λ ¨λλ€.
μμ§ μΈμ€ν΄μ€κ° μμ±λμ§ μμμΌλ―λ‘ μ°Έμ‘°λ³μλ‘ μ무κ²λ ν μ μλ€.
2. t = new Tv();
μ°μ°μ newμ μν΄ Tvν΄λμ€μ μΈμ€ν΄μ€κ° λ©λͺ¨λ¦¬μ λΉ κ³΅κ°μ μμ±λλ€.
μ£Όμκ° 0x100μΈ κ³³μ μμ±λμλ€κ³ κ°μ νμ. μ΄λ, λ©€λ²λ³μλ κ° μλ£νμ ν΄λΉνλ κΈ°λ³Έκ°μΌλ‘ μ΄κΈ°νλλ€.
colorλ μ°Έμ‘°νμ΄λ―λ‘ nullλ‘, powerλ booleanμ΄λ―λ‘ falseλ‘, κ·Έλ¦¬κ³ channelμ intμ΄λ―λ‘ 0μΌλ‘ μ΄κΈ°νλλ€.
κ·Έλ€μμλ λμ μ°μ°μ(=)μ μν΄μ μμ±λ κ°μ²΄μ μ£Όμκ°μ΄ μ°Έμ‘°λ³μμ μ μ₯λλ€.
μ΄μ λ μ°Έμ‘°λ³μ tλ₯Ό ν΅ν΄ TVμΈμ€ν΄μ€μ μ κ·Όν μ μλ€.
μΈμ€ν΄μ€λ₯Ό λ€λ£¨κΈ° μν΄μλ μ°Έμ‘°λ³μκ° λ°λμ νμνλ€.
3. t.channel = 7;
μ°Έμ‘°λ³μ tμ μ μ₯λ μ£Όμμ μλ μΈμ€ν΄μ€μ λ©€λ²λ³μ channelμ 7μ μ μ₯νλ€.
μ¬κΈ°μ μ μ μλ κ²μ²λΌ, μΈμ€ν΄μ€μ λ©€λ²λ³μ(μμ±)λ₯Ό μ¬μ©νλ €λ©΄ ‘μ°Έμ‘°λ³μ.λ©€λ²λ³μ’μ κ°μ΄ νλ©΄ λλ€.
4. t.channelDown();
μ°Έμ‘°λ³μ tκ° μ°Έμ‘°νκ³ μλ TvμΈμ€ν΄μ€μ channelDownλ©μλλ₯Ό νΈμΆνλ€.
channel Downλ©μλλ λ©€λ²λ³μ channelμ μ μ₯λμ΄ μλ κ°μ 1 κ°μμν¨λ€.
5. System.out.println("νμ¬ μ±λμ " + t.channel + "μ λλ€.");
μ°Έμ‘°λ³μ tκ° μ°Έμ‘°νκ³ μλ TvμΈμ€ν΄μ€μ λ©€λ²λ³μ channelμ μ μ₯λμ΄ μλ κ°μ μΆλ ₯νλ€.
νμ¬ channelμ κ°μ 6μ΄λ―λ‘ ‘νμ¬ μ±λμ 6μ λλ€.’κ° νλ©΄μ μΆλ ₯λλ€.
=> μΈμ€ν΄μ€λ₯Ό μ°Έμ‘°λ³μλ₯Ό ν΅ν΄μλ§ λ€λ£° μ μμΌλ©°, μ°Έμ‘°λ³μμ νμ μ μΈμ€ν΄μ€μ νμ κ³Ό μΌμΉν΄μΌ νλ€.
μμ 2λ‘ μ΄ν΄λ³΄κΈ°
public class TvTest {
public static void main(String[] args) {
Tv t1 = new Tv();
Tv t2 = new Tv();
t2 = t1;
t1.channel = 7;
System.out.println(t1.channel); // 7
System.out.println(t2.channel); // 7
}
}
1. Tv t1 = new Tv(); Tv t2 = new Tv();
2κ°μ Tvν΄λμ€μ μΈμ€ν΄μ€λ₯Ό μμ± ν μ°Έμ‘°λ³μμ κ°μ²΄μ μ£Όμκ°μ μ μ₯νλ€.
2. t2 = t1;
t1μ μ°Έμ‘°λ³μμ΄λ―λ‘, μΈμ€ν΄μ€μ μ£Όμλ₯Ό μ μ₯νκ³ μλ€.
μ΄ λ¬Έμ₯μ΄ μνλλ©΄, t2κ° κ°μ§κ³ μλ κ° μ μμ΄λ²λ¦¬κ² λκ³ t1μ μ μ₯λμ΄ μλ κ°μ΄ t2μ μ μ₯λκ² λλ€.
κ·Έλ κ² λλ©΄ t2 μμ t1μ΄ μ°Έμ‘°νκ³ μλ μΈμ€ν΄μ€λ₯Ό κ°μ΄ μ°Έμ‘°νκ² λκ³ , t2κ° μλ μ°Έμ‘°νκ³ μλ μΈμ€ν΄μ€λ λ μ΄μ μ¬μ©ν μ μκ² λλ€.
* μμ μ μ°Έμ‘°νκ³ μλ μ°Έμ‘°λ³μκ° νλλ μλ μΈμ€ν΄μ€λ λ μ΄μ μ¬μ©λ μ μμΌλ―λ‘ ‘κ°λΉμ§ 컬λ ν° (Garbage Collector)’μ μν΄μ μλμ μΌλ‘ λ©λͺ¨λ¦¬μμ μ κ±°λλ€.
3. t1.channel = 7;
channelμ κ°μ 7λ‘ νλ€.
4. System.out.println(t1.channel); System.out.println(t2.channel);
μ΄μ t1κ³Ό t2κ° λͺ¨λ κ°μ Tvν΄λμ€μ μΈμ€ν΄μ€λ₯Ό κ°μ§κ³ μκΈ° λλ¬Έμ t1.channelκ³Ό t2.channelμ κ°μ 7μ΄λ€.
μ°Έμ‘°λ³μμ μΈμ€ν΄μ€μ κ΄κ³
μ°Έμ‘°λ³μμλ νλμ κ°(μ£Όμ)λ§μ΄ μ μ₯λ μ μμΌλ―λ‘ λ μ΄μμ μ°Έμ‘°λ³μκ° νλμ μΈμ€ν΄μ€λ₯Ό κ°λ¦¬ν€λ(μ°Έμ‘°νλ) κ²μ κ°λ₯νμ§λ§ νλμ μ°Έμ‘°λ³μλ‘ μ¬λ¬ κ°μ μΈμ€ν΄μ€λ₯Ό κ°λ¦¬ν€λ κ²μ λΆκ°λ₯νλ€.
5. κ°μ²΄ λ°°μ΄
κ°μ²΄ λ°°μ΄ μμ κ°μ²΄κ° μ μ₯λλ κ²μ μλκ³ , κ°μ²΄μ μ£Όμκ° μ μ₯λλ€.
μ¦, κ°μ²΄ λ°°μ΄μ μ°Έμ‘°λ³μλ€μ νλλ‘ λ¬Άμ μ°Έμ‘°λ³μ λ°°μ΄μ΄λ€.
1. κ°μ²΄ λ°°μ΄ μμ±
Tv[] tvArr = new Tv[3];
κ° μμλ μ°Έμ‘°λ³μμ κΈ°λ³Έ κ°μΈ nullλ‘ μ΄κΈ°νλλ€.
μ΄ κ°μ²΄ λ°°μ΄μ 3κ°μ κ°μ²΄μ μ£Όμλ₯Ό μ μ₯ν μ μλ€.
2. κ°μ²΄λ₯Ό μμ±ν΄μ κ°μ²΄ λ°°μ΄μ κ° μμμ μ μ₯
Tv[] tvArr = new Tv[3];
tvArr[0] = new Tv();
tvArr[1] = new Tv();
tvArr[2] = new Tv();
- λ°°μ΄μ μ΄κΈ°ν λΈλ‘ μ¬μ©
Tv[] tvArr = {new Tv(), new Tv(), new Tv()};
- forλ¬Έ μ¬μ©
Tv[] tvArr = new Tv[100];
for (int i = 0; i < tvArr.length; i++) {
tvArr[i] = new Tv();
}
6. ν΄λμ€μ λ λ€λ₯Έ μ μ
1. ν΄λμ€ - λ°μ΄ν°μ ν¨μμ κ²°ν©
1. λ³μ: νλμ λ°μ΄ν°λ₯Ό μ μ₯ν μ μλ 곡κ°
2. λ°°μ΄: κ°μ μ’ λ₯μ μ¬λ¬ λ°μ΄ν°λ₯Ό νλμ μ§ν©μΌλ‘ μ μ₯ν μ μλ 곡κ°
3. ꡬ쑰체: μλ‘ κ΄λ ¨λ μ¬λ¬ λ°μ΄ν°λ₯Ό μ’ λ₯μ κ΄κ³μμ΄ νλμ μ§ν©μΌλ‘ μ μ₯ν μ μλ 곡κ°
4. ν΄λμ€: λ°μ΄ν°μ ν¨μμ κ²°ν©(ꡬ쑰체 + ν¨μ)
μ΄μ μλ λ°μ΄ν°λ λ°μ΄ν°λΌλ¦¬, ν¨μλ ν¨μλΌλ¦¬ λ°λ‘ λ€λ£¨μ΄μ Έ μμ§λ§, μ¬μ€ ν¨μλ μ£Όλ‘ λ°μ΄ν°λ₯Ό κ°μ§κ³ μμ μ νκΈ° λλ¬Έμ λ§μ κ²½μ°μ μμ΄μ λ°μ΄ν°μ ν¨μλ κ΄κ³κ° κΉλ€.
λ°λΌμ μλ°μ κ°μ κ°μ²΄μ§ν₯μΈμ΄μμλ λ³μ(λ°μ΄ν°)μ ν¨μλ₯Ό νλμ ν΄λμ€μ μ μνμ¬ μλ‘ κ΄κ³κ° κΉμ λ³μμ ν¨μλ€μ ν¨κ» λ€λ£° μ μκ² νλ€.
=> μλ‘ κ΄λ ¨λ λ³μλ€μ μ μνκ³ μ΄λ€μ λν μμ μ μννλ ν¨μλ€μ ν¨κ» μ μν κ²μ΄ λ°λ‘ ν΄λμ€μ΄λ€.
+) μλ₯Ό λ€μ΄, μλ°μμλ λ¬Έμμ΄μ λ¨μν λ¬Έμμ λ°°μ΄μ΄λΌκ³ μ μνμ§ μκ³ Stringμ΄λΌλ ν΄λμ€λ‘ μ μνλ€.
κ·Έ μ΄μ λ λ¬Έμμ΄κ³Ό λ¬Έμμ΄μ λ€λ£¨λλ° νμν ν¨μ(ex. replace)λ€μ ν¨κ» λ¬ΆκΈ° μν΄μμ΄λ€.
2. ν΄λμ€ - μ¬μ©μμ μ νμ (user - defined type)
π‘νλ‘κ·Έλλ°μΈμ΄μμ μ 곡νλ μλ£ν(primitive type) μΈμ νλ‘κ·Έλλ¨Έκ° μλ‘ κ΄λ ¨λ λ³μλ€μ λ¬Άμ΄μ νλμ νμ μΌλ‘ μλ‘ μΆκ°νλ κ²μ μ¬μ©μμ μ νμ (user-defined type)μ΄λΌκ³ νλ€.
μλ°μ κ°μ κ°μ²΄μ§ν₯μΈμ΄μμλ ν΄λμ€κ° κ³§ μ¬μ©μμ μ νμ μ΄λ€.
κΈ°λ³Ένμ κ°μλ 8κ°λ‘ μ ν΄μ Έ μμ§λ§ μ°Έμ‘°νμ κ°μκ° μ ν΄μ Έ μμ§ μλ€.
κ·Έ μ΄μ λ νλ‘κ·Έλλ¨Έκ° μλ‘μ΄ νμ μ μΆκ°ν μ μκΈ° λλ¬Έμ΄λ€.
β3κ°μ μκ°(hour, minute, second)μ λ€λ€μΌ νλ€λ©΄ μ΄λ»κ² ννν΄μΌ ν κΉ?
μμ νλ₯Ό 보면 2κ°μ§λ‘ λλμ΄μ ννν μ μλ€.
μΌμͺ½ μ½λ
- λΉκ°μ²΄μ§ν₯μ μΈ μ½λ
- λ°μ΄ν°μ κ°μκ° λμ΄λλ©΄, λ³μλ₯Ό λ§€λ² μλ‘ μ μΈν΄μ€μΌ νλ€.
- νλμ μκ°μ ꡬμ±νλ μ, λΆ, μ΄κ° λ€μμ¬μ μ¬λ°λ₯΄μ§ μμ λ°μ΄ν°κ° λ μ μλ€.
μ€λ₯Έμͺ½ μ½λ
- κ°μ²΄μ§ν₯μ μΈ μ½λ
- λ°μ΄ν°μ κ°μκ° λμ΄λλλΌλ λ°°μ΄μ ν¬κΈ°λ§ λ³κ²½ν΄ μ£Όλ©΄ λλ―λ‘ μΌμͺ½ μ½λμ κ°μ λΆνΈν¨κ³Ό 볡μ‘ν¨μ μμ΄μ‘λ€.
- νλμ μκ°μ ꡬμ±νλ μ, λΆ, μ΄λ₯Ό νλλ‘ λ¬Άμ΄μ κ΄λ¦¬ν μ μλ€.
βμλμ κ°μ μ‘°κ±΄μ΄ μ£Όμ΄μ§λ€λ©΄ μ΄λ»κ² ꡬνν΄μΌ ν κΉ?
1. μ, λΆ, μ΄λ λͺ¨λ 0λ³΄λ€ ν¬κ±°λ κ°μμΌ νλ€.
2. μμ λ²μλ 0~23, λΆκ³Ό μ΄μ λ²μλ 0~59μ΄λ€.
class Time {
private int hour;
private int minute;
private float second;
public int getHour() {
return hour;
}
public int getMinute() {
return minute;
}
public float getSecond() {
return second;
}
public void setHour(int h) {
if (h < 0 || h > 23) return;
hour = h;
}
public void setMinute(int m) {
if (m < 0 || m > 59) return;
minute = m;
}
public void setSecond(float s) {
if (s < 0.0f || s > 59.99f) return;
second = s;
}
}
κ°μ λ³κ²½ν λ μ§μ λ κ°μ μ ν¨μ±μ 쑰건문μΌλ‘ μ κ²ν λ€μμ μ ν¨ν κ°μΌ κ²½μ°μλ§ λ³κ²½νλ€.
μ΄μ²λΌ κ°μ²΄μ§ν₯μΈμ΄μμλ μ μ΄μμ λ©μλλ₯Ό μ΄μ©ν΄μ μ΄λ¬ν 쑰건λ€μ μ½λμ μ½κ² λ°μν μ μλ€.
Reference
μλ°μ μ μ - λ¨κΆ μ±
'π Book > μλ°μ μ μ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
6-3μ₯ λ³μμ λ©μλ δΈ (3.7 ~ 3.12) (0) | 2023.04.18 |
---|---|
6-3μ₯ λ³μμ λ©μλ δΈ (3.1 ~ 3.6) (0) | 2023.04.04 |
5-3μ₯ λ€μ°¨μ λ°°μ΄ (0) | 2023.03.29 |
5-2μ₯ Stringλ°°μ΄ (0) | 2023.03.29 |
5-1μ₯ λ°°μ΄ (0) | 2023.03.29 |
λκΈ