Bibi's DevLog π€π
[μ½λμ€μΏΌλ μ½μ½μ] Day3 - λ°°μ΄, κ°μ²΄, λ©μλ, ν΄λμ€ λ³Έλ¬Έ
Records/Codesquad - cocoa Java
[μ½λμ€μΏΌλ μ½μ½μ] Day3 - λ°°μ΄, κ°μ²΄, λ©μλ, ν΄λμ€
λΉλΉ bibi 2020. 11. 4. 15:25λ―Έμ μ μν μ ννμ΅ - μμ΅.
λ°°μ΄
- μνμ½λ© μλ° λ°°μ΄ (opentutorials.org/course/1223/5373)
- λ°°μ΄(Array)
- λ°°μ΄μ μ°κ΄λ μ 보λ₯Ό κ·Έλ£Ήννλ λ° μ¬μ©νλ€.
- λ³μμ μμλ₯Ό λμ
- (μ) 'λ°μ₯', 'λΆλ°μ₯'μ΄λΌλ λ³μμ κ°κ° 'μ΅μ§ν', 'μ΅μ λΉ'μ΄λΌλ μμλ₯Ό λμ
νλ€.
-> λ³μ : κ°μ΄ λ°λ μ μλ€. λ°μ₯μ΄ μ΅μ§νμμ νκΈΈλμΌλ‘ λ°λμ΄λ λ°μ₯μκ² μ§μλ₯Ό λ΄λ¦΄ μ μλ€.
-> μμ : λ³νμ§ μλ κ°μ΄λ€. μ¬κΈ°μλ νμλ€μ μ΄λ¦μ΄ μμμ΄λ€.
- (μ) 'λ°μ₯', 'λΆλ°μ₯'μ΄λΌλ λ³μμ κ°κ° 'μ΅μ§ν', 'μ΅μ λΉ'μ΄λΌλ μμλ₯Ό λμ
νλ€.
- λ³μμ λ°°μ΄μ λμ
(λ°°μ΄μ μ°λ μ΄μ )
- (μ) 1λ°μ΄λΌλ λ³μμ ['μ΅μ§ν', 'μ΅μ λΉ', ... 'μ΄κ³ μ']μ΄λΌλ νμλ€μ λμ .
- λ³μμ μ°κ΄λ μμλ€μ λ°°μ΄λ‘ λ΄μΌλ©΄ κ΄λ¦¬νκΈ°κ° λ μ¬μμ§λ€.
- λ°°μ΄μ κ°λ
λ°°μ΄(Array) : μ°κ΄λ λ°μ΄ν°λ₯Ό λͺ¨μμ κ΄λ¦¬νκΈ° μν΄ μ¬μ©νλ λ°μ΄ν° νμ .- λ³μκ° νλμ λ°μ΄ν°λ₯Ό μ μ₯νκΈ° μν κ²μ΄λΌλ©΄, λ°°μ΄μ μ¬λ¬ κ°μ λ°μ΄ν°λ₯Ό μ μ₯νκΈ° μν κ²μ΄λ€.
public class DefineDemo {
public static void main(String[] args) {
String[] classGroup = { "μ΅μ§ν", "μ΅μ λΉ", "νμ΄λ", "μ΄κ³ μ" };
}
}
- μλ°μμ λ°°μ΄μ μμ± (μ μ½λμ String[] classGroup = { .. } μ°Έκ³ )
- String[]
- String : ν΄λΉ λ°°μ΄μ λ°μ΄ν°νμ (μλ£ν). μ¬κΈ°μλ λ¬Έμμ΄μ΄λ―λ‘ String
- [] : λ°°μ΄μ μ μΈν λλ λ°μ΄ν° νμ
λ€μ λκ΄νΈλ₯Ό μ΄κ³ λ«μμΌ νλ€.
β» []μ΄ μλ€λ©΄, classGroupμ λ°°μ΄μ΄ μλ λ¬Έμμ΄ μλ£νμ λ³μκ° λλ€.
- classGroup : λ°°μ΄μ μ΄λ¦
- { "μ΅μ§ν", "μ΅μ λΉ", "νμ΄λ", "μ΄κ³ μ" };
- μμ element : λ°°μ΄ μ λ°μ΄ν°μ λ§νλ€.
- λ°°μ΄μ μμλ€μ μ€κ΄νΈ { } λ΄μ μμΉνλ€.
- λ°°μ΄ μ μμλ€μ , (μΌν)λ‘ κ΅¬λΆλλ€.
(ν΄λΉ λ°°μ΄μ λ¬Έμμ΄ λ°°μ΄μ΄λ―λ‘ κ° λ°μ΄ν°λ€μ ν°λ°μ΄νλ‘ κ°μΌλ€)
- String[]
- μΈλ±μ€ index
- λ°°μ΄μ κ° μμλ€μ μλ³νλ μλ³μ.
(μΈλ±μ€λ μλ³μμ΄λ―λ‘ μ€λ³΅λλ©΄ μ λλ€.
λ°λΌμ λ°μ΄ν°κ° μΆκ°λ λλ§λ€ μλμΌλ‘ 0λΆν° 1μ© μ¦κ°νλ©° λ§λ€μ΄μ§λ€) - β μΈλ±μ€λ 0λΆν° μμνλ€.
λ°°μ΄μ 첫 λ²μ§Έ μμ = [0], λ λ²μ§Έ μμ = [1], μΈ λ²μ¨° μμ = [2] ....
- λ°°μ΄μ κ° μμλ€μ μλ³νλ μλ³μ.
- λ°°μ΄μ κΈΈμ΄ length
- λ°°μ΄μ μ μΈν λ, μ§μ ν λ°°μ΄μ΄ λ΄μ μ μλ κ°μ ν¬κΈ°.
- λ°°μ΄ λ΄μ λΉ μμκ° μλ κ²½μ°, λ°°μ΄μ κΈΈμ΄λ λ°°μ΄μ λ΄κΈ΄ μμμ μ«μμ κ°λ€.
- λ°°μ΄κ³Ό λ°λ³΅λ¬Έ
- λ°°μ΄κ³Ό λ°λ³΅λ¬Έμ λ§€μ° λ°μ ν κ΄κ³μ΄λ€.
forλ¬Έ, whileλ¬Έ λ± "λ°λ³΅λ¬Έ"μ μ΄μ©ν΄ λ°°μ΄μ λ΄μ©μ νλνλμ© κΊΌλ΄ μ¬μ©ν μ μκΈ° λλ¬Έ. - λ°°μ΄ : μ°κ΄λ μ 보λ₯Ό νλμ κ·Έλ£ΉμΌλ‘ κ΄λ¦¬νκΈ° μν΄ μ¬μ©νλ€.
- λ°°μ΄λ‘ κ·Έλ£Ήνλ μ 보λ₯Ό μ²λ¦¬νκΈ° μν΄ λ°λ³΅λ¬Έμ μ£Όλ‘ μ¬μ©νλ€.
- λ°°μ΄κ³Ό λ°λ³΅λ¬Έμ λ§€μ° λ°μ ν κ΄κ³μ΄λ€.
- (JAVA) λ°°μ΄μ νκ³
- (μλ°μ€ν¬λ¦½νΈ, νμ΄μ¬ λ±κ³Ό λ€λ₯΄κ²)
μλ°μμ λ°°μ΄μ μ΄κΈ°νν λ κ·Έ ν¬κΈ°κ° μ ν΄μ§λ€.
κ·Έλμ μ ν΄μ§ ν¬κΈ° μ΄μμ κ°μ λ£μ μ μλ€.
- νμ(μμ) μμλ₯Ό 미리 μμΈ‘νκ³ κ·Έμ λ§λ κ΅μ€(λ°°μ΄)μ μ§μ΄μΌ νλ κ²κ³Ό κ°λ€.
κ΅μ€(λ°°μ΄) ν¬κΈ°λ³΄λ€ λ λ§μ νμ(μμ)μ μμ©νλ €λ©΄,
κ΅μ€μ λΆμκ³ λ€μ μ§κ±°λ μλ‘μ΄ κ΅μ€μ λ§λ€μ΄μΌ ν¨.
- νμ(μμ) μμλ₯Ό 미리 μμΈ‘νκ³ κ·Έμ λ§λ κ΅μ€(λ°°μ΄)μ μ§μ΄μΌ νλ κ²κ³Ό κ°λ€.
- ν΄κ²°λ°©λ²) μλ°μ 컬λ μ
Collection(λλ 컨ν
μ΄λ Container) κΈ°λ₯μ μ΄μ©νλ€.
(κ°μ²΄μ§ν₯ κ°λ μ μ΄ν΄νκ³ λμ 컬λ μ μ λ°°μ°μ)
- (μλ°μ€ν¬λ¦½νΈ, νμ΄μ¬ λ±κ³Ό λ€λ₯΄κ²)
- μ΄μΈ..
- for-each : λ°°μ΄μ λ΄μ©μ νμν λ, forλ¬Έ λ κ°κ²°νκ² μ¬μ©νκΈ°.
opentutorials.org/course/1223/5373
- for-each : λ°°μ΄μ λ΄μ©μ νμν λ, forλ¬Έ λ κ°κ²°νκ² μ¬μ©νκΈ°.
λ©μλ
- μνμ½λ© μλ° - λ©μλ opentutorials.org/course/1223/5369
- λ©μλ method
μλ°μμμ ν¨μ κ°λ . μλ°μμμ ν¨μ = λ©μλ μ΄λ€.- λ©μλμ λ κ°μ§ νΉμ§
- 1. λ©μλλ μ½λλ₯Ό μ¬νμ©ν μ μκ² ν΄ μ€λ€. (μ¬νμ©μ±)
: μ¦ λ°λ³΅λλ μ½λλ₯Ό μ€μ¬ μ£Όμ΄, μ½λμ μμ μ€μ΄κ³ κ°λ μ±μ λμΈλ€. - 2. λ©μλλ μ
λ ₯κ°κ³Ό μΆλ ₯κ°μ μ€ μ μλ€.
: λ©μλλ νλ‘κ·Έλ¨ λ΄μ μμ νλ‘κ·Έλ¨μ΄λΌκ³ ν μ μλ€.
μ λ ₯κ°μ λ°λΌ λ€λ₯Έ κ²°κ³Όλ₯Ό μΆλ ₯ν΄ μ€μΌλ‘μ¨ ν¨μ©μ λμΌ μ μλ€.
- 1. λ©μλλ μ½λλ₯Ό μ¬νμ©ν μ μκ² ν΄ μ€λ€. (μ¬νμ©μ±)
- λ©μλμ λ κ°μ§ νΉμ§
- λ©μλμ νν
: μ§κΈκΉμ§ λ§μ΄ λ§λ€μ΄ 보μλ μλ ννκ° λ©μλμ ννμ΄λ€.
public static void main(String[] args) {
return
}
- (μ) λ©μλμ νν λΆμ
- public static : κ°μ²΄, κ°μ²΄μ§ν₯κ³Ό ν¨κ» 곡λΆν΄μΌ νλ λΆλΆμ΄λ€.
μ΄ν΄νκΈ° μ κΉμ§λ μΈμμ μ°μ. - μ§κΈμ void μ΄ν λΆλΆλ€μ λ°°μλ³Ό κ²μ΄λ€.
- public static : κ°μ²΄, κ°μ²΄μ§ν₯κ³Ό ν¨κ» 곡λΆν΄μΌ νλ λΆλΆμ΄λ€.
- λ©μλμ μ μμ νΈμΆ
- (λ©μλμ) μ μ : μ§μ λ©μλλ₯Ό λ§λλ κ².
- (λ©μλμ) νΈμΆ : λ§λ€μ΄μ§ λ©μλλ₯Ό μ€ννλ κ².
public class MethodDemo1 {
public static void numbering() {
int i = 0;
while (i < 10) {
System.out.println(i);
i++;
}
}
public static void main(String[] args) {
numbering();
}
}
// μ€νκ²°κ³Ό : 0 1 2 3 4 5 6 7 8 9
- (μ) μ½λ λΆμ
- public static void numbering() { ..... }
: λ©μλμ μ μ. numbering μ΄λΌλ μ΄λ¦μ λ©μλλ₯Ό μ μνκ³ μλ€. - numbering();
: λ©μλμ νΈμΆ. mainμ΄λΌλ λ©μλ μμμ numberingμ΄λΌλ λ©μλλ₯Ό νΈμΆνκ³ μλ€.
- public static void numbering() { ..... }
- main λ©μλ
- main λ©μλλ κ·μΉμ΄λ€.
μλ°λ‘ νλ‘κ·Έλ¨μ λ§λ€ λλ λ°λμ,
public static void main(String[] args) { ..... }
μ μ€κ΄νΈ λ΄μ μ€ννκ³ μΆμ λ‘μ§μ λ£μ΄μΌ νλ€. - μ°λ¦¬λ mainλ©μλλ₯Ό μμ±νκ³ , μλ°λ mainλ©μλλ₯Ό μ€ννλ κ΄κ³μ΄λ€.
- main λ©μλλ κ·μΉμ΄λ€.
- λ©μλμ νΉμ§ 1 : μ¬νμ©μ±
- κΈ΄ μ½λ -> νλ μΌμ λ°λΌ λ©μλλ‘ λλκ³ ,
κ·Έ μ½λκ° λ€μ νμν λ λ§λ€ μ½λλ₯Ό λ€μ μ°λ λμ λ©μλλ₯Ό νΈμΆνλ€.
- κΈ΄ μ½λ -> νλ μΌμ λ°λΌ λ©μλλ‘ λλκ³ ,
- λ©μλμ νΉμ§ 2 : μ
λ ₯κ³Ό μΆλ ₯
- 맀κ°λ³μ(νλΌλ―Έν°, parameter)
: 'λ©μλλ₯Ό νΈμΆν λ μ λ ₯ν κ°μ λ‘μ§μΌλ‘ 맀κ°νλ€' λ μλ―Έμμ 맀κ°λ³μλΌκ³ νλ€.
- μμ μ½λμμ (int limit) μμ μλ limit κ° λ§€κ°λ³μμ ν΄λΉνλ€.
- int : 맀κ°λ³μκ° μ μλΌλ μλ―Έμ΄λ€.
- limit : 맀κ°λ³μμ μ΄λ¦.
- 맀κ°λ³μλ λ©μλ λ΄μμλ§ (μ€κ΄νΈ λ΄μμλ§) μ¬μ©ν μ μλ€.
- μ
λ ₯κ°μ μ¬λ¬ κ° λ°κ³ μΆλ€λ©΄ 맀κ°λ³μλ€μ μ½€λ§λ‘ ꡬλΆν΄ μ μν΄ μ€λ€.
μλ₯Ό λ€μ΄ public static void numbering(int init, int limit);- μ΄ λ©μλλ₯Ό νΈμΆν λλ 맀κ°λ³μμ μμλλ‘ μ λ¬μΈμλ₯Ό λ°°μΉνλ€.
- μμ μ½λμμ (int limit) μμ μλ limit κ° λ§€κ°λ³μμ ν΄λΉνλ€.
- μ λ¬μΈμ (μΈμ, argument)
: λ©μλλ₯Ό νΈμΆν λ μ λ¬λ κ°.- μμ μ½λμμλ 5κ° μ λ¬μΈμμ ν΄λΉνλ€.
- 맀κ°λ³μ(νλΌλ―Έν°, parameter)
- return 리ν΄κ°
- λ©μλ λ΄μμ returnμ μ¬μ©νλ©΄..
- 1. 리ν΄κ°μ λ°ννλ€ : return λ€μ κ°μ λ©μλμ κ²°κ³Όλ‘ λ°ννλ€.
- 2. λ©μλλ₯Ό μ’ λ£μν¨λ€.
- 리ν΄κ°μ νν
- return;μ λ©μλλ₯Ό μ’
λ£νκ³ μΆμ λΆλΆμ μ λλ€.
return 리ν΄κ° ; - (JAVA)λ©μλμ μ΄λ¦ μμ 리ν΄κ°μ μλ£νμ λͺ
μν΄μΌ νλ€.
μλ μμ μ½λμμ Stringμ ν΄λΉνλ€.
리ν΄κ°μ΄ μλ€λ©΄ voidλ₯Ό μ μ΄μ€λ€. (public static void μ²λΌ)
- return;μ λ©μλλ₯Ό μ’
λ£νκ³ μΆμ λΆλΆμ μ λλ€.
- 볡μμ 리ν΄κ°
- (JAVA) μλ°μμλ 볡μμ 리ν΄κ°μ λ°νν μ μλ€.
μ€μ§ νλμ 리ν΄κ°λ§ λ°νν μ μλ€. - κ·Έλ λ€λ©΄ μ¬λ¬ λ°μ΄ν°λ₯Ό λ°ννκ³ μΆμ λ?
: "λ°°μ΄"μ μ΄μ©νλ€
νλμ λ°°μ΄μ μ¬λ¬ κ°μ λ΄κ³ , κ·Έ λ°°μ΄μ λ³μλ‘ νμ¬ λ¦¬ν΄κ°μΌλ‘ λ°ννλ©΄ λλ€.
- (JAVA) μλ°μμλ 볡μμ 리ν΄κ°μ λ°νν μ μλ€.
- λ©μλ λ΄μμ returnμ μ¬μ©νλ©΄..
public static String numbering(int init, int limit) {
// codes
return /*리ν΄κ°*/ ;
}
- λ©μλ λ 곡λΆνκΈ° : μ
λ ₯κ³Ό μΆλ ₯
- opentutorials.org/course/1223/5575
- String[] argsμ μλ―Έ, Scanner(nextInt(), ν μ€νΈ νμΌ, GUI) μ λν μ¬νλ΄μ©μ΄ μλ€.
κ°μ²΄, ν΄λμ€, μΈμ€ν΄μ€
κ°μ²΄λ λ©μλμ ν¨κ» κ±°λνκ³ , κ²°ν¨μ΄ μκ³ , μ μ§λ³΄μκ° μ¬μ΄ νλ‘κ·Έλ¨μ λ§λ€κΈ° μν κΈ°λ²μ΄λ€.
κ°μ²΄μ§ν₯μ κ°λ μ΄ν΄ opentutorials.org/course/1223/5399 λμ€μ μ½μ΄λ³΄κΈ°.
λ¬Έλ², μ€κ³, λΆνν, μλν, μΈν°νμ΄μ€ ..
(κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°μ΄λ? μ’ λ λμ νλ‘κ·Έλ¨μ λ§λ€κΈ° μν νλ‘κ·Έλλ° ν¨λ¬λ€μ.
λ‘μ§μ μνμ νμλ‘ μ΄λ£¨μ΄μ§ κ°μ²΄λ‘ λ§λ€κ³ , μ΄ κ°μ²΄λ€μ 쑰립ν΄μ νλμ νλ‘κ·Έλ¨μ λ§λλ κ².
μ¦ κ°μ²΄μ§ν₯ νλ‘κ·Έλλ° = κ°μ²΄λ₯Ό λ§λλ κ².
λ°λΌμ κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°μ μμνκΈ° μν΄μλ κ°μ²΄κ° 무μμΈμ§ λ¨Όμ μ΄ν΄ν΄μΌ νλ€.)
- κ°μ²΄(object)λ₯Ό μ μ¬μ©νκ² λμλκ°?
- νλμ νλ‘κ·Έλ¨ μμμ μλ§μ λ©μλ, λ³μκ° νμν΄μ Έ
μ½λκ° λ³΅μ‘ν΄μ§κ³ λ²κ·Έλ λ§μμ‘κΈ° λλ¬Έ.
-> μ΄λ° λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ λ±μ₯ν κ²μ΄ κ°μ²΄μ§ν₯μ΄λ€. - μ¦ κ°μ²΄λ₯Ό μ¬μ©νλ©΄ μ½λμ κ°λ
μ±μ λμΌ μ μκ³ , μ μ§κ΄λ¦¬κ° μ¬μμ§λ€.
(κ°μ²΄μ§ν₯ ν¨λ¬λ€μμ΄ λ±μ₯ν λ°λ λ§μ μ΄μ κ° μμ§λ§ μ§κΈμ μ΄μ λλ‘ μμλμ)
- νλμ νλ‘κ·Έλ¨ μμμ μλ§μ λ©μλ, λ³μκ° νμν΄μ Έ
- κ°μ²΄μ§ν₯μ ν΅μ¬ - κ·Έλ£Ήν
- : "μ°κ΄"λ μ½λμ "λ°λ³΅"λλ μ½λλ€μ κ·Έλ£ΉμΌλ‘ λ¬Άλ κ².
- μ°κ΄λ&λ°λ³΅λλ μ½λλ₯Ό κ·Έλ£Ήννμ¬ νλμ κ·Έλ£ΉμΌλ‘ λ§λ€κ³ ,
νμν λλ§λ€ κ·Έ κ·Έλ£Ήμ λ°λ³΅μ μΌλ‘ μ¬μ©νλ€.
-> μ΄ κ·Έλ£Ήμ "κ°μ²΄ Object" λΌκ³ λΆλ₯΄λ©°,
JAVAμμ κ°μ²΄μ μμνλ κ°λ μ΄ "ν΄λμ€ Class"μ΄λ€.
(μ ννλ μΈμ€ν΄μ€ Instanceμ μμνλ€ - λμ€μ λ μμΈν 곡λΆνκΈ°..)
- μ°κ΄λ&λ°λ³΅λλ μ½λλ₯Ό κ·Έλ£Ήννμ¬ νλμ κ·Έλ£ΉμΌλ‘ λ§λ€κ³ ,
- : "μ°κ΄"λ μ½λμ "λ°λ³΅"λλ μ½λλ€μ κ·Έλ£ΉμΌλ‘ λ¬Άλ κ².
- ν΄λμ€ class
- ν΄λμ€ : μ°κ΄λμ΄ μλ λ³μμ λ©μλλ€μ μ§ν©.
- ν΄λμ€λ₯Ό λ§λ€μ΄ μ¬μ©νλ μ΄μ = μ¬νμ©μ±μ λμ΄κΈ° μν΄.
νλμ ν΄λμ€λ₯Ό λ§λ€κ³ , κ·Έ ν΄λμ€λ‘ μ¬λ¬ κ°μ μΈμ€ν΄μ€λ₯Ό λ§λ€μ΄ μ¬μ©ν μ μλ€. - (μ°Έκ³ ) ν΄λμ€λ₯Ό λ§λ λ€ = μ¬μ©μ μ μ λ°μ΄ν° νμ μ λ§λλ κ²κ³Ό λΉμ·ν μλ―Έ.
- ν΄λμ€λ₯Ό λ§λ€μ΄ μ¬μ©νλ μ΄μ = μ¬νμ©μ±μ λμ΄κΈ° μν΄.
- ν΄λμ€μ νν : (μλ μ½λ μ°Έκ³ )
- public : λμ€μ μ€λͺ ..
- class : ν΄λμ€λΌκ³ μ μν¨
- Calculator : ν΄λμ€λͺ (ν΄λμ€μ μ΄λ¦). <- JAVAμμ ν΄λμ€λͺ μ λ°λμ λλ¬Έμλ‘ μμνλ€.
- { } : ν΄λμ€μ κ²½κ³. μμ{ κ³Ό λ}
- ν΄λμ€ : μ°κ΄λμ΄ μλ λ³μμ λ©μλλ€μ μ§ν©.
public class Calculator {
//codes
}
- μΈμ€ν΄μ€ instance
- ν΄λμ€λ μΌμ’ μ μ€κ³λλ‘, ν΄λμ€λ₯Ό μ μνλ κ²μ μ€κ³λλ₯Ό λ§λλ κ²μ λΆκ³Ό.
- new : ν΄λμ€λΌλ μ€κ³λλ₯Ό -> ꡬ체μ μΈ μ νμΈ μΈμ€ν΄μ€μΌλ‘ λ§λλ λͺ
λ Ήμ΄μ΄λ€.
- (μλ μμ ) Calculator c1 = new Calculator(); μ²λΌ μ¬μ©νλ€.
- (μ°Έκ³ ) ν΄λμ€λ₯Ό λ§λ λ€ = μ¬μ©μ μ μ λ°μ΄ν°νμ μ λ§λ λ€.
- Calculator c1 : λ³μ c1μ λ°μ΄ν° νμ μ΄ Calculatorμ΄λ€. (int num μ²λΌ)
- c1 : ν΄λμ€λ₯Ό μΈμ€ν΄μ€λ‘ λ§λ€ λλ λ³μμ λ΄μμΌ νλ€.
- this : μΈμ€ν΄μ€ μμ μ κ°λ¦¬ν΄ (μ€μ½ν νΈ μ°Έκ³ )
- μ¦..
- ν΄λμ€ : μ€κ³λ
- μΈμ€ν΄μ€ : μ ν μ΄λ€.
class Calculator{
int left, right;
public void setOprands(int left, int right){
this.left = left;
this.right = right;
}
public void sum(){
System.out.println(this.left+this.right);
}
public void avg(){
System.out.println((this.left+this.right)/2);
}
}
public class CalculatorDemo4 {
public static void main(String[] args) {
Calculator c1 = new Calculator();
c1.setOprands(10, 20);
c1.sum();
c1.avg();
Calculator c2 = new Calculator();
c2.setOprands(20, 40);
c2.sum();
c2.avg();
}
}
- κ°μ²΄, λ³μ, λ©μλ κ°λ
μ 리
- κ°μ²΄ : μνμ νλμ κ°μ§.
- κ°μ²΄μ μν state : μλ°μμλ λ³μ variableμ ν΄λΉν¨.
- κ°μ²΄μ νλ behave : μλ°μμλ λ©μλ methodμ ν΄λΉν¨.
- μ¦ κ°μ²΄λ λ³μμ λ©μλλ‘ κ΅¬μ±λλ©°, λ³μ = μν, λ©μλ = νλ μ΄λ€.
- (μ 리) νλμ ν΄λμ€λ₯Ό λ°νμΌλ‘ μλ‘ λ€λ₯Έ μνλ₯Ό κ°μ§ μΈμ€ν΄μ€λ₯Ό λ§λ€λ©΄ μλ‘ λ€λ₯Έ νλμ νκ² λλ€.
- λ©€λ²
- λ©€λ² member : ꡬμ±μ μ΄λΌλ λ».
- κ°μ²΄μ λ©€λ² : λ³μ(μν), λ©μλ(νλ).
- ν΄λμ€μ μΈμ€ν΄μ€λ κ°μ²΄μ λΉμ·ν κ°λ μ΄λ―λ‘ κ°κ° λ©€λ²λ₯Ό κ°μ§ μ μλ€.
- ν΄λμ€ - (λ©€λ²) λ³μ, λ©μλ -> ν΄λμ€ λ³μ, ν΄λμ€ λ©μλ
- μΈμ€ν΄μ€ - (λ©€λ²) λ³μ, λ©μλ -> μΈμ€ν΄μ€ λ³μ, μΈμ€ν΄μ€ λ©μλ
- ν΄λμ€ λ©€λ² : ν΄λμ€ λ³μ, ν΄λμ€ λ©μλ
- staticμ λ©€λ²λ³μμμ λΆμ΄λ©΄ ν΄λμ€μ λ©€λ²λ³μ(ν΄λμ€ λ³μ),
staticμ λ©€λ²λ©μλ μμ λΆμ΄λ©΄ ν΄λμ€μ λ©€λ²λ©μλ(ν΄λ μ€ λ©μλ)κ° λλ€. - (μ) static double PI = 3.14;
- static : ν΄λμ€μ λ©€λ²λΌλ μλ―Έ. "μ μ μΈ"μ΄λΌλ λ»μ΄λ€.
- double : μ«μ μλ£νμ μΌμ’ (λμ€μ 곡λΆνκΈ°)
- PI : ν΄λμ€ λ©€λ²μ μ΄λ¦.
- ν΄λμ€ λ³μ class variable λλ static field
- ν΄λμ€μ μν λ³μ? ν΄λμ€ μ μμμ μ κ·Ό κ°λ₯νλ€. (μ μλ³μ?)
- β» μΈμ€ν΄μ€ λ³μλ instance variable λλ non-static fieldλΌκ³ λΆλ₯Έλ€.
- ν΄λμ€ λ³μμ μ©λ
- μΈμ€ν΄μ€μ κ΄κ³μμ΄ λ³νμ§ μλ κ°μ΄ νμν κ²½μ°
(μ°Έκ³ : λμ€μλ finalμ λ°°μ°κ³ finalμ μ΄μ©ν΄ μμλ‘ μ μΈνλ κ²μ΄ λ°λμ§νλ€. ) - μΈμ€ν΄μ€λ₯Ό μμ±ν νμκ° μλ κ°μ ν΄λμ€μ μ μ₯νκ³ μΆμ κ²½μ°
- κ°μ λ³κ²½μ¬νμ λͺ¨λ μΈμ€ν΄μ€κ° 곡μ ν΄μΌ νλ κ²½μ°
- μΈμ€ν΄μ€μ κ΄κ³μμ΄ λ³νμ§ μλ κ°μ΄ νμν κ²½μ°
- ν΄λμ€ λ©μλ
- ν΄λμ€μ μν λ©μλ ?
- ν΄λμ€ λ©μλλ μΈμ€ν΄μ€ λ©€λ²μ μ κ·Όν μ μλ€.
λ°λλ‘, μΈμ€ν΄μ€ λ©μλλ ν΄λμ€ λ©€λ²μ μ κ·Όν μ μλ€.- (μ? ν΄λμ€ λ©μλλ μΈμ€ν΄μ€κ° μμ±λκΈ° μ μ λ§λ€μ΄μ§κΈ° λλ¬Έ.
ν΄λμ€ λ©μλκ° μΈμ€ν΄μ€ λ©€λ²μ μ κ·Όνλ κ²μ,
μμ§ λ§λ€μ΄μ§μ§ μμ μΈμ€ν΄μ€ λ³μμ μ κ·Όνλ κ²κ³Ό κ°λ€.)
- (μ? ν΄λμ€ λ©μλλ μΈμ€ν΄μ€κ° μμ±λκΈ° μ μ λ§λ€μ΄μ§κΈ° λλ¬Έ.
- λ©μλκ° μΈμ€ν΄μ€ λ³μλ₯Ό μ°Έμ‘°νμ§ μμΌλ©΄,
ν΄λμ€ λ©μλλ‘ λ§λ€μ΄ λΆνμν μΈμ€ν΄μ€μ μμ±μ λ§μ μ μλ€. - μλλ ν΄λμ€ λ©μλμ μμ΄λ€. (sum, avg)
- staticμ λ©€λ²λ³μμμ λΆμ΄λ©΄ ν΄λμ€μ λ©€λ²λ³μ(ν΄λμ€ λ³μ),
class Calculator3{
public static void sum(int left, int right){
System.out.println(left+right);
}
public static void avg(int left, int right){
System.out.println((left+right)/2);
}
}
public class CalculatorDemo3 {
public static void main(String[] args) {
Calculator3.sum(10, 20);
Calculator3.avg(10, 20);
Calculator3.sum(20, 40);
Calculator3.avg(20, 40);
}
}
λ νμ΅ν΄μΌ ν κ²λ€
μλ° μ κ·Ό μ μ΄μ
wikidocs.net/232 λ₯Ό μμΈν μ½μ΄λ³΄μ. κ°μ¬ν©λλ€.
~ μ§κΈ μ΄ν΄κ°λ₯ν λ΄μ©λ§ μ 리 ~
- μ μ΄μλ?
- μ μ΄μ modifier
- ν΄λμ€μ ν΄λμ€λ©€λ²(ν΄λμ€λ³μ, ν΄λμ€λ©μλ)μ μ μΈ μ μ¬μ©νμ¬
λΆκ°μ μΈ μλ―Έλ₯Ό λΆμ¬νλ ν€μλμ΄λ€. - μλ°μμ μ μ΄μλ μ κ·Όμ μ΄μμ κΈ°νμ μ΄μλ‘ κ΅¬λΆν μ μλ€.
- μ κ·Ό μ μ΄μλ νλλ§ μ¬μ© κ°λ₯νλ©°, κΈ°νμ μ΄μλ κ²½μ°μ λ°λΌ μ¬λ¬ κ°λ₯Ό μ¬μ©ν μ μλ€.
- μ κ·Ό μ μ΄μμ κΈ°ν μ μ΄μλ μ‘°ν©μ λ°λΌ ν¨κ» μ¬μ©ν μ μλ€.
- ν΄λμ€μ ν΄λμ€λ©€λ²(ν΄λμ€λ³μ, ν΄λμ€λ©μλ)μ μ μΈ μ μ¬μ©νμ¬
- μ μ΄μ modifier
- μ κ·Ό μ μ΄μ access modifier
- κ°μ²΄μ§ν₯μ "μ 보 μλ" κ°λ μ°Έκ³ .
- μ κ·Όμ μ΄μλ₯Ό μ¬μ©ν΄, ν΄λμ€ μΈλΆμμμ μ κ·Όμ νμ©ν λ©€λ²λ₯Ό μ€μ ν μ μλ€.
- Javaμμλ μ΄ λ€ κ°μ§μ μ κ·Ό μ μ΄μκ° μλ€.
- private, public, default, protected
- μ κ·Ό μ μ΄μμ μ κ·Ό λ²μ (μ κ·Όλ²μ λ§μ μ μ΄μ - μ μ μ μ΄μ μ)
public > protected > default > private
- 1. private
- privateλ‘ μ μΈλ ν΄λμ€ λ©€λ²λ μΈλΆμ 곡κ°λμ§ μμΌλ©°, μΈλΆμμ μ§μ μ κ·Όν μ μλ€.
- μλ° νλ‘κ·Έλ¨μ privateλ©€λ²μ μ§μ μ κ·Όν μ μλ€.
- ν΄λΉ κ°μ²΄μ public λ©μλλ₯Ό ν΅ν΄μλ§ μ κ·Όν μ μλ€.
- privateλ©€λ²λ ν΄λΉ λ©€λ²λ₯Ό μ μΈν ν΄λμ€μμλ§ μ κ·Όν μ μλ€.
- μ¬μ©) ν΄λμ€ λ΄λΆμ μΈλΆμ λμμ ꡬννλ λ° μ¬μ©λλ€.
- 2. public
- publicμΌλ‘ μ μΈλ ν΄λμ€ λ©€λ²λ μΈλΆμ 곡κ°λλ©°,
ν΄λΉ κ°μ²΄λ₯Ό μ¬μ©νλ νλ‘κ·Έλ¨ μ΄λμμλ μ§μ μ κ·Όν μ μλ€. - μλ° νλ‘κ·Έλ¨μ public λ©μλλ₯Ό ν΅ν΄μλ§ ν΄λΉ κ°μ²΄μ privateλ©€λ²μ μ κ·Όν μ μλ€.
λ°λΌμ publicλ©μλλ
privateλ©€λ²μ νλ‘κ·Έλ¨ μ¬μ΄μ μΈν°νμ΄μ€interfaceμν μ μννλ€κ³ λ³Ό μ μλ€. - μλ°μμ publicλ©€λ²λ νλ‘κ·Έλ¨ μ΄λμμλ, λꡬλ μ κ·Όν μ μλ€.
- publicμΌλ‘ μ μΈλ ν΄λμ€ λ©€λ²λ μΈλΆμ 곡κ°λλ©°,
- 3. default
- ν΄λμ€ λ° ν΄λμ€λ©€λ²μ μ κ·Όμ μ΄μ κΈ°λ³Έκ°μ΄λ€.
μ¦, μ κ·Ό μ μ΄μκ° μ§μ λμ§ μμΌλ©΄ μλμΌλ‘ default μ κ·Όμ μ΄λ₯Ό κ°μ§κ² λλ€. - defaultλ©€λ²λ κ°μ ν¨ν€μ§μ μνλ ν΄λμ€μμλ§ μ κ·Όν μ μλ€.
- ν΄λμ€ λ° ν΄λμ€λ©€λ²μ μ κ·Όμ μ΄μ κΈ°λ³Έκ°μ΄λ€.
- 4. protected
- μ§κΈμ λ΄λ μ΄ν΄κ° μ μ λ¨.. νμν λ μ°Ύμμ μ 리νκΈ°
privateμ publicμ μλ―Έμ μ©λ?