λ‚˜μ˜ λͺ¨μ–‘

011 | Java - class, object, field, method, static, overloading λ³Έλ¬Έ

SEB/TIL

011 | Java - class, object, field, method, static, overloading

kexon 2022. 7. 7. 23:13

πŸ’™ 였늘 배운 것

🀍 클래슀

더보기
더보기
  • 객체 생성 μ‹œ μ‚¬μš©λ˜λŠ” ν•˜λ‚˜μ˜ 섀계도/ν‹€

클래슀의 κ΅¬μ„±μš”μ†Œμ™€ κΈ°λ³Έ 문법

class 클래슀λͺ… { // 클래슀 μ •μ˜
	// ...
}
  • ν‚€μ›Œλ“œ: class
  • 클래슀λͺ…: 주둜 λŒ€λ¬Έμž
  • κ΅¬μ„±μš”μ†Œ
    • ν•„λ“œ: 클래슀의 속성을 λ‚˜νƒ€λ‚΄λŠ” λ³€μˆ˜(속성)
    • λ©”μ„œλ“œ: 클래슀의 κΈ°λŠ₯을 λ‚˜νƒ€λ‚΄λŠ” ν•¨μˆ˜(κΈ°λŠ₯)
    • μƒμ„±μž: 클래슀의 객체λ₯Ό 생성
    • μ΄λ„ˆν΄λž˜μŠ€: 클래슀의 λ‚΄λΆ€ 클래슀

🀍 객체

더보기
더보기
  • ν΄λž˜μŠ€μ— μ„€κ³„λœ λ‚΄μš©μœΌλ‘œ μƒμ„±λœ μ œν’ˆ
  • 멀버: 속성 + κΈ°λŠ₯ + μ΄λ„ˆν΄λž˜μŠ€
  • ν‚€μ›Œλ“œ: new
    • μ‹€μ œ 객체 생성 → 클래슀 멀버에 μ ‘κ·Ό κ°€λŠ₯
class Europe {
	public static void main(String[] args) {

	Europe western = new Europe();  // Europe 클래슀둜 λ§Œλ“€μ–΄μ§„ western μΈμŠ€ν„΄μŠ€
	Europe eastern = new Europe();  // Europe 클래슀둜 λ§Œλ“€μ–΄μ§„ eastern μΈμŠ€ν„΄μŠ€
	Europe nothern = new Europe();  // Europe 클래슀둜 λ§Œλ“€μ–΄μ§„ nothern μΈμŠ€ν„΄μŠ€
}

🀍 객체의 생성과 ν™œμš©

더보기
더보기

객체의 생성

  • ν‚€μ›Œλ“œ: new
클래슀λͺ… μ°Έμ‘°λ³€μˆ˜λͺ…;  // μΈμŠ€ν„΄μŠ€λ₯Ό μ°Έμ‘°ν•˜κΈ° μœ„ν•œ μ°Έμ‘°λ³€μˆ˜ μ„ μ–Έ
μ°Έμ‘°λ³€μˆ˜λͺ… = new μƒμ„±μž();  // μΈμŠ€ν„΄μŠ€ 생성 ν›„ κ°μ²΄μ£Όμ†Œλ₯Ό μ°Έμ‘°λ³€μˆ˜μ— μ €μž₯

// ν•œμ€„λ‘œ
클래슀λͺ… μ°Έμ‘°λ³€μˆ˜λͺ… = new μƒμ„±μž();
  • 클래슀 - 클래슀 μ˜μ—­μ—, μ°Έμ‘°λ³€μˆ˜λŠ” μŠ€νƒ μ˜μ—­μ— μ €μž₯
  • μƒμ„±μžλ‘œ λ§Œλ“€μ–΄μ§„ μΈμŠ€ν„΄μŠ€ - νž™ λ©”λͺ¨λ¦¬ μ˜μ—­μ— μ €μž₯
    • 객체 λ‚΄λΆ€: 클래슀 멀버듀(ν•„λ“œ, λ©”μ„œλ“œ, μ΄λ„ˆν΄λž˜μŠ€) μœ„μΉ˜
    • μ°Έμ‘°λ³€μˆ˜λŠ” 객체의 μ‹€μ œ 값이 μ•„λ‹Œ νž™μ— μ €μž₯된 μ£Όμ†Œκ°’μ„ 가리킴
  • λ©”μ„œλ“œ κ΅¬ν˜„μ½”λ“œ μœ„μΉ˜: 클래슀 μ˜μ—­μ— μ €μž₯, 객체 μ•ˆμ—μ„œ κ·Έ μœ„μΉ˜ 가리킴
    ⇒ 같은 클래슀둜 λ§Œλ“  λͺ¨λ“  κ°μ²΄λŠ” λ™μΌν•œ λ©”μ„œλ“œ 값을 곡유 → 같은 λ©”μ„œλ“œ μ—¬λŸ¬λ²ˆ μ„ μ–Έ X → ν•œλ²ˆλ§Œ μ €μž₯ν•˜κ³  ν•„μš”ν•œ 경우 κΊΌλ‚΄μ„œ μ‚¬μš©

객체의 ν™œμš©

