2022. 4. 17. 12:33γJAVA/μλ°μ μ μ
1οΈβ£ μ€λ²λ‘λ©
λ©μλλ λ³μμ λ§μ°¬κ°μ§λ‘ κ°μ ν΄λμ€ λ΄μμ μλ‘ κ΅¬λ³λ μ μμ΄μΌ νκΈ° λλ¬Έμ κ°κΈ° λ€λ₯Έ μ΄λ¦μ κ°μ ΈμΌ νλ€.
κ·Έλ¬λ μλ°μμλ ν ν΄λμ€ λ΄μμ μ΄λ―Έ μ¬μ©νλ €λ μ΄λ¦κ³Ό κ°μ μ΄λ¦μ κ°μ§ λ©μλκ° μλλΌλ 맀κ°λ³μμ κ°μ λλ νμ μ΄ λ€λ₯΄λ©΄, κ°μ μ΄λ¦μ μ¬μ©ν΄μ λ©μλλ₯Ό μ μν μ μλ€.
ν ν΄λμ€ λ΄μ κ°μ μ΄λ¦μ λ©μλλ₯Ό μ¬λ¬ κ° μ μνλ κ²μ 'λ©μλ μ€λ²λ‘λ©' λλ 'μ€λ²λ‘λ©' μ΄λΌκ³ νλ€.
- μ€λ²λ‘λ© μ‘°κ±΄
1. λ©μλ μ΄λ¦μ΄ κ°μμΌ νλ€.
2. 맀κ°λ³μμ κ°μ λλ νμ μ΄ λ¬λΌμΌ νλ€.
κ·Έλ¦¬κ³ λ°ννμ μ μ€λ²λ‘λ©μ ꡬννλλ° μλ¬΄λ° μν₯μ μ£Όμ§ μλλ€!!!
- μ€λ²λ‘λ© μ
μ€λ²λ‘λ©μ λνμ μΈ μλ println() λ©μλμ΄λ€.
μ€μ λ‘λ println λ©μλλ₯Ό νΈμΆν λ 맀κ°λ³μλ‘ μ§μ νλ κ°μ νμ μ λ°λΌμ νΈμΆλλ println λ©μλκ° λ¬λΌμ§λ€.
int add(int a, int b) { return a + b; }
int add(int x, int y) { return x + y; }
-> μμ λ λ©μλλ 맀κ°λ³μ μ΄λ¦λ§ λ€λ₯Ό λΏ λ§€κ°λ³μμ νμ μ΄ κ°κΈ° λλ¬Έμ μ€λ²λ‘λ©μ΄ μ±λ¦½νμ§ μλλ€.
맀κ°λ³μμ μ΄λ¦μ΄ λ€λ₯΄λ©΄ λ©μλ λ΄μμ μ¬μ©λλ λ³μμ μ΄λ¦μ΄ λ¬λΌμ§λΏμ΄μ§ μλ¬΄λ° μλ―Έκ° μλ€.
int add(int a, int b) { return a + b; }
long add (int x, int y) { return (long) x + y; }
-> μ΄λ² κ²½μ°μλ λ¦¬ν΄ νμ λ§ λ€λ₯Έ κ²μ΄κΈ° λλ¬Έμ μ€λ²λ‘λ©μΌλ‘ κ°μ£Όνμ§ μλλ€.
long add (int a, long b) { return a + b; }
long add (long a, int b) { return a + b; }
-> λ λ©μλ λͺ¨λ int νκ³Ό long ν 맀κ°λ³μκ° νλμ© μ μΈλμμ§λ§ μλ‘ μμκ° λ€λ₯Έ κ²½μ°μ΄λ€.
μ΄μ²λΌ 맀κ°λ³μμ μμλ§μ λ€λ₯΄κ² νμ¬ κ΅¬ννλ©΄ μ¬μ©μκ° λ§€κ°λ³μμ μμλ₯Ό μΈμ°μ§ μμλ λλ€λ μ₯μ μ μμ§λ§, μ€νλ € λ¨μ μ΄ λ μλ μκΈ° λλ¬Έμ μ£Όμν΄μΌνλ€!!!
add(3,3) μ΄λ κ² νΈμΆνλ©΄ μ»΄νμΌ μλ¬κ° λ°μνλλ° μλνλ©΄ λ λ©μλ μ€ μ΄λ λ©μλλ₯Ό νΈμΆλ κ²μΈμ§ μ μ μκΈ° λλ¬Έμ΄λ€.
2οΈβ£ μ€λ²λ‘λ© μ₯μ
println()μ μκ°ν΄λ³΄λ©΄ λͺ¨λ κ·Όλ³Έμ μΌλ‘ κ°μ κΈ°λ₯μ νλ λ©μλλ€μΈλ° μλ‘ λ€λ₯Έ μ΄λ¦μ κ°μ ΈμΌνλ€κ³ νλ€λ©΄ λ©μλλ₯Ό μμ±νλ μͺ½μμλ μ΄λ¦μ μ§κΈ° μ΄λ ΅κ³ , λ©μλλ₯Ό μ¬μ©νλ μͺ½μμλ μ΄λ¦μ μΌμΌμ΄ ꡬλΆν΄μ κΈ°μ΅ν΄μΌνκΈ° λλ¬Έμ μλ‘ λΆλ΄μ΄ λλ€.
νμ§λ§ μ€λ²λ‘λ©μ ν΅ν΄ μ¬λ¬ λ©μλλ€μ΄ printlnμ΄λΌλ νλμ μ΄λ¦μΌλ‘ μ μλ μ μλ€λ©΄ printlnμ΄λΌλ μ΄λ¦λ§ κΈ°μ΅νλ©΄ λκΈ° λλ¬Έμ κΈ°μ΅νκΈ°λ μ½κ³ μ΄λ¦λ μ§§κ² ν μ μμ΄μ μ€λ₯μ κ°λ₯μ±μ λ§μ΄ μ€μΌ μ μλ€.
κ·Έλ¦¬κ³ λ νλμ μ₯μ μ λ©μλ μ΄λ¦μ μ μ½ν μ μλ€λ κ²μ΄λ€.
3οΈβ£ κ°λ³μΈμμ μ€λ²λ‘λ©
κΈ°μ‘΄μλ λ©μλμ 맀κ°λ³μ κ°μκ° κ³ μ μ μ΄μμΌλ, jdk1.5λΆν° λμ μΌλ‘ μ§μ ν΄μ€ μ μκ² λμμΌλ©° μ΄ κΈ°λ₯μ κ°λ³μΈμλΌκ³ νλ€.
νμ ... λ³μλͺ
-> μ΄λ κ² κ°λ³μΈμλ₯Ό 맀κ°λ³μλ‘ νκΈ° λλ¬Έμ λ¬Έμμ΄μ κ°μμ μ μ½μμ΄ λ§€κ°λ³μλ‘ μ§μ ν μ μλ€.
4οΈβ£ μμ±μ Constructor
μμ±μλ μΈμ€ν΄μ€κ° μμ±λ λ νΈμΆλλ 'μΈμ€ν΄μ€ μ΄κΈ°ν λ©μλ'μ΄λ€.
λ°λΌμ μΈμ€ν΄μ€ λ³μμ μ΄κΈ°ν μμ μ μ£Όλ‘ μ¬μ©λλ©°, μΈμ€ν΄μ€ μμ± μ μ€νλμ΄μΌ ν μμ μ μν΄μλ μ¬μ©λλ€.
- μμ±μ 쑰건
1. μμ±μμ μ΄λ¦μ ν΄λμ€μ μ΄λ¦κ³Ό κ°μμΌ νλ€.
2. μμ±μλ λ¦¬ν΄ κ°μ΄ μλ€.
3. λͺ¨λ ν΄λμ€λ λ°λμ μμ±μλ₯Ό κ°μ ΈμΌνλ€.
class Card {
Card() {
// 맀κ°λ³μ μλ μμ±μ, κΈ°λ³Έ μμ±μ
}
Card(String k, int num) {
// 맀κ°λ³μκ° μλμμ±μ
}
}
βοΈ μ£Όμ
μ°μ°μ newκ° μΈμ€ν΄μ€λ₯Ό μμ±νλ κ²μ΄κ³ , μμ±μλ μΈμ€ν΄μ€λ₯Ό μμ±νλ κ²μ μλλ€!
μμ±μλ λ¨μν μΈμ€ν΄μ€λ³μλ€μ μ΄κΈ°νμ μ¬μ©λλ μ‘°κΈ νΉλ³ν λ©μλμ΄λ€.
Card c = new Card();
1. μ°μ°μ new μ μν΄μ λ©λͺ¨λ¦¬ (heap)μ Card ν΄λμ€μ μΈμ€ν΄μ€κ° μμ±λλ€.
2. μ°μ°μ Card() κ° νΈμΆλμ΄ μνλλ€.
3. μ°μ°μ newμ κ²°κ³Όλ‘, μμ±λ Card μΈμ€ν΄μ€μ μ£Όμκ° λ°νλμ΄ μ°Έμ‘°λ³μ cμ μ μ₯λλ€.
μ§κΈκΉμ§ μΈμ€ν΄μ€λ₯Ό μμ±νκΈ° μν΄ μ¬μ©νλ 'ν΄λμ€μ΄λ¦()' λ μ¬μ€ μμ±μμλ κ²μ΄λ€.
μΈμ€ν΄μ€λ₯Ό μμ±ν λλ λ°λμ ν΄λμ€ λ΄μ μ μλ μμ±μ μ€μ νλλ₯Ό μ νν΄μ μ§μ ν΄μ€μΌνλ€.
- κΈ°λ³Έ μμ±μ
μ§κΈκΉμ§ ν΄λμ€μ μμ±μλ₯Ό μ μνμ§ μκ³ λ μΈμ€ν΄μ€λ₯Ό μμ±ν μ μμλ μ΄μ λ μ»΄νμΌλ¬κ° μ 곡νλ 'κΈ°λ³Έ μμ±μ' λλΆμ΄μλ€.
μ»΄νμΌν λ μμ€νμΌ (*.java) μ ν΄λμ€μ μμ±μκ° νλλ μ μλμ§ μμ κ²½μ° μ»΄νμΌλ¬λ μλμ μΌλ‘ κΈ°λ³Έ μμ±μλ₯Ό μΆκ°νμ¬ μ»΄νμΌνλ€.
μ»΄νμΌλ¬κ° μλμ μΌλ‘ μΆκ°ν΄μ£Όλ κΈ°λ³Έ μμ±μλ 맀κ°λ³μλ μκ³ ,μλ¬΄λ° λ΄μ©λ μλ μμ£Ό κ°λ¨ν κ²μ΄λ€.
κΈ°λ³Έμμ±μκ° μ»΄νμΌλ¬μ μν΄μ μΆκ°λλ κ²½μ°λ ν΄λμ€μ μ μλ μμ±μκ° νλλ μμ λ μ΄λ€!
- 맀κ°λ³μκ° μλ μμ±μ
μμ±μλ λ©μλμ²λΌ 맀κ°λ³μλ₯Ό μ μΈνμ¬ νΈμΆ μ κ°μ λ겨λ°μμ μΈμ€ν΄μ€μ μ΄κΈ°νμμ μ μ¬μ©ν μ μλ€.
μΈμ€ν΄μ€λ§λ€ κ°κΈ° λ€λ₯Έ κ°μΌλ‘ μ΄κΈ°νλμ΄μΌνλ κ²½μ°κ° λ§κΈ° λλ¬Έμ 맀κ°λ³μλ₯Ό μ¬μ©ν μ΄κΈ°νλ λ§€μ° μ μ©νλ€.
맀κ°λ³μκ° μλ μμ±μλ₯Ό μ¬μ©νλ€λ©΄ μΈμ€ν΄μ€λ₯Ό μμ±νλ λμμ μνλ κ°μΌλ‘ μ΄κΈ°νν μ μκ² λλ€.
- μμ±μμμ λ€λ₯Έ μμ±μ νΈμΆνκΈ° this(), this
-> μμ±μλ‘ κ°μ ν΄λμ€μ λ€λ₯Έ μμ±μλ₯Ό νΈμΆν λ μ¬μ©νλ€.
κ°μ ν΄λμ€μ λ©€λ²λ€ κ°μ μλ‘ νΈμΆν μ μλ κ²μ²λΌ μμ±μ κ°μλ μλ‘ νΈμΆμ΄ κ°λ₯νλ€.
1. μμ±μμ μ΄λ¦μΌλ‘ ν΄λμ€ μ΄λ¦ λμ this μ¬μ©ν΄μΌνλ€.
2. ν μμ±μμμ λ€λ₯Έ μμ±μλ₯Ό νΈμΆν λλ λ°λμ 첫μ€μμλ§ νΈμΆν΄μΌνλ€.
Car(String color) {
door = 5;
Car(color, "auto", 4);
}
-> μ¬κΈ°μλ λ¨Όμ λ€λ₯Έ μμ±μλ₯Ό νΈμΆν λ thisκ° μλ Car μ μ¬μ©ν΄μ μλ¬κ° λκ³ , λ λ€λ₯Έ μλ¬λ μμ±μ νΈμΆμ΄ 첫λ²μ§Έ μ€μ΄ μλ λλ²μ§Έ μ€μμ νΈμΆνκΈ° λλ¬Έμ΄λ€.
μμ±μμμ λ€λ₯Έ μμ±μλ₯Ό 첫μ€μμλ§ νΈμΆμ΄ κ°λ₯νλλ‘ ν μ΄μ λ μμ±μ λ΄μμ μ΄κΈ°ν μμ λμ€μ λ€λ₯Έ μμ±μλ₯Ό νΈμΆνκ² λλ©΄, νΈμΆλ λ€λ₯Έ μμ±μ λ΄μμλ λ©€λ²λ³μλ€μ κ°μ μ΄κΈ°νν κ²μ΄λ―λ‘ λ€λ₯Έ μμ±μλ₯Ό νΈμΆνκΈ° μ΄μ μ μ΄κΈ°ν μμ μ΄ λ¬΄μλ―Έν΄μ§ μ μκΈ° λλ¬Έμ΄λ€.
this("white", "auto", 4); μ²λΌ μμ±μλ₯Ό νμ©ν΄μ λ κ°λ ₯ν ν μ μκΈ° λλ¬Έμ 보기μλ λ νΈνλ€.
μ΄ μ½λλ Car c1 = new Car(); μ²λΌ μμ±μ Car()λ₯Ό νμ©ν΄μ Car μΈμ€ν΄μ€λ₯Ό μμ±ν κ²½μ°μ μΈμ€ν΄μ€ λ³μ colorλ white, geertypeμ auto, doorλ 4λ‘ μ΄κΈ°ν λλλ‘ νμλ€.
- μ°Έμ‘°λ³μλ‘ μΈμ€ν΄μ€ μμ μ κ°λ¦¬ν€λ this
this λ μΈμ€ν΄μ€ μμ μ κ°λ¦¬ν€λ μ°Έμ‘°λ³μλ‘ μΈμ€ν΄μ€μ μ£Όμκ° μ μ₯λμ΄ μλ€.
λͺ¨λ μΈμ€ν΄μ€ λ©μλμ μ§μλ³μλ‘ μ¨κ²¨μ§μ±λ‘ μ‘΄μ¬νλ€!
μ°Έμ‘°λ³μλ₯Ό ν΅ν΄ μΈμ€ν΄μ€μ λ©€λ²μ μ κ·Όν μ μλ κ²μ²λΌ 'this'λ‘ μΈμ€ν΄μ€ λ³μμ μ κ·Όν μ μλ κ²μ΄λ€.
κ·Όλ° thisλ₯Ό μ¬μ©ν μ μλ κ²μ μΈμ€ν΄μ€ λ©€λ² λΏμ΄λ€, μλνλ©΄ staticλ©μλλ μΈμ€ν΄μ€λ₯Ό μμ±νμ§ μκ³ λ νΈμΆλ μ μμΌλ―λ‘ static λ©μλκ° νΈμΆλ μμ μ μΈμ€ν΄μ€κ° μ‘΄μ¬νμ§ μμ μλ μκΈ° λλ¬Έμ΄λ€.
βοΈ κ·Έλ¦¬κ³ μ°Έκ³ λ‘ thisμ this()λ λΉμ·νκ² μκ²Όμ λΏ μμ ν λ€λ₯Έ κ²μ΄λ€!!
- μμ±μλ₯Ό μ΄μ©ν μΈμ€ν΄μ€ 볡μ¬
νμ¬ μ¬μ©νκ³ μλ μΈμ€ν΄μ€μ κ°μ μνλ₯Ό κ°λ μΈμ€ν΄μ€λ₯Ό νλ λ λ§λ€κ³ μ ν λ μμ±μλ₯Ό μ΄μ©ν μ μλ€.
-> λ μΈμ€ν΄μ€κ° κ°μ μνλ₯Ό κ°λ λ€λ κ²μ λ μΈμ€ν΄μ€μ λͺ¨λ μΈμ€ν΄μ€ λ³μ(μν)κ° λͺ¨λ λμΌν κ°μ κ°κ³ μλ€λ κ²μ λ»νλ€.
5οΈβ£ λ³μμ μ΄κΈ°ν
λ³μλ₯Ό μ μΈνκ³ μ²μμΌλ‘ κ°μ μ μ₯νλ κ²μ λ³μμ μ΄κΈ°νλΌκ³ νλ€.
λ³μμ μ΄κΈ°νλ κ²½μ°μ λ°λΌμ νμμ μ΄κΈ°λ νκ³ μ νμ μ΄κΈ°λ νμ§λ§, κ°λ₯νλ©΄ μ μΈκ³Ό λμμ μ μ ν κ°μΌλ‘ μ΄κΈ°ννλ κ²μ΄ λ°λμ§νλ€.
λ©€λ²λ³μλ μ΄κΈ°νλ₯Ό νμ§ μμλ μλμ μΌλ‘ λ³μμ μλ£νμ λ§λ κΈ°λ³Ένκ°μΌλ‘ μ΄κΈ°νκ° μ΄λ£¨μ΄μ§κΈ° λλ¬Έμ μ΄κΈ°ννμ§ μκ³ λ μ¬μ©ν΄λ λμ§λ§, μ§μλ³μλ μ¬μ©νκΈ° μ μλ λ°λμ μ΄κΈ°νν΄μΌνλ€.
λ©€λ²λ³μ(ν΄λμ€ λ³μ, μΈμ€ν΄μ€ λ³μ)μ λ°°μ΄μ μ΄κΈ°νλ μ νμ μ΄μ§λ§,
μ§μλ³μμ μ΄κΈ°νλ νμμ μ΄λ€!!!
- λ©€λ²λ³μ μ΄κΈ°ν λ°©λ²
1. λͺ μμ μ΄κΈ°ν
2. μμ±μ
3. μ΄κΈ°ν λΈλ
- μΈμ€ν΄μ€ μ΄κΈ°ν λΈλ : μΈμ€ν΄μ€ λ³μλ₯Ό μ΄κΈ°ννλ λ° μ¬μ©
- ν΄λμ€ μ΄κΈ°ν λΈλ: ν΄λμ€ λ³μλ₯Ό μ΄κΈ°ννλλ° μ¬μ©
- λͺ μμ μ΄κΈ°ν
λ³μλ₯Ό μ μΈκ³Ό λμμ μ΄κΈ°ννλ κ²μ λͺ μμ μ΄κΈ°νλΌκ³ νλ€.
κ°μ₯ κΈ°λ³Έμ μ΄λ©΄μλ κ°λ¨ν μ΄κΈ°ν λ°©λ²μ΄λ€.
class Car {
int door = 4; // κΈ°λ³Έν λ³μμ μ΄κΈ°ν
Engine e = new Engine(); // μ°Έμ‘°ν λ³μμ μ΄κΈ°ν
}
λͺ μμ μ΄κΈ°νκ° κ°λ¨νκ³ λͺ λ£νκΈ°λ νμ§λ§ λ³΄λ€ λ³΅μ‘ν μ΄κΈ°ν μμ μ΄ νμν κ²½μ°μλ 'μ΄κΈ°ν λΈλ' λλ μμ±μλ₯Ό μ¬μ©ν΄μΌνλ€.
- μ΄κΈ°ν λΈλ
μ΄κΈ°ν λΈλμλ ν΄λμ€ μ΄κΈ°ν λΈλκ³Ό μΈμ€ν΄μ€ μ΄κΈ°ν λΈλ λ κ°μ§ μ’ λ₯κ° μλ€.
ν΄λμ€ μ΄κΈ°ν λΈλμ ν΄λμ€λ³μμ μ΄κΈ°νμ μ¬μ©λκ³ , μΈμ€ν΄μ€ μ΄κΈ°ν λΈλμ μΈμ€ν΄μ€ λ³μμ μ΄κΈ°νμ μ¬μ©λλ€.
μ΄κΈ°ν λΈλμ μμ±νλ €λ©΄, μΈμ€ν΄μ€ μ΄κΈ°ν λΈλμ λ¨μν ν΄λμ€ λ΄μ λΈλ{} μλ§λ€κ³ κ·Έ μμ μ½λλ₯Ό μμ±νλ©΄ λλ€.
κ·Έλ¦¬κ³ ν΄λμ€ μ΄κΈ°ν λΈλμ μΈμ€ν΄μ€ μ΄κΈ°ν λΈλμμ λ¨μν static μ λ§λΆμ΄κΈ°λ§ νλ©΄ λλ€.
ν΄λμ€ μ΄κΈ°ν λΈλμ ν΄λμ€κ° λ©λͺ¨λ¦¬μ μ²μ λ‘λ©λ λ νλ²λ§ μνλκ³ , μΈμ€ν΄μ€ μ΄κΈ°ν λΈλμ μμ±μμ κ°μ΄ μΈμ€ν΄μ€λ₯Ό μμ±ν λ λ§λ€ μνλλ€.
κ·Έλ¦¬κ³ μμ±μλ³΄λ€ μΈμ€ν΄μ€ μ΄κΈ°ν λΈλμ΄ λ¨Όμ μνλλ€!!!
- λ©€λ²λ³μμ μ΄κΈ°ν μκΈ°μ μμ
ν΄λμ€λ³μμ μ΄κΈ°ν μμ : ν΄λμ€κ° μ²μ λ‘λ©λ λ λ¨ νλ² μ΄κΈ°ν λλ€.
μΈμ€ν΄μ€λ³μμ μ΄κΈ°νμμ : μΈμ€ν΄μ€κ° μμ±λ λ λ§λ€ κ° μΈμ€ν΄μ€λ³λ‘ μ΄κΈ°νκ° μ΄λ£¨μ΄μ§λ€.
ν΄λμ€λ³μμ μ΄κΈ°ν μμ : κΈ°λ³Έκ° -> λͺ μμ μ΄κΈ°ν -> ν΄λμ€ μ΄κΈ°ν λΈλ
μΈμ€ν΄μ€λ³μμ μ΄κΈ°ν μμ: κΈ°λ³Έκ° -> λͺ μμ μ΄κΈ°ν -> μΈμ€ν΄μ€ μ΄κΈ°ν λΈλ -> μμ±μ
-> μμ±μκ° νλλ°μ μκΈ° λλ¬Έμ μΈμ€ν΄μ€ λΈλ λμ , Product ν΄λμ€μ μμ±μλ₯Ό μ¬μ©ν΄λ κ²°κ³Όλ κ°μ§λ§, μ½λμ μλ―Έμ λͺ¨λ μμ±μμκ² κ³΅ν΅μΌλ‘ μνλμ΄μΌ νλ λ΄μ©μ΄κΈ° λλ¬Έμ μΈμ€ν΄μ€ λΈλμ μ¬μ©νμλ€.