λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

STUDY/JAVA

(28)
μΆ”μƒν΄λž˜μŠ€(Abastract) κ°œλ… 및 예제 μΆ”μƒμ΄λž€? 싀체 κ°„μ˜ κ³΅ν†΅λœ νŠΉμ„±μ„ μΆ”μΆœν•˜λŠ” 것을 λ§ν•œλ‹€. μΆ”μƒν΄λž˜μŠ€λŠ” ν΄λž˜μŠ€λ“€κ°„μ˜ κ³΅ν†΅λœ νŠΉμ„±μ„ μΆ”μΆœν•΄μ„œ μ„ μ–Έν•œ 클래슀λ₯Ό λ§ν•˜λ©° 좔상 ν΄λž˜μŠ€μ™€ μ›λž˜μ˜ 클래슀(싀체 클래슀)λ“€ κ°„μ—λŠ” μƒμ†μ˜ 관계λ₯Ό 가지고 μžˆλ‹€. μΆ”μƒν΄λž˜μŠ€κ°€ λΆ€λͺ¨ ν΄λž˜μŠ€κ°€ 되고 μ‹€μ²΄ν΄λž˜μŠ€λ“€μ΄ μžμ‹ ν΄λž˜μŠ€κ°€ λ˜μ–΄ λΆ€λͺ¨μ˜ λͺ¨λ“  νŠΉμ„±μ„ 가지고 좔가적인 νŠΉμ„±μ„ κ°€μ§ˆ 수 μžˆλ‹€. 예λ₯Ό λ“€μ–΄ iphone.class, galaxy.class, balckberry.classκ°€ μžˆμ„ λ•Œ μ΄λ“€μ˜ κ³΅ν†΅λ˜λŠ” νŠΉμ„±μ„ μΆ”μΆœν•΄ phone.class λΌλŠ” μΆ”μƒν΄λž˜μŠ€λ₯Ό λ§Œλ“€ 수 μžˆλ‹€. 이 μΆ”μƒν΄λž˜μŠ€λŠ” 객체λ₯Ό 직접 μƒμ„±ν•΄μ„œ μ‚¬μš©ν•  수 μ—†λ‹€. = new μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•΄ μΈμŠ€ν„΄μŠ€λ₯Ό μ‚¬μš©ν•  수 μ—†λ‹€. 그러면 좔상 클래슀λ₯Ό μ™œ μ‚¬μš©ν• κΉŒ? 1. 싀체 ν΄λž˜μŠ€λ“€μ˜ κ³΅ν†΅λœ ν•„λ“œμ™€ λ©”μ†Œλ“œ..
μ—΄κ±°νƒ€μž…(Enumeration type) μ—΄κ±°νƒ€μž… : ν•œμ •λœ κ°’λ§Œμ„ κ°–λŠ” 데이터 νƒ€μž… 예λ₯Όλ“€μ–΄ μΌμ£ΌμΌμ—λŠ” μ›”,ν™”,수,λͺ©,금,ν† ,일만 있고 1λ…„μ•ˆμ—λŠ” 1~12μ›”λ§Œ μžˆλŠ” κ²ƒμ²˜λŸΌ μ—΄κ±°νƒ€μž…μ€ κ΄€λ‘€μ μœΌλ‘œ 첫 λ¬ΈμžλŠ” λŒ€λ¬Έμž, λ‚˜λ¨Έμ§€λŠ” μ†Œλ¬Έμžλ‘œ ꡬ성 μ—΄κ±° νƒ€μž… μ΄λ¦„μœΌλ‘œ μ†ŒμŠ€νŒŒμΌμ„ 생성 μ΄λ ‡κ²Œ 생성 & μ‚¬μš© ν•  수 μžˆλ‹€.
string λ°°μ—΄ 비ꡐ(μ°Έμ‘°νƒ€μž… λ°°μ—΄ 비ꡐ) 배열은 각 ν•­λͺ©μ— 직접 값을 κ°–κ³  μžˆμ§€λ§Œ μ°Έμ‘°νƒ€μž…(클래슀, μΈν„°νŽ˜μ΄μŠ€) 배열은 각 ν•­λͺ©μ— 객체의 λ²ˆμ§€λ₯Ό 가지고 있음. string(ν΄λž˜μŠ€νƒ€μž…) 배열은 각 ν•­λͺ©μ— λ¬Έμžμ—΄ κ·Έ 자체λ₯Ό 가지고 μžˆλŠ” 것이 μ•„λ‹ˆλΌ κ·Έ 객체의 μ£Όμ†Œλ₯Ό 가지고 있음. κ·Έλž˜μ„œ λ°°μ—΄ ν•­λͺ© 간에 λ¬Έμžμ—΄μ„ λΉ„κ΅ν•˜κΈ° μœ„ν•΄μ„œλŠ” == μ—°μ‚°μž(객체의 λ²ˆμ§€λΉ„κ΅) λŒ€μ‹  equals() λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•΄μ•Ό 함 처음 비ꡐ값은 "java"λΌλŠ” λ™μΌν•œ 객체λ₯Ό μ°Έμ‘°ν•˜κΈ° λ•Œλ¬Έμ— trueκ°€ λ‚˜μ˜€κ³  λ‘λ²ˆμ§ΈλŠ” String 객체λ₯Ό new μ—°μ‚°μžλ‘œ 생성해 μƒˆλ‘œμš΄ String 객체가 μƒμ„±λ˜κΈ° λ•Œλ¬Έμ— λ‹€λ₯Έ 객체λ₯Ό μ°Έμ‘°ν•˜λ―€λ‘œ false μ„Έλ²ˆμ§ΈλŠ” equals()λ©”μ†Œλ“œλ‘œ λ¬Έμžμ—΄λ§Œ λΉ„κ΅ν–ˆκΈ° λ•Œλ¬Έμ— trueκ°€ λ‚˜μ˜¨λ‹€.
List와 Array(λ°°μ—΄)의 차이점 + ArrayList 1. List : μΈλ±μŠ€μ—†μ΄ 순차적으둜 μ €μž₯된 λ°μ΄ν„°λ“€μ˜ 집합을 λ§ν•œλ‹€. νŠΉμ§• 1. 연속적인 곡간에 μžˆμ§€ μ•ŠμŒ(λΆ„μ‚°λ˜μ–΄ μ €μž₯됨) 2. 크기가 고정적이지 μ•ŠμŒ(μžλ°”μ—μ„œλŠ” 크기가 μžλ™μœΌλ‘œ 1.5λ°°μ”© λŠ˜μ–΄λ‚¨) 3. 쀑간에 데이터 μ‚½μž…μ΄λ‚˜ μ‚­μ œκ°€ 쉬움 4. μ“°μ§€μ•ŠλŠ” λ©”λͺ¨λ¦¬ ν• λ‹ΉλŸ‰μ΄ λ§Žμ•„μ§ 2. Array(λ°°μ—΄) : 인덱슀λ₯Ό 가진 λ°μ΄ν„°λ“€μ˜ 집합을 λ§ν•œλ‹€. νŠΉμ§• 1. μ—°μ†λœ λ©”λͺ¨λ¦¬ 곡간에 ν• λ‹Ήλ˜μ–΄ 있음. 2. κ·ΈλŸ¬λ―€λ‘œ μΈλ±μŠ€κ°€ 있고 3. 크기가 κ³ μ •λ˜μ–΄ 있음(객체 생성 μ‹œ 크기할당) 4. 쀑간에 데이터 μ‚½μž…μ΄λ‚˜ μ‚­μ œκ°€ μ–΄λ ΅λ‹€. 5. 크기가 μ •ν•΄μ Έ μžˆλŠ” 데이터λ₯Ό μ‚¬μš©ν•œλ‹€λ©΄ Arrayκ°€ 더 효율적 JAVA의 Listμ’…λ₯˜μ—λŠ” ArrayList와 LinkedListκ°€ μžˆλ‹€. 3. LinkedList : νŠΉμ§• 1. Lin..
μ˜€λ²„λ‘œλ”©κ³Ό μ˜€λ²„λΌμ΄λ”©μ˜ 차이점 1. μ˜€λ²„λ‘œλ”©(Overloading) : 같은 클래슀 λ‚΄μ—μ„œ 이름은 κ°™μ§€λ§Œ λ§€κ°œλ³€μˆ˜μ˜ κ°―μˆ˜λ‚˜ νƒ€μž…μ΄ λ‹€λ₯Έ λ©”μ†Œλ“œλ₯Ό μ •μ˜ν•˜λŠ” 것. νŠΉμ§• : 1. λ©”μ†Œλ“œμ˜ 이름이 같아야함 2. μ˜€λ²„λ‘œλ”©ν•˜λŠ” λ©”μ„œλ“œμ™€μ˜ 차이점이 μžˆμ–΄μ•Όν•¨(λ§€κ°œλ³€μˆ˜μ˜ 개수, 데이터 νƒ€μž…) 3. 차이점에 λ¦¬ν„΄ν˜•μ€ ν¬ν•¨λ˜μ§€ μ•ŠμŒ μ΄λŸ°μ‹μœΌλ‘œ μ‚¬κ°ν˜•μ˜ 크기λ₯Ό κ΅¬ν•˜λŠ” λ©”μ„œλ“œλ₯Ό μ •μ‚¬κ°ν˜•μΌ κ²½μš°μ—λŠ” widthν•˜λ‚˜λ§Œ, μ§μ‚¬κ°ν˜•μΌ κ²½μš°μ—λŠ” width, height 두가지λ₯Ό μ΄μš©ν•΄μ„œ μ˜€λ²„λ‘œλ”©ν•  수 μžˆλ‹€. 2. μ˜€λ²„λΌμ΄λ”©(Overriding) μ˜€λ²„λΌμ΄λ”©μ€ μƒμœ„ν΄λž˜μŠ€μ˜ λ©”μ„œλ“œλ₯Ό ν•˜μœ„ν΄λž˜μŠ€μ—μ„œ μž¬μ •μ˜ν•˜λŠ” 것. νŠΉμ§• : 1. μƒμœ„ν΄λž˜μŠ€μ— 같은 μ΄λ¦„μ˜ λ©”μ„œλ“œκ°€ μ‘΄μž¬ν•΄μ•Ό 함 2. μƒμœ„ν΄λž˜μŠ€μ˜ λ§€κ°œλ³€μˆ˜μ™€ λ°˜ν™˜ν˜•μ΄ κ°™μ•„μ•Ό 함 3. 객체지ν–₯ μ–Έμ–΄μ˜ νŠΉμ§•μΈ λ‹€ν˜•μ„± 쀑 ν•˜λ‚˜ 4. μƒˆ..
JAVA - Stream(슀트림) 슀트림 ? μ—¬λŸ¬ 자료의 μ²˜λ¦¬μ— λŒ€ν•œ κΈ°λŠ₯을 κ΅¬ν˜„ν•΄ 놓은 클래슀 1. 슀트림 νŠΉμ§• - 자료의 λŒ€μƒκ³Ό 상관없이 항상 λ™μΌν•œ 연산을 μˆ˜ν–‰ - ν•œ 번 생성 & μ‚¬μš©ν•œ μŠ€νŠΈλ¦Όμ€ μž¬μ‚¬μš© ν•  수 μ—†μŒ - 슀트림의 연산은 κΈ°μ‘΄ μžλ£Œμ— 영ν–₯을 주지 μ•ŠμŒ 2. μŠ€νŠΈλ¦Όμ—°μ‚°μ—λŠ” 쀑간연산과 μ΅œμ’…μ—°μ‚° 두 가지가 있음 - 쀑간연산 : 자료λ₯Ό κ±°λ₯΄κ±°λ‚˜ λ³€κ²½ν•˜μ—¬ 또 λ‹€λ₯Έ 자료λ₯Ό λ‚΄λΆ€μ μœΌλ‘œ 생성 - μ΅œμ’…μ—°μ‚° : μƒμ„±λœ λ‚΄λΆ€μžλ£Œλ₯Ό μ†Œλͺ¨ν•΄ κ°€λ©΄μ„œ 연산을 μˆ˜ν–‰ 쀑간연산 : filter(), map() filter() : 쑰건을 λ„£κ³  κ·Έ 쑰건에 참인 경우만 μΆ”μΆœ map() : μ΄λ¦„λ§Œ 좜λ ₯ μ΅œμ’…μ—°μ‚° : forEach(), count(), sum(), reduce() forEach() : ν•˜λ‚˜μ”© 좜λ ₯ count() : 개수 좜λ ₯ sum() : ν•©..
JAVA - @Override(λ©”μ†Œλ“œ μž¬μ •μ˜) @Override(λ©”μ†Œλ“œ μž¬μ •μ˜) ? μƒμ†λœ λ©”μ†Œλ“œμ˜ λ‚΄μš©μ΄ μžμ‹ ν΄λž˜μŠ€μ— λ§žμ§€ μ•Šμ„ λ•Œ μžμ‹ν΄λž˜μŠ€μ—μ„œ λ™μΌν•œ λ©”μ†Œλ“œλ₯Ό μž¬μ •μ˜ 이후에 μžμ‹ κ°μ²΄μ—μ„œ ν•΄λ‹Ή λ©”μ†Œλ“œλ₯Ό ν˜ΈμΆœν•˜λ©΄ μ˜€λ²„λΌμ΄λ”©λœ μžμ‹ λ©”μ†Œλ“œκ°€ 호좜됨. * κ·œμΉ™ 1. λΆ€λͺ¨μ˜ λ©”μ†Œλ“œμ™€ λ™μΌν•œ λ¦¬ν„΄νƒ€μž…, λ©”μ†Œλ“œ 이름, λ§€κ°œλ³€μˆ˜ 리슀트λ₯Ό κ°€μ Έμ•Ό 함 2. μ ‘κ·Ό μ œν•œμ„ 더 κ°•ν•˜κ²Œ μ˜€λ²„λΌμ΄λ”©ν•  수 μ—†λ‹€. 3. μƒˆλ‘œμš΄ μ˜ˆμ™Έλ₯Ό throwsν•  수 μ—†λ‹€. * 단좕킀 μƒμ†ν•œ λ’€ shift + alt + s -> v(Override/Implement Methods)
JAVA - 상속(Inheritance) 상속 ? λΆ€λͺ¨ 클래슀의 멀버λ₯Ό μƒμ†λœ μžμ‹ ν΄λž˜μŠ€μ—μ„œλ„ μ‚¬μš© ν•  수 있음 μ½”λ“œμ˜ 쀑볡을 μ€„μ—¬μ€Œ λΆ€λͺ¨ν΄λž˜μŠ€μ—μ„œ private μ ‘κ·Ό μ œν•œμžλ₯Ό 가진 ν•„λ“œμ™€ λ©”μ„œλ“œλŠ” 상속 λŒ€μƒμ—μ„œ μ œμ™Έ 상속 java 문법 class μžμ‹ν΄λž˜μŠ€ extends λΆ€λͺ¨ν΄λž˜μŠ€ { //ν•„λ“œ //λ©”μ„œλ“œ //μƒμ„±μž } 1. λΆ€λͺ¨ν΄λž˜μŠ€ 생성 2. μžμ‹ 클래슀 생성 (model, color은 λΆ€λͺ¨ ν΄λž˜μŠ€μ—μ„œ μƒμ†λ°›μŒ) 3. λΆ€λͺ¨μ™€ μžμ‹ 클래슀 λͺ¨λ‘ μ‚¬μš©ν•  클래슀 생성 3-0. DmbCellPhone dcp = new DmbCellPhone -> 객체만 μƒμ„±ν•˜λŠ” κ²ƒμ²˜λŸΌ λ³΄μ΄μ§€λ§Œ DmbCellPhoneμ—μ„œ μƒμ†ν•˜λŠ” λΆ€λͺ¨μΈ CellPhoneκ°€ λ¨Όμ € μƒμ„±λ˜κ³ , DmbCellPhone κ°€ μƒμ„±λœλ‹€. 3-1. CellPhone 의 ν•„λ“œ μ‚¬μš© 3-2. Dm..

λ°˜μ‘ν˜•