  • ν‚€μ›Œλ“œ: . (포인트 μ—°μ‚°μž)
    • ν•΄λ‹Ή μœ„μΉ˜μ— μžˆλŠ” 객체 μ•ˆμ„ λ³΄λΌλŠ” 뜻
    • νŠΉμ • μΈμŠ€ν„΄μŠ€ 객체의 객체의 멀버듀(ν•„λ“œ, λ©”μ„œλ“œ)에 μ ‘κ·Ό κ°€λŠ₯
μ°Έμ‘°λ³€μˆ˜λͺ….ν•„λ“œλͺ…     // ν•„λ“œκ°’ 뢈러였기
μ°Έμ‘°λ³€μˆ˜λͺ….λ©”μ„œλ“œλͺ…()  // λ©”μ„œλ“œ 호좜

🀍 ν•„λ“œ

더보기
더보기
  • ν΄λž˜μŠ€μ— ν¬ν•¨λœ λ³€μˆ˜ ⇒ 객체 속성 μ •μ˜
  • ν•„λ“œμ— ν¬ν•¨λœ λ³€μˆ˜
    • ν΄λž˜μŠ€λ³€μˆ˜ (static)
      • κ³΅ν†΅λœ μ €μž₯곡간 곡유
      • 객체 생성 없이 μ‚¬μš© κ°€λŠ₯ ⇒ λ©”λͺ¨λ¦¬ μ €μž₯μœ„μΉ˜μ™€ κ΄€λ ¨μžˆμŒ
      • 클래슀λͺ….ν΄λž˜μŠ€λ³€μˆ˜λͺ…
    • μΈμŠ€ν„΄μŠ€λ³€μˆ˜
      • μΈμŠ€ν„΄μŠ€κ°€ κ°€μ§€λŠ” κ³ μœ ν•œ 속성 μ €μž₯
      • new μƒμ„±μžλ₯Ό 톡해 μΈμŠ€ν„΄μŠ€κ°€ 생성될 λ•Œ λ§Œλ“€μ–΄μ§
  • ν•„λ“œ ν¬ν•¨λ˜μ§€ μ•Šμ€ λ³€μˆ˜
    • μ§€μ—­λ³€μˆ˜
      • λ©”μ„œλ“œ λ‚΄ { } λΈ”λ‘μ—μ„œλ§Œ μ‚¬μš© κ°€λŠ₯ν•œ λ³€μˆ˜
  • ν•„λ“œλ³€μˆ˜μ™€ μ§€μ—­λ³€μˆ˜μ˜ 차이점: μ΄ˆκΈ°ν™”
    • ν•„λ“œλ³€μˆ˜: κ°•μ œ μ΄ˆκΈ°ν™”
    • μ§€μ—­λ³€μˆ˜: λ°˜λ“œμ‹œ μ΄ˆκΈ°ν™”

🀍 static

더보기
더보기
  • ν•„λ“œ, λ©”μ„œλ“œ, μ΄λ„ˆν΄λž˜μŠ€μ— μ‚¬μš©
  • 객체 κ°„ κ³΅ν†΅μœΌλ‘œ μ μš©λ˜λŠ” κ°’ 곡유
  • λͺ¨λ“  객체와 λ©”λͺ¨λ¦¬ 곡유
  • static ν‚€μ›Œλ“œκ°€ λΆ™μ–΄μžˆλŠ” 멀버: 정적 멀버(static member)
    • 클래슀 멀버 μ•žμ— μ‚¬μš© κ°€λŠ₯
  • μΈμŠ€ν„΄μŠ€ λ³€μˆ˜, μΈμŠ€ν„΄μŠ€ λ©”μ„œλ“œ μ‚¬μš© λΆˆκ°€
    • μΈμŠ€ν„΄μŠ€ 생성 없이 호좜이 κ°€λŠ₯ν•˜κΈ° λ•Œλ¬Έμ— 정적 λ©”μ„œλ“œκ°€ ν˜ΈμΆœλ˜μ—ˆμ„ λ•Œ μΈμŠ€ν„΄μŠ€κ°€ μ‘΄μž¬ν•˜μ§€ μ•Šμ„ 수 있기 λ•Œλ¬Έ!

🀍 λ©”μ„œλ“œ

더보기
더보기
  • νŠΉμ • μž‘μ—…μ„ μˆ˜ν–‰ν•˜λŠ” λͺ…λ Ήλ¬Έ 집합
  • 클래슀 κΈ°λŠ₯ λ‹΄λ‹Ή
  • λ©”μ„œλ“œ λͺ…: μ†Œλ¬Έμž
μžλ°”μ œμ–΄μž λ°˜ν™˜νƒ€μž… λ©”μ„œλ“œλͺ…(λ§€κ°œλ³€μˆ˜) {  // λ©”μ„œλ“œ μ‹œκ·Έλ‹ˆμ²˜
	λ©”μ„œλ“œ λ‚΄μš©  // λ©”μ„œλ“œ λ°”λ””
}

λ©”μ„œλ“œ 호좜

