λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
Today I Learned(TIL)/μ„Έμ…˜

Java μ„Έμ…˜_ν”„λ‘œκ·Έλž˜λ° 기초

by carrot0911 2024. 11. 14.

11/13 15μ‹œμ— Java μ„Έμ…˜μ΄ μžˆμ—ˆλ‹€. νŠœν„°λ‹˜κ»˜μ„œ Java의 κΈ°μ΄ˆμ— λŒ€ν•΄μ„œ μ•Œλ €μ£Όμ‹œλŠ” μ‹œκ°„μ΄μ—ˆλŠ”λ°.. 
ν•˜ν•„ λ‚΄κ°€ μ„Έμ…˜ μ‹œκ°„μ„ μ²΄ν¬ν•˜μ§€ λͺ»ν–ˆκ³ , 컀리어 μ½”μΉ­ 상담을 15μ‹œ 30λΆ„μœΌλ‘œ μž‘μ•„λ†”μ„œ μ„Έμ…˜μ„ λ“£λ‹€κ°€ 상담을 λ°›μœΌλŸ¬ κ°€κ²Œ λ˜μ—ˆλ‹€.. πŸ₯²
κ·Έ κ²°κ³Ό 쀑간에 μ–΄λ–€ λ‚΄μš©μ΄ μžˆμ—ˆλŠ”μ§€ μ•Œμ§€ λͺ»ν–ˆκ³  녹화본이 올라온 ν›„ λ‚΄κ°€ 듣지 λͺ»ν•œ μˆœκ°„λΆ€ν„° λ“€μœΌλ©΄μ„œ Java ν”„λ‘œκ·Έλž˜λ°μ˜ 기초λ₯Ό μ’€ 더 μ‰½κ²Œ 이해할 수 μžˆλŠ” μ‹œκ°„μ„ κ°€μ§ˆ 수 μžˆμ—ˆλ‹€.
클래슀, 객체, μƒμ„±μž, λ©”μ„œλ“œ λ“±λ“± Java 문법 μ’…ν•©λ°˜ 3μ£Ό μ°¨ κ°•μ˜μ— λ‚˜μ˜€λŠ” λ‚΄μš©λ“€μ΄μ—ˆμ§€λ§Œ 처음 λ“£λŠ” λ‚΄μš©μ΄λΌμ„œ κ°•μ˜λ₯Ό 듀을 λ•ŒλŠ” κΈ΄κ°€λ―Όκ°€ ν–ˆμ—ˆλŠ”λ°, νŠœν„°λ‹˜μ˜ μ΄ν•΄ν•˜κΈ° μ‰¬μš΄ μ„€λͺ…λ“€λ‘œ μ΄ν•΄ν•˜μ§€ λͺ»ν–ˆλ˜ 뢀뢄듀을 μ΄ν•΄ν•˜κ³  λ„˜μ–΄κ°ˆ 수 μžˆμ—ˆλ˜ 것 κ°™λ‹€.

λΈ”λ‘œκ·Έμ— 정리해 두고 잘 기얡이 λ‚˜μ§€ μ•Šμ„ λ•Œλ§ˆλ‹€ λ³΄λ©΄μ„œ 이해할 수 μžˆλ„λ‘ λ‚˜μ—κ²Œ ν•„μš”ν•œ λ‚΄μš©λ“€μ„ μ •λ¦¬ν•΄μ•Όκ² λ‹€λŠ” 생각이 λ“€μ—ˆκ³  μ•„λž˜μ— 정리해 놓을 것이닀!!

 

λ‚˜μ€‘μ— 봀을 λ•Œ 도움이 λ˜λŠ” λ‚΄μš©

클래슀

ν΄λž˜μŠ€λŠ” 크게 3λ“±λΆ„μœΌλ‘œ λ‚˜λˆ΄μ„ λ•Œ 속성(ν•„λ“œ), μƒμ„±μž(쑰립섀λͺ…μ„œ), κΈ°λŠ₯(λ©”μ„œλ“œ)으둜 κ΅¬μ„±λ˜μ–΄ μžˆλ‹€.
κ·Έμ€‘μ—μ„œ 속성(ν•„λ“œ) λΆ€λΆ„λΆ€ν„° μ°¨λ‘€μ°¨λ‘€ 적으렀고 ν•œλ‹€!

속성(λ©€λ²„λ³€μˆ˜, ν•„λ“œ)

더보기
  • λ³€μˆ˜ ν˜•μ‹μœΌλ‘œ λ‚˜νƒ€λ‚Ό 수 μžˆλ‹€.
// 1. 속성 (ν•„λ“œ, λ©€λ²„λ³€μˆ˜) -> λ³€μˆ˜ ν˜•μ‹μœΌλ‘œ λ‚˜νƒ€λ‚Ό 수 μžˆλ‹€.
String name;
int age;

μƒμ„±μž(쑰립섀λͺ…μ„œ)

더보기
  • ν΄λž˜μŠ€μ™€ 이름이 κ°™λ‹€.
  • λ°˜ν™˜μžλ£Œν˜•μ΄ μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ”λ‹€.
  • μ—¬λŸ¬ κ°œκ°€ μ‘΄μž¬ν•  수 μžˆλ‹€.

