7. JVMμ λ©λͺ¨λ¦¬ ꡬ쑰
* cvλ ν΄λμ€ λ³μ, lvλ μ§μ λ³μ, ivλ μΈμ€ν΄μ€ λ³μλ₯Ό λ»νλ€.
λ©μλ μμ (method area)
νλ‘κ·Έλ¨ μ€ν μ€ μ΄λ€ ν΄λμ€κ° μ¬μ©λλ©΄, JVMμ ν΄λΉ ν΄λμ€μ ν΄λμ€ νμΌ(*.class)μ μ½μ΄μ λΆμνμ¬ ν΄λμ€μ λν μ 보λ₯Ό(ν΄λμ€ λ°μ΄ν°)λ₯Ό μ΄κ³³μ μ μ₯νλ€. μ΄ λ, κ·Έ ν΄λμ€μ ν΄λμ€ λ³μ(class variable)λ μ΄ μμμ ν¨κ» μμ±λλ€.
ν (heap)
μΈμ€ν΄μ€κ° μμ±λλ 곡κ°. νλ‘κ·Έλ¨ μ€ν μ€ μΈμ€ν΄μ€λ λͺ¨λ μ΄κ³³μ μμ±λλ€. μ¦, μΈμ€ν΄μ€ λ³μ(instance variable)λ€μ΄ μμ±λλ 곡κ°μ΄λ€.
νΈμΆμ€ν (call stack λλ execution stack)
λ©μλμ μμ μ νμν λ©λͺ¨λ¦¬ 곡κ°μ μ 곡νλ€. λ©μλκ° νΈμΆλλ©΄, νΈμΆμ€νμ νΈμΆλ λ©μλλ₯Ό μν λ©λͺ¨λ¦¬κ° ν λΉλλ©°, μ΄ λ©λͺ¨λ¦¬λ λ©μλκ° μμ μ μννλ λμ μ§μλ³μ(λ§€κ°λ³μ ν¬ν¨)λ€κ³Ό μ°μ°μ μ€κ° κ²°κ³Ό λ±μ μ μ₯νλλ° μ¬μ©λλ€. κ·Έλ¦¬κ³ λ©μλκ° μμ μ λ§μΉλ©΄ ν λΉλμλ λ©λͺ¨λ¦¬ 곡κ°μ λ°νλμ΄ λΉμμ§λ€.
νΈμΆμ€νμ λ³ν
class CallStackTest {
public static void main(String[] args) {
firstMethod() ; // staticλ©μλλ κ°μ²΄ μμ±μμ΄ νΈμΆκ°λ₯νλ€.
}
static void firstMethod() {
secondMethod();
}
static void secondMethod() {
System.out.println("secondMethod()");
}
}
1~2: JVMμ μν΄μ mainλ©μλκ° νΈμΆλ¨μΌλ‘μ¨ νλ‘κ·Έλ¨μ΄ μμλλ€. μ΄λ, νΈμΆμ€νμλ mainλ©μλλ₯Ό μν λ©λͺ¨λ¦¬ 곡κ°μ΄ ν λΉλκ³ mainλ©μλμ μ½λκ° μνλλ€.
3: mainλ©μλμμ firstMethod()λ₯Ό νΈμΆν μνμ΄λ€. μμ§ mainλ©μλκ° λλ κ²μ΄ μλλ―λ‘ mainλ©μλλ νΈμΆ μ€νμ λκΈ°μνλ‘ λ¨μμκ³ firstMethod()μ μνμ΄ μμλλ€.
4. firstMethod()μμ λ€μ secondMethod()λ₯Ό νΈμΆνλ€. firstMethod()λ secondMethod()κ° μνμ λ§μΉ λκΉμ§ λκΈ°μνμ μκ² λλ€. secondMethod()κ° μνμ λ§μ³μΌ firstMethod()μ λλ¨Έμ§ λ¬Έμ₯λ€μ΄ μνλ μ μκΈ° λλ¬Έμ΄λ€.
5. secondMethod()μμ println()μ νΈμΆνλ€. printlnλ©μλμ μν΄ 'secondMethod()'κ° νλ©΄μ μΆλ ₯λλ€.
6. printlnλ©μλμ μνμ΄ μλ£λμ΄ νΈμΆμ€νμμ μ¬λΌμ§κ³ μμ μ νΈμΆν secondMethod()λ‘ λλμκ°λ€. λκΈ° μ€μ΄λ secondMethod()λ println()μ νΈμΆν μ΄νλΆν° μνμ μ¬κ°νλ€.
7. secondMethod()μ λ μ΄μ μνν μ½λκ° μμΌλ―λ‘ μ’ λ£λκ³ , μμ μ νΈμΆν firstMethod()λ‘ λμκ°λ€.
8. firstMethod()μλ λ μ΄μ μνν μ½λκ° μμΌλ―λ‘ μ’ λ£λκ³ , μμ μ νΈμΆν mainλ©μλλ‘ λμκ°λ€.
9. mainλ©μλμλ λ μ΄μ μνν μ½λκ° μμΌλ―λ‘ μ’ λ£λμ΄, νΈμΆμ€νμ μμ ν λΉμμ§κ² λκ³ νλ‘κ·Έλ¨μ μ’ λ£λλ€.
νΈμΆμ€νμ νΉμ§
- λ©μλκ° νΈμΆλλ©΄ μνμ νμν λ§νΌμ λ©λͺ¨λ¦¬λ₯Ό μ€νμ ν λΉλ°λλ€.
- λ©μλκ° μνμ λ§μΉκ³ λλ©΄ μ¬μ©νλ λ©λͺ¨λ¦¬λ₯Ό λ°ννκ³ μ€νμμ μ κ±°λλ€.
- νΈμΆμ€νμ μ μΌ μμ μλ λ©μλκ° νμ¬ μ€ν μ€μΈ λ©μλμ΄λ€.
- μλμ μλ λ©μλκ° λ°λ‘ μμ λ©μλλ₯Ό νΈμΆν λ©μλμ΄λ€.
8. κΈ°λ³Έν λ§€κ°λ³μμ μ°Έμ‘°ν λ§€κ°λ³μ
κΈ°λ³Έν λ§€κ°λ³μ: λ³μμ κ°μ μ½κΈ°λ§ ν μ μλ€. (read only)
μ°Έμ‘°ν λ§€κ°λ³μ: λ³μμ κ°μ μ½κ³ λ³κ²½ν μ μλ€. (read & write)
κΈ°λ³Έν λ§€κ°λ³μ μμ
class Data {
int x;
}
class Test {
public static void main(String[] args) {
Data d = new Data();
d.x = 10;
System.out.println("main() : x = " + d.x);
change(d.x);
System.out.println("After change(x)");
System.out.println("main() : x = " + d.x);
}
static void change(int x) { // κΈ°λ³Έν λ§€κ°λ³μ
x = 1000;
System.out.println("change() : x = " + x);
}
}
μ€ν κ²°κ³Ό
main() : x = 10
change() : x = 1000
After change(x)
main() : x = 10
changeλ©μλμμ mainλ©μλλ‘λΆν° λ겨λ°μ d.xμ κ°μ 1000μΌλ‘ λ³κ²½νλλ°λ mainλ©μλμμλ d.xμ κ°μ΄ κ·Έλλ‘μ΄λ€. κ·Έ μ΄μ λ d.xμ κ°μ΄ λ³κ²½λ κ²μ΄ μλλΌ, changeλ©μλμ λ§€κ°λ³μ xμ κ°μ΄ λ³κ²½λ κ²μ΄κΈ° λλ¬Έμ΄λ€.
μ¦, μλ³Έμ΄ μλ 볡μ¬λ³Έμ΄ λ³κ²½λ κ²μ΄λΌ μλ³Έμλ μλ¬΄λ° μν₯μ λ―ΈμΉμ§ λͺ»νλ€.
μ΄μ²λΌ κΈ°λ³Έν λ§€κ°λ³μλ λ³μμ μ μ₯λ κ°λ§ μ½μ μ μμ λΏ λ³κ²½ν μλ μλ€.
μ°Έμ‘°ν λ§€κ°λ³μ μμ 1
class Test {
public static void main(String[] args) {
Data d = new Data();
d.x = 10;
System.out.println("main() : x = " + d.x);
change(d);
System.out.println("After change(d)");
System.out.println("main() : x = " + d.x);
}
static void change(Data d) {
d.x = 1000;
System.out.println("change() : x = " + d.x);
}
}
μ€ν κ²°κ³Ό
main() : x = 10
change() : x = 1000
After change(d)
main() : x = 1000
changeλ©μλμ λ§€κ°λ³μλ₯Ό μ°Έμ‘°νμΌλ‘ μ μΈνκΈ° λλ¬Έμ, xμ κ°μ΄ μλ μ£Όμκ° λ§€κ°λ³μ dμ 볡μ¬λμλ€. μ΄μ mainλ©μλμ μ°Έμ‘°λ³μ dμ changeλ©μλμ μ°Έμ‘°λ³μ dλ κ°μ κ°μ²΄λ₯Ό κ°λ¦¬ν€κ² λλ€. λ°λΌμ λ§€κ°λ³μ dλ‘ xμ κ°μ μ½λ κ²κ³Ό λ³κ²½νλ κ²μ΄ λͺ¨λ κ°λ₯νλ€.
μ°Έμ‘°ν λ§€κ°λ³μ μμ 2
class Test {
public static void main(String[] args) {
int[] x = {10};
System.out.println("main() : x = " + x[0]);
change(x);
System.out.println("After change(x)");
System.out.println("main() : x = " + x[0]);
}
static void change(int[] x) {
x[0] = 1000;
System.out.println("change() : x = " + x[0]);
}
}
λ°°μ΄λ κ°μ²΄μ κ°μ΄ μ°Έμ‘°λ³μλ₯Ό ν΅ν΄ λ°μ΄ν°κ° μ μ₯λ 곡κ°μ μ κ·Όνλ€. μ΄μ μμ μ κ°μ΄ λ³μ xλ intλ°°μ΄ νμ μ μ°Έμ‘°λ³μμ΄κΈ° λλ¬Έμ κ°μ κ²°κ³Όλ₯Ό μ»λλ€.
9. μ°Έμ‘°ν λ°ννμ
class Data {
int x;
}
class Test {
public static void main(String[] args) {
Data d = new Data();
d.x = 10;
Data d2 = copy(d);
System.out.println("d.x = " + d.x);
System.out.println("d2.x = " + d2.x);
}
static Data copy(Data d) {
Data tmp = new Data();
tmp.x = d.x;
return tmp;
}
}
μ€ν κ²°κ³Ό
d.x = 10
d2.x = 10
μ€ν κ³Όμ
1. copyλ©μλλ₯Ό νΈμΆνλ©΄μ μ°Έμ‘°λ³μ dμ κ°μ΄ λ§€κ°λ³μ dμ 볡μ¬λλ€.
2. μλ‘μ΄ κ°μ²΄λ₯Ό μμ±ν λ€μ, d.xμ μ μ₯λ κ°μ tmp.xμ 볡μ¬νλ€.
3. copyλ©μλκ° μ’ λ£λλ©΄μ λ°νν tmpμ κ°μ μ°Έμ‘°λ³μ d2μ μ μ₯λλ€.
4. copyλ©μλκ° μ’ λ£λμ΄ tmpλ μ¬λΌμ‘μ§λ§, d2λ‘ μλ‘μ΄ κ°μ²΄λ₯Ό λ€λ£° μ μλ€.
β λ°ννμ μ΄ 'μ°Έμ‘°ν'μ΄λΌλ κ²μ λ©μλκ° 'κ°μ²΄μ μ£Όμ'λ₯Ό λ°ννλ€λ κ²μ μλ―Ένλ€.
10. μ¬κ·νΈμΆ (recursive call)
π‘λ©μλ λ΄λΆμμ λ©μλ μμ μ λ€μ νΈμΆνλ κ²
μ¬κ· νΈμΆ μμ
ν©ν λ¦¬μΌ μ: f(n) = n * f(n-1), λ¨ f(1) = 1
class Test {
public static void main(String[] args) {
System.out.println(factorial(2));
}
static int factorial(int n) {
int result;
if (n == 1) {
result = 1;
} else {
result = n * factorial(n - 1);
}
return result;
}
}
μ€ν κ³Όμ
1. factorial(2)λ₯Ό νΈμΆνλ©΄μ λ§€κ°λ³μ nμ 2κ° λ³΅μ¬λλ€.
2. 'return 2 * factorial(1);'μ κ³μ°νλ €λ©΄ factorial(1)μ νΈμΆν κ²°κ³Όκ° νμνλ€. factorial(1)μ΄ νΈμΆλκ³ λ§€κ°λ³μ nμ 1μ΄ λ³΅μ¬λλ€.
3. ifλ¬Έμ 쑰건μμ΄ μ°Έμ΄λ―λ‘ 1μ λ°ννλ©΄μ λ©μλλ μ’ λ£λλ€. κ·Έλ¦¬κ³ factorial(1)μ νΈμΆν κ³³μΌλ‘ λλμκ°λ€.
4. μ΄μ factorial(1)μ κ²°κ΄κ°μΈ 1μ μ»μμΌλ―λ‘, returnλ¬Έμ΄ λ€μμ κ³Όμ μΌλ‘ κ³μ°λλ€.
return 2 * factorial(1);
-> return 2 * 1;
-> return 2;
μ¬κ·νΈμΆμ μ£Όμμ
- μ€ν μ€λ²νλ‘μ° μλ¬
μμ μμμ κ²½μ° λ§€κ°λ³μ nμ κ°μ΄ 0μ΄κ±°λ 100,000μ κ°μ΄ ν° κ°μ΄λ©΄ κ³μ μ¬κ·νΈμΆμ΄ μΌμ΄λ μ€νμ λ°μ΄ν°κ° μμΈλ€. μ΄λ μμ μ μ΄λ₯΄λ¬μλ κ²°κ΅ μ€νμ μ μ₯νκ³λ₯Ό λκ²λκ³ , 'μ€ν μ€λ²νλ‘μ° μλ¬'κ° λ°μνλ€.
κ°μ λ μ½λ
class Test {
public static void main(String[] args) {
System.out.println(factorial(2));
}
static int factorial(int n) {
if (n <= 0 || n > 12) {
return -1;
}
if (n == 1) {
return 1;
}
return n * factorial(n - 1);
}
}
nμ μνκ°μ 12λ‘ μ ν μ΄μ λ 13!μ κ°μ΄ λ©μλ factorialμ λ°ννμ μΈ intμ μ΅λκ°(μ½ 20μ΅)λ³΄λ€ ν¬κΈ° λλ¬Έμ΄λ€.
λ°λ³΅λ¬ΈμΌλ‘ ꡬν
class Test {
public static void main(String[] args) {
System.out.println(factorial(2));
}
static int factorial(int n) {
int result = 1;
while (n != 0) {
result *= n--;
}
return result;
}
}
μ¬κ·νΈμΆκ³Ό λ¬λ¦¬ λ§μ μμ λ°λ³΅μλ 'μ€ν μ€λ²νλ‘μ° μλ¬'μ κ°μ λ©λͺ¨λ¦¬ λΆμ‘± λ¬Έμ λ₯Ό κ²ͺμ§ μμ λΏλ§ μλλΌ μλλ λΉ λ₯΄λ€.
11. ν΄λμ€ λ©μλ(static λ©μλ)μ μΈμ€ν΄μ€ λ©μλ
μΈμ€ν΄μ€ λ©μλλ μΈμ€ν΄μ€ λ³μμ κ΄λ ¨λ μμ μ νλ, μ¦ λ©μλμ μμ μ μννλλ° μΈμ€ν΄μ€ λ³μλ₯Ό νμλ‘ νλ λ©μλμ΄λ€. μΈμ€ν΄μ€ λ³μλ μΈμ€ν΄μ€ λ³μλ μΈμ€ν΄μ€(κ°μ²΄)λ₯Ό μμ±ν΄μΌλ§ λ§λ€μ΄μ§λ―λ‘ μΈμ€ν΄μ€ λ©μλ μμ μΈμ€ν΄μ€λ₯Ό μμ±ν΄μΌλ§ νΈμΆν μ μλ€.
ν΄λμ€ λ§€μλλ μΈμ€ν΄μ€μ κ΄κ³μλ(μΈμ€ν΄μ€ λ³μλ μΈμ€ν΄μ€ λ©μλλ₯Ό μ¬μ©νμ§ μλ) λ©μλμ΄λ€.
* λ©€λ² λ³μ: ν΄λμ€ μμμ μ μΈλ λ³μ, staticμ΄ λΆμ κ²μ ν΄λμ€ λ³μ(static λ³μ), staticμ΄ λΆμ§ μμ κ²μ μΈμ€ν΄μ€ λ³μμ΄λ€.
1. ν΄λμ€λ₯Ό μ€κ³ν λ, λ©€λ² λ³μ μ€ λͺ¨λ μΈμ€ν΄μ€μ 곡ν΅μΌλ‘ μ¬μ©νλ κ²μ staticμ λΆμΈλ€.
μμ±λ κ° μΈμ€ν΄μ€λ λ 립μ μ΄κΈ° λλ¬Έμ κ° μΈμ€ν΄μ€μ λ³μλ μλ‘ λ€λ₯Έ κ°μ μ μ§νλ€. κ·Έλ¬λ λͺ¨λ μΈμ€ν΄μ€μμ κ°μ κ°μ΄ μ μ§λμ΄μΌ νλ λ³μλ staticμ λΆμ¬μ ν΄λμ€ λ³μλ‘ μ μν΄μνλ€.
2. ν΄λμ€ λ³μ(static λ³μ)λ μΈμ€ν΄μ€λ₯Ό μμ±νμ§ μμλ μ¬μ©ν μ μλ€.
staticμ΄ λΆμ λ³μ(ν΄λμ€ λ³μ)λ ν΄λμ€κ° λ©λͺ¨λ¦¬μ μ¬λΌκ° λ μ΄λ―Έ μλμ μΌλ‘ μμ±λλ€.
3. ν΄λμ€ λ©μλ(static λ©μλ)λ μΈμ€ν΄μ€ λ³μλ₯Ό μ¬μ©ν μ μλ€.
μΈμ€ν΄μ€ λ³μλ μΈμ€ν΄μ€κ° λ°λμ μ‘΄μ¬ν΄μΌλ§ μ¬μ©ν μ μλλ°, ν΄λμ€ λ©μλ(staticμ΄ λΆμ λ©μλ)λ μΈμ€ν΄μ€ μμ± μμ΄ νΈμΆκ°λ₯νλ―λ‘ ν΄λμ€ λ©μλκ° νΈμΆλμμ λ μΈμ€ν΄μ€κ° μ‘΄μ¬νμ§ μμ μλ μλ€. κ·Έλμ ν΄λμ€ λ©μλμμ μΈμ€ν΄μ€ λ³μμ μ¬μ©μ κΈμ§νλ€.
4. λ©μλ λ΄μμ μΈμ€ν΄μ€ λ³μλ₯Ό μ¬μ©νμ§ μλλ€λ©΄, staticμ λΆμ΄λ κ²μ κ³ λ €νλ€.
λ©μλμ μμ λ΄μ© μ€μμ μΈμ€ν΄μ€ λ³μλ₯Ό νμλ‘ νλ€λ©΄, staticμ λΆμΌ μ μλ€. λ°λλ‘ μΈμ€ν΄μ€ λ³μλ₯Ό νμλ‘ νμ§ μλλ€λ©΄ staticμ λΆμ΄μ. λ©μλ νΈμΆμκ°μ΄ μ§§μμ§λ―λ‘ μ±λ₯μ΄ ν₯μλλ€. staticμ μ λΆμΈ λ©μλ(μΈμ€ν΄μ€ λ©μλ)λ μ€ν μ νΈμΆλμ΄μΌ ν λ©μλλ₯Ό μ°Ύλ κ³Όμ μ΄ μΆκ°μ μΌλ‘ νμνκΈ° λλ¬Έμ μκ°μ΄ λ κ±Έλ¦°λ€.
β μ 리
- ν΄λμ€μ λ©€λ² λ³μ μ€ λͺ¨λ μΈμ€ν΄μ€μ 곡ν΅λ κ°μ μ μ§ν΄μΌ νλ κ²μ΄ μμΌλ©΄, staticμ λΆμ¬μ€λ€.
- μμ±ν λ©μλ μ€μμ μΈμ€ν΄μ€ λ³μλ μΈμ€ν΄μ€ λ©μλλ₯Ό μ¬μ©νμ§ μλ λ©μλμ staticμ λΆμΌ κ²μ κ³ λ €νλ€.
12. ν΄λμ€ λ©€λ²μ μΈμ€ν΄μ€ λ©€λ² κ°μ μ°Έμ‘°μ νΈμΆ
κ°μ ν΄λμ€μ μν λ©€λ²λ€ κ°μλ λ³λμ μΈμ€ν΄μ€λ₯Ό μμ±νμ§ μκ³ λ μλ‘ μ°Έμ‘° λλ νΈμΆμ΄ κ°λ₯νλ€. λ¨, ν΄λμ€ λ©€λ²κ° μΈμ€ν΄μ€ λ©€λ²λ₯Ό μ°Έμ‘° λλ νΈμΆνκ³ μ νλ κ²½μ°μλ μΈμ€ν΄μ€λ₯Ό μμ±ν΄μΌ νλ€.
κ·Έ μ΄μ λ μΈμ€ν΄μ€ λ©€λ²κ° μ‘΄μ¬νλ μμ μ ν΄λμ€ λ©€λ²λ νμ μ‘΄μ¬νμ§λ§, ν΄λμ€ λ©€λ²κ° μ‘΄μ¬νλ μμ μ μΈμ€ν΄μ€ λ©€λ²κ° μ‘΄μ¬νμ§ μμ μλ μκΈ° λλ¬Έμ΄λ€.
* μΈμ€ν΄μ€ λ©€λ²λ μΈμ€ν΄μ€ λ³μμ μΈμ€ν΄μ€ λ©μλλ₯Ό μλ―Ένλ€. ν΄λμ€ λ©€λ²λ ν΄λμ€ λ³μμ ν΄λμ€ μΈμ€ν΄μ€λ₯Ό μλ―Ένλ€.
class MemberCall {
int iv = 10;
static int cv = 20;
int iv2 = cv;
// static int cv2 = iv; // μλ¬. ν΄λμ€ λ³μλ μΈμ€ν΄μ€ λ³μλ₯Ό μ¬μ©ν μ μμ.
static int cv2 = new MemberCall().iv; // μ΄μ²λΌ κ°μ²΄λ₯Ό μμ±ν΄μΌ μ¬μ©κ°λ₯.
static void staticMethod1() {
System.out.println(cv);
// System.out.println(iv); // μλ¬. ν΄λμ€ λ©μλμμ μΈμ€ν΄μ€ λ³μλ₯Ό μ¬μ©λΆκ°.
MemberCall c = new MemberCall();
System.out.println(c.iv); // κ°μ²΄λ₯Ό μμ±ν νμμΌ μΈμ€ν΄μ€ λ³μμ μ°Έμ‘°κ°λ₯.
}
void instanceMethod1() {
System.out.println(cv);
System.out.println(iv); // μΈμ€ν΄μ€ λ©μλμμλ μΈμ€ν΄μ€ λ³μλ₯Ό λ°λ‘ μ¬μ©κ°λ₯.
}
static void staticMethod2() {
staticMethod1();
// instanceMethod1() ; // μλ¬. ν΄λμ€ λ©μλμμλ μΈμ€ν΄μ€ λ©μλλ₯Ό νΈμΆν μ μμ.
MemberCall c = new MemberCall();
c.instanceMethod1(); // μΈμ€ν΄μ€λ₯Ό μμ±ν νμμΌ νΈμΆν μ μμ.
}
void instanceMethod2() { // μΈμ€ν΄μ€ λ©μλμμλ μΈμ€ν΄μ€ λ©μλμ ν΄λμ€ λ©μλ
staticMethod2(); // λͺ¨λ μΈμ€ν΄μ€ μμ±μμ΄ λ°λ‘ νΈμΆμ΄ κ°λ₯νλ€.
instanceMethod1();
}
}
ν΄λμ€ λ©€λ²λ μΈμ λ μ°Έμ‘° λλ νΈμΆμ΄ κ°λ₯νκΈ° λλ¬Έμ μΈμ€ν΄μ€ λ©€λ²κ° ν΄λμ€ λ©€λ²λ₯Ό μ¬μ©νλ κ²μ κ°λ₯νλ€. ν΄λμ€ λ©€λ² κ°μ μ°Έμ‘° λλ νΈμΆλ κ°λ₯νλ€. κ·Έλ¬λ, μΈμ€ν΄μ€ λ©€λ²λ λ°λμ κ°μ²΄λ₯Ό μμ±ν νμλ§ μ°Έμ‘° λλ νΈμΆμ΄ κ°λ₯νκΈ° λλ¬Έμ ν΄λμ€ λ©€λ²κ° μΈμ€ν΄μ€ λ©€λ²λ₯Ό μ°Έμ‘°, νΈμΆνκΈ° μν΄μλ λ°λμ κ°μ²΄λ₯Ό μμ±ν΄μΌ νλ€.
λν μΈμ€ν΄μ€ λ©€λ² κ°μ νΈμΆλ κ°λ₯νλ€. νλμ μΈμ€ν΄μ€ λ©€λ²κ° μ‘΄μ¬νλ€λ κ²μ μΈμ€ν΄μ€κ° μ΄λ―Έ μμ±λμ΄ μλ€λ κ²μ μλ―Ένλ©°, μ¦ λ€λ₯Έ μΈμ€ν΄μ€ λ©€λ²λ€λ λͺ¨λ μ‘΄μ¬νκΈ° λλ¬Έμ΄λ€.
μμλλ©΄ μ’μμ!
MemberCall c = new MemberCall();
c.instanceMethod1();
μμ κ°μ λ μ€μ ν μ€λ‘ μ€μΌ μ μλ€.
int result = new MemberCall().instanceMethod1();
λμ μ°Έμ‘°λ³μλ₯Ό μ¬μ©νμ§ μμκΈ° λλ¬Έμ μμ±λ MemberCallμΈμ€ν΄μ€λ λ μ΄μ μ¬μ©ν μ μλ€.
Reference
μλ°μ μ μ - λ¨κΆ μ±
'π Book > μλ°μ μ μ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
6-3μ₯ λ³μμ λ©μλ δΈ (3.1 ~ 3.6) (0) | 2023.04.04 |
---|---|
6-2μ₯ ν΄λμ€μ κ°μ²΄ (0) | 2023.03.29 |
5-3μ₯ λ€μ°¨μ λ°°μ΄ (0) | 2023.03.29 |
5-2μ₯ Stringλ°°μ΄ (0) | 2023.03.29 |
5-1μ₯ λ°°μ΄ (0) | 2023.03.29 |
λκΈ