  • λ©”μ„œλ“œλ„ 클래슀의 λ©€λ²„μ΄λ―€λ‘œ 클래슀 μ™ΈλΆ€μ—μ„œ μΈμŠ€ν„΄μŠ€ μ‚¬μš©ν•˜λ €λ©΄ μΈμŠ€ν„΄μŠ€ 생성해야함
    • 포인트 μ—°μ‚°μž(.)λ₯Ό 톡해 λ©”μ„œλ“œ 호좜
λ©”μ„œλ“œμ΄λ¦„(λ§€κ°œλ³€μˆ˜1, λ§€κ°œλ³€μˆ˜2, ...);

🀍 λ©”μ„œλ“œ μ˜€λ²„λΌμ΄λ”©

더보기
더보기
  • ν•˜λ‚˜μ˜ 클래슀 μ•ˆμ— 같은 μ΄λ¦„μ˜ λ©”μ„œλ“œλ₯Ό μ—¬λŸ¬κ°œ μ •μ˜ν•˜λŠ” 것
  • μž₯점: ν•˜λ‚˜μ˜ λ©”μ„œλ“œλ‘œ μ—¬λŸ¬ 경우의 수 ν•΄κ²° κ°€λŠ₯

성립쑰건

  • λ©”μ„œλ“œμ˜ 이름이 κ°™μ•„μ•Ό 함
  • λ©”μ„œλ“œμ˜ 갯수 λ˜λŠ” νƒ€μž…μ΄ 달라야 함

πŸ’› λΈ”λ‘œκΉ… μ„Έμ…˜

  • λΈ”λ‘œκ·Έλ₯Ό ν•˜λŠ” 이유
    • μžŠμ–΄λ²„λ¦¬μ§€ μ•ŠμœΌλ €κ³ 
    • λ‚΄κ²ƒμœΌλ‘œ λ§Œλ“€κΈ° μœ„ν•΄ κΈ°λ‘ν•˜λ €κ³ 
    • 문제 해결에 λŒ€μ²˜ν•˜λŠ” 과정을 λ‹΄μœΌλ €κ³ 
    • λ‚΄κ°€ 뭘 λͺ¨λ₯΄λŠ”지 μ•ŒκΈ° μœ„ν•΄μ„œ
  • πŸ€” μ–΄λ–»κ²Œ μ‹œμž‘ν•˜μ§€? 
    • λΈ”λ‘œκ·Έλ₯Ό λ§Œλ“ λ‹€ -> 글을 μ“΄λ‹€
  • 개발자 λΈ”λ‘œκ·Έμ—μ„œ 써보면 쒋을 μ£Όμ œλ“€ πŸ“
    • TIL(Today I learned)
      • 였늘 λ‚΄κ°€ 배운 것 기둝
    • Error Handling Log
      • λ°œμƒν•œ μ—λŸ¬κ°€ λ­λ•Œλ¬Έμ΄μ—ˆκ³ , μ–΄λ–»κ²Œ ν•΄κ²°ν–ˆλŠ”μ§€ 기둝
    • 회고 - μ§„μ‹¬μ—μ„œ μš°λŸ¬λ‚˜μ˜€λŠ” 회고
      • λ‚˜μ˜ ν•œμ£Ό/ν•œλ‹¬λ™μ•ˆ(κΈ°κ°„) μ’‹μ•˜λ˜ 점, μ•„μ‰¬μ› λ˜ 점, κ°œμ„ ν•  점 λ“± 기둝
      • 보여주기 μ‹μ˜ νšŒκ³ λŠ” μ•„λ¬΄λŸ° μ˜λ―Έκ°€ μ—†μŒ
  • 마무리
    • λΈ”λ‘œκ·Έλ₯Ό μ“°λ©΄μ„œ 슀슀둜 λ°œμ „μ΄ κ°€λŠ₯ν•  수 μžˆλ„λ‘ μžκΈ°κ°κ΄€ν™”λ₯Ό ν•˜λŠ” 것이 μ€‘μš”ν•¨
    • μ‹œμž‘ν•˜λŠ” 것에 μ–΄λ–€ κ³„μ‹œλ₯Ό 기닀리지 말고 ν•˜λ£¨ 세쀄이라도 맀일 써보기!

πŸ’œ μ˜€λŠ˜μ˜ 생각 쑰각λͺ¨μŒ