ν΄λž˜μŠ€λŠ” 무쑰건 ν•œ 개 μ΄μƒμ˜ μƒμ„±μžλ₯Ό 가지고 μžˆμ–΄μ•Ό ν•œλ‹€.
λ˜ν•œ 아무것도 적지 μ•Šμ•„λ„ μ²˜μŒμ—λŠ” κΈ°λ³Έ μƒμ„±μžκ°€ μ‘΄μž¬ν•˜κ³  있고 μƒˆλ‘œμš΄ μƒμ„±μž 생성 μ‹œ κΈ°λ³Έ μƒμ„±μžλŠ” μ‚¬λΌμ§€κ²Œ λœλ‹€.
μƒμ„±μžμ˜ λ§€κ°œλ³€μˆ˜ μœ„μΉ˜μ— 없어도 λ˜λŠ” 값듀은 μ œμ™Έμ‹œμΌœλ„ λœλ‹€.

// 2. μƒμ„±μž (쑰립섀λͺ…μ„œ)
Person(String name, int age) {
        this.name = name;
        this.age = age;
    }


Main ν΄λž˜μŠ€μ—μ„œ μƒμ„±μžλ₯Ό 톡해 μΈμŠ€ν„΄μŠ€ν™”κ°€ κ°€λŠ₯ν•˜λ‹€. 

// -------- personA ---------
// personA. name = "???"
// personA.age = ???
// --------------------------
Person personA = new Person(inputStr, inputInt); // κΈ°λ³Έ μƒμ„±μžλ₯Ό 톡해 μΈμŠ€ν„΄μŠ€ν™”

μΈμŠ€ν„΄μŠ€ν™”λ₯Ό μ§„ν–‰ν•˜κ²Œ 되면 주석과 같이 객체가 μƒμ„±λœλ‹€.

κΈ°λŠ₯(λ©”μ„œλ“œ, ν•¨μˆ˜)

더보기

λ©”μ„œλ“œ 생성 μ‹œ λ°˜ν™˜ νƒ€μž…μ„ λͺ¨λ₯΄κ² λ‹€λ©΄ 일단 voidλ₯Ό μ‚¬μš©ν•œλ‹€.
μž‘μ„±ν•˜κ³  λ‚˜λ©΄ compilerκ°€ μ—λŸ¬λ₯Ό μž‘μ•„μ€˜μ„œ μ—λŸ¬λ₯Ό 확인 ν›„ νƒ€μž…μ„ λ³€κ²½ν•΄ μ£Όλ©΄ λœλ‹€.

// 3. κΈ°λŠ₯ (ν•¨μˆ˜ == λ©”μ„œλ“œ)
void sayMyName () {  // return 데이터 값이 없을 λ•Œ voidλ₯Ό μ‚¬μš©ν•œλ‹€.
    System.out.println("λ‚˜μ˜ 이름은 " + this.name + "μž…λ‹ˆλ‹€.");
    System.out.println("λ‚˜μ΄λŠ” " + this.age + "μž…λ‹ˆλ‹€.");
}

int sum (int value1, int value2) {
    int result = value1 + value2;

    return result;
}

Main ν΄λž˜μŠ€μ—μ„œλŠ” μƒμ„±λœ μΈμŠ€ν„΄μŠ€λ₯Ό 톡해 λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•  수 μžˆλ‹€.

personA.sayMyName();
int ret = personA.sum(1, 2);  // λ°˜ν™˜ν•΄μ£ΌλŠ” 값이 μžˆλ‹€λ©΄ 받을 수 μžˆλŠ” λ³€μˆ˜μ— λ‹΄μ•„μ€˜μ•Ό ν•œλ‹€.
System.out.println("ret : " + ret);

λ³€μˆ˜ retκ³Ό 같이 λ©”μ„œλ“œμ—μ„œ λ°˜ν™˜ν•΄ μ£ΌλŠ” 값이 μ‘΄μž¬ν•œλ‹€λ©΄ λ³€μˆ˜λ₯Ό 톡해 값을 μ €μž₯ν•΄ μ€€λ‹€.

μž…μΆœλ ₯(Scanner)에 λŒ€ν•΄μ„œλ„ μ•Œλ €μ£Όμ…¨μ§€λ§Œ 이 뢀뢄에 λŒ€ν•œ λ‚΄μš©μ€ κ°•μ˜μ™€ μ„Έμ…˜μ„ 톡해 μ™„λ²½νžˆ μ΄ν•΄ν•˜κ³  μžˆλ‹€κ³  μƒκ°ν•œλ‹€.
μ •λ¦¬λŠ” λ”°λ‘œ μ•ˆ 해야지~ 😎

정리

  • 클래슀λ₯Ό 톡해 객체λ₯Ό μ‹€μ²΄ν™”μ‹œν‚€λŠ” 과정을 μΈμŠ€ν„΄μŠ€ν™”λΌκ³  ν•œλ‹€.
  • μΈμŠ€ν„΄μŠ€ν™”μ‹œν‚¬ λ•Œ newλΌλŠ” ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•œλ‹€.
  • 클래슀의 속성은 λ³€μˆ˜ ν˜•μ‹μœΌλ‘œ λ‚˜νƒ€λ‚Έλ‹€.
  • 클래슀의 μƒμ„±μžλŠ” 클래슀의 쑰립섀λͺ…μ„œμ΄λ‹€.
    • μƒμ„±μžλŠ” ν΄λž˜μŠ€μ™€ 이름이 κ°™λ‹€.
    • μƒμ„±μžλŠ” λ°˜ν™˜ νƒ€μž…μ΄ μ—†λ‹€.
    • μƒμ„±μžλŠ” μ—¬λŸ¬ κ°œκ°€ μ‘΄μž¬ν•  수 μžˆλ‹€.
  • 클래슀의 κΈ°λŠ₯은 ν•¨μˆ˜(λ©”μ„œλ“œ) ν˜•μ‹μœΌλ‘œ λ‚˜νƒ€λ‚Έλ‹€.