Java ν΄λμ€
π ν΄λμ€
κ°μ²΄λ?
물리μ μΌλ‘ μ‘΄μ¬νκ±°λ μΆμμ μΌλ‘ μκ°ν μ μλ κ² μ€μμ
μμ μ μμ±μ κ°μ§κ³ μμΌλ©΄μ μλ³ κ°λ₯ν κ².
β iv(Instance Variable)μ μ§ν©
β ivλ μΈμ€ν΄μ€κ° μμ±λ λ λ§λ€μ΄μ§λ€.
-
μμ± : νλ (field)
-
λμ : λ©μλ (method)
ν΄λμ€λ? : κ°μ²΄μ μ€κ³λ.
ν΄λμ€μλ κ°μ²΄λ₯Ό μμ±νκΈ° μν νλμ λ©μλκ° μ μλμ΄ μλ€.
ν΄λμ€λ‘ λΆν° λ§λ€μ΄μ§ κ°μ²΄λ₯Ό ν΄λΉ ν΄λμ€μ μΈμ€ν΄μ€λΌκ³ νλ€.
ν΄λμ€μ κ΅¬μ± λ©€λ²
ν΄λμ€μλ κ°μ²΄κ° κ°μ ΈμΌ ν κ΅¬μ± λ©€λ²κ° μ μΈλλ€. κ΅¬μ± λ§΄λ²μλ νλ, μμ±μ, λ©μλκ° μλ€.
π νλ (Field)
-
κ°μ²΄μ λ°μ΄ν°κ° μ μ₯λλ κ³³
-
μ μΈ ννλ λ³μμ λΉμ·νμ§λ§ νλλ₯Ό λ³μλΌκ³ λΆλ₯΄μ§λ μλλ€.
π μμ±μ (Constructor)
π₯ λͺ¨λ μμ±μλ 첫μ€μ λ€λ₯Έ μμ±μλ₯Ό νΈμΆν΄μΌ νλ€ π₯
μμ±μλ?
κ°μ²΄ μμ± μ μ΄κΈ°ν μν λ΄λΉ (iv μ΄κΈ°ν λ©μλ)
μμ±μμ 쑰건
-
μμ±μμ μ΄λ¦μ ν΄λμ€μ μ΄λ¦κ³Ό κ°μμΌνλ€.
-
μμ±μλ 리ν΄κ°μ΄ μλ€. νμ§λ§
voidλ μ°μ§ μλλ€. -
λͺ¨λ ν΄λμ€λ λ°λμ νλ μ΄μμ μμ±μλ₯Ό κ°μ ΈμΌνλ€.
μμ±μμ μ’ λ₯
β κΈ°λ³Έ μμ±μ.
-
λ§€κ°λ³μκ° μλ μμ±μ
-
λ§λ€μ§ μμ κ²½μ° μ»΄νμΌλ¬κ° μλμΌλ‘ μμ±μλ₯Ό μμ±νλ€.
1
2
3
4
5
6
7
8
9
10
class Car {
String color;
String model;
String company;
// constructor
Car() {}
}
β λ§€κ°λ³μ μλ μμ±μ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// ν΄λμ€ μμ±
class Car {
String color;
String model;
String company;
// κΈ°λ³Έ μμ±μ νμ μμ±
Car() {}
// λ§€κ°λ³μ μλ μμ±μ
Car(String c, String m, String com) {
color = c;
model = m;
company = com;
}
}
// κ°μ²΄ μμ±ν λ
Car myCar = new Car("black", "new", "hyundai" )
this(), this(λ§€κ°λ³μ)
-
μμ±μμμ λ€λ₯Έ μμ±μ νΈμΆν λλ§ μ¬μ©
-
λ€λ₯Έ μμ±μ νΈμΆμ 첫 μ€μμλ§ κ°λ₯.
-
ν΄λμ€ μ΄λ¦ λμ μ thisλ₯Ό μ¬μ©νλ κ².
-
μ½λμ μ€λ³΅μ λ°©μ§νκΈ° μν΄ μ¬μ©νλ€.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Car {
String color;
String model;
String company;
Car () {
this("black", "new", "hyundai");
}
Car(String color, String model, String company) {
this.color = color;
this.model = model;
this.company = company;
}
}
μ°Έμ‘° λ³μ this
-
μΈμ€ν΄μ€ μμ μ κ°λ¦¬ν€λ μ°Έμ‘°λ³μ
-
μΈμ€ν΄μ€ λ©μλμμ μ¬μ©κ°λ₯ (μμ±μ ν¬ν¨)
-
μ§μλ³μ(lv)μ μΈμ€ν΄μ€ λ³μ(iv)λ₯Ό ꡬλ³νκΈ° μν΄ μ¬μ©
λ³μμ μ΄λ¦μ΄ λ€λ₯΄λ€λ©΄ thisλ₯Ό μλ΅ κ°λ₯νμ§λ§, λ³μμ μ΄λ¦μ΄
μ€λ³΅λ κ²½μ°μλ λ°λμ thisλ₯Ό λͺ μν΄μ€μΌ νλ€.
1
2
3
4
5
6
7
8
9
10
11
12
13
class Car {
String color;
String model;
String company;
Car(String color, String model, String company) {
// μΈμ€ν΄μ€ λ³μ = μ§μλ³μ;
this.color = color;
this.model = model;
this.company = company;
}
}
π λ©μλ (Method)
- κ°μ²΄μ λμμ ν΄λΉνλ μ€ν λΈλ‘
λ¦¬ν΄ κ°
리ν΄ν κ°μ΄ μλ κ²½μ° λ¦¬ν΄ νμ
μ void λ₯Ό μ μ΄μ€λ€.
λ°λλ‘ λ¦¬ν΄ κ°μ΄ μλ κ²½μ°λ μλμ κ°μ΄ μμ±ν΄ μ€λ€.
1
2
3
4
5
// λ©μλ
int add(int x, int y) {
int result = x+y;
return result;
}
staticλ©μλμ instanceλ©μλ
staticλ©μλμ instanceλ©μλμ κ°μ₯ ν° μ°¨μ΄μ μ μΈμ€ν΄μ€ λ³μμ μ¬μ©μ¬λΆμ΄λ€.
β instance λ©μλ
-
μΈμ€ν΄μ€ μμ± ν, βμ°Έμ‘°λ³μ.λ©μλμ΄λ¦()βμΌλ‘ νΈμΆ
-
μΈμ€ν΄μ€λ³μλ μΈμ€ν΄μ€λ©μλμ κ΄λ ¨λ μμ μ νλ λ©μλ
-
λ©μλ λ΄μμ μΈμ€ν΄μ€λ³μ μ¬μ©κ°λ₯
β static λ©μλ
π μΈμ staticμ μ¬μ©νλμ? π
β» ν΄λμ€ λ΄μμ instance variableμ μ¬μ©νμ§ μμ λ μ¬μ©νλ€.
-
κ°μ²΄μμ±μμ΄ βν΄λμ€μ΄λ¦.λ©μλμ΄λ¦()βμΌλ‘ νΈμΆ
-
μΈμ€ν΄μ€λ³μλ μΈμ€ν΄μ€λ©μλμ κ΄λ ¨μλ μμ μ νλ λ©μλ
-
λ©μλ λ΄μμ μΈμ€ν΄μ€λ³μ μ¬μ©λΆκ°
-
λ©μλ λ΄μμ μΈμ€ν΄μ€λ³μλ₯Ό μ¬μ©νμ§ μλλ€λ©΄ staticμ λΆμ΄λ κ²μ κ³ λ €νλ€.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class MyMath2 {
// iv
long a, b;
// μΈμ€ν΄μ€λ©μλ
long add() {
return a + b;
}
// ν΄λμ€λ©μλ(staticλ©μλ)
static long add(long a, long b) {
return a + b;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class MyMath2Class {
public static void main(String[] args) {
// ν΄λμ€ λ©μλ νΈμΆ
System.out.println(MyMath2.add(1,2))
// μΈμ€ν΄μ€ λ©μλ νΈμΆ
MyMath2 mm = new MyMath2();
mm.a = 1;
mm.b = 2;
System.out.println(mm.add());
}
}
π₯ κ²°λ‘ π₯
static λ©μλλ κ°μ²΄ μμ±μμ΄ νΈμΆμ΄ κ°λ₯νλ€. λ°λ©΄μ ivλ κ°μ²΄ μμ± νμ
νΈμΆ κ°λ₯νλ€. μ¦, ivμ μ§ν©μΈ κ°μ²΄κ° μμ±μ΄ λμ§ μκΈ° λλ¬Έμ, static λ©μλλ
iv, imμ μ¬μ©ν μ μλ κ²μ΄λ€.
λ©μλ νΈμΆ
λ©μλλ ν΄λμ€ λ΄λΆ λ° μΈλΆμμ νΈμΆμ΄ κ°λ₯νλ€.
ν΄λμ€ λ΄λΆμ λ€λ₯Έ λ©μλμμ νΈμΆν κ²½μ°μλ λ¨μν λ©μλ μ΄λ¦μΌλ‘ νΈμΆνλ©΄ λλ€.
νμ§λ§ ν΄λμ€ μΈλΆμμ νΈμΆν κ²½μ°μλ μ°μ ν΄λμ€λ‘λΆν° κ°μ²΄λ₯Ό μμ±ν λ€ μ°Έμ‘° λ³μλ₯Ό
μ΄μ©ν΄μ λ©μλλ₯Ό νΈμΆν΄μΌ νλ€.
- ν΄λμ€ λ΄λΆμμ νΈμΆνλ κ²½μ°
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class TestClass {
// static method
static void staticMethod1 (int x, int y) {
int result = x + y;
return result;
}
// instance method
void instanceMethod1 () {
method1(1,2); // staticMethod1 νΈμΆ
}
}
- ν΄λμ€ μΈλΆμμ νΈμΆνλ κ²½μ°
μ°μ ν΄λμ€λ‘ λΆν° κ°μ²΄λ₯Ό μμ±ν΄μΌ νλ€. μλλ©΄ λ§€μλλ κ°μ²΄μ μμλ λ©€λ²μ΄λ―λ‘
κ°μ²΄κ° μ‘΄μ¬νμ§ μμΌλ©΄ λ©μλλ μ‘΄μ¬νμ§ μκΈ° λλ¬Έμ΄λ€.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package test.test;
public class TestClass {
public static void main(String[] args) {
// μλ‘μ΄ κ°μ²΄ μμ±
Test mathTest = new Test();
// μΈλΆμμ μ κ·Ό
mathTest.method1();
mathTest.method2();
}
}
π μ€ν
νΈμΆ μ€νμ΄λ?
λ©μλ μνμ νμν λ©λͺ¨λ¦¬κ° μ 곡λλ 곡κ°μ΄λ€.
λ©μλκ° νΈμΆλλ©΄ νΈμΆ μ€ν μ λ©λͺ¨λ¦¬ν λΉ, μ’ λ£λλ©΄ ν΄μ λλ€.
맨 μλμ main λ©μλκ° println λ©μλλ₯Ό νΈμΆνκ² λλ©΄,
μ€νμ΄ μλμ κ°μ΄ μμ΄κ² λκ³ , 맨 μμ μλ λ©μλλ§ μ€νλλ©°
λλ¨Έμ§λ λ©μλλ λκΈ°μνκ° λλ€.
| STACK | μν |
|---|---|
| println | μ€ν |
| main | λκΈ° |