  • 객체지ν–₯을 κ³΅λΆ€ν–ˆλŠ”λ° μžλ°”κΈ°μ΄ˆ(νƒ€μž…, ν˜•λ³€ν™˜, μ œμ–΄λ¬Έ, λ°°μ—΄ ...) 보닀 훨씬 ν• λ§Œν–ˆλ‹€!! 머리 μ₯μ–΄λœ―μœΌλ©΄μ„œ μ΄ν•΄ν•˜λ €κ³  μ• μΌλ˜ μ‹œκ°„λ“€μ΄ μŠ€μ³μ§€λ‚˜κ°”λ‹€ πŸ₯² μ™œ 이해λ₯Ό λͺ»ν•˜λƒκ³  슀슀둜λ₯Ό μ—„μ²­ 듀듀달달 λ³Άμ•˜λŠ”λ°!! γ…‹γ…‹ 사싀 제곡된 컨텐츠λ₯Ό μ†ŒλΉ„ν•˜λŠ”λ° μ’€ μ‘Έλ €μ„œ 띄엄띄엄 λ΄€λŠ”λ°λ„ 였늘 ν•œ λ‚΄μš©λ“€μ˜ λŒ€λž΅μ μΈ 것듀은 μ•Œκ² μ–΄μ„œ 이번주 λ“€μ–΄ 처음으둜 큰 감정변화 없이 λΌμ΄λΈŒμ„Έμ…˜μ„ 듀을 수 μžˆμ—ˆλ‹€!πŸ™ŒπŸ»
  • κ·Έλž˜λ„! 아직 계속 ν—·κ°ˆλ¦¬λŠ” 뢀뢄도 있고 잘 λͺ¨λ₯΄λŠ” 뢀뢄도 λ‹Ήμ—°νžˆ μžˆμœΌλ‹ˆκΉŒ μ˜€λŠ˜λΆ€ν„° μ •λ¦¬ν•΄λ†¨λ˜ 객체지ν–₯ 읽어야겠닀.
  • μ–΄λ €μš΄ λ‚΄μš©μ„ λ‚΄κ²ƒμœΌλ‘œ λ§Œλ“€ 수 μžˆλŠ” 방법 쀑 ν•˜λ‚˜μΈ λΈ”λ‘œκ·Έ μ“°κΈ°!에 κ΄€ν•œ μ„Έμ…˜μ΄ μžˆμ—ˆλ‹€. κ°•μ˜ν•˜μ‹œλŠ” 뢄이 말씀을 재미있게 ν•˜μ…”μ„œ μ‹œκ°„κ°€λŠ” 쀄 λͺ¨λ₯΄κ³  λ“€μ—ˆλ˜ 것 κ°™λ‹€. 그리고 무엇보닀 고양이 μ„Έλ§ˆλ¦¬ ν‚€μš΄λ‹€κ³  ν•˜μ‹ κ²Œ 계속 생각났닀.😹
  • μ œμ–΄λ¬Έ Optional 해보렀고 ν•˜λŠ”λ° γ…‹γ…‹γ…‹γ…‹γ…‹γ…‹γ…‹γ…‹ 와...μ΄λ ‡κ²Œ 아웃풋이 μ•ˆλ μˆ˜κ°€ μžˆλ‚˜ γ…‹γ…‹γ…‹γ…‹γ…‹γ…‹γ…‹γ…‹γ…Žγ…Žγ…Žγ…Žγ…Žγ…‹γ…‹γ…‹ 어이가 μ—†μ–΄μ„œ ν—›μ›ƒμŒμ΄ λ‚˜μ˜¨λ‹€!!1 μ—­μ‹œ 이둠과 μ‹€μ œμ˜ 괴리!!! μŒμ•… 이둠 척척박사라고 ν”Όμ•„λ…Έ 잘 치고 λ°”μ΄μ˜¬λ¦° 잘 μΌœλŠ”κ±° μ•„λ‹ˆλ‹ˆκΉŒ... 🎻

'SEB > TIL' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

013 | Java - Inheritance, Encapsulation  (2) 2022.07.11
012 | Java - constructor, inner class  (0) 2022.07.08
010 | Java - Array  (0) 2022.07.06
009 | Java - μ œμ–΄λ¬Έ  (0) 2022.07.05
008 | Java - Variable, Type, String, Operator, I/O  (0) 2022.07.04
Comments