ν’€μŠ€νƒ 개발자 μ–‘μ„±κ³Όμ • πŸͺ«/γ€Ž Java 』

객체지ν–₯의 4가지 νŠΉμ§• 1. μΊ‘μŠν™” λ°μ΄ν„°μ™€ κ·Έ 데이터λ₯Ό μ²˜λ¦¬ν•˜λŠ” λ©”μ†Œλ“œλ₯Ό ν•˜λ‚˜μ˜ λ‹¨μœ„λ‘œ λ¬ΆλŠ” κ²ƒμž…λ‹ˆλ‹€. μ΄λ₯Ό 톡해 λ‚΄λΆ€ κ΅¬ν˜„μ„ 숨기고, μ™ΈλΆ€μ—μ„œ 직접 μ ‘κ·Όν•˜μ§€ λͺ»ν•˜λ„둝 λ³΄ν˜Έν•©λ‹ˆλ‹€.클래슀 λ‚΄λΆ€μ˜ λ³€μˆ˜λŠ” private둜 μ„ μ–Έν•˜κ³ , μ™ΈλΆ€μ—μ„œ μ ‘κ·Όν•˜κΈ° μœ„ν•΄ getter와 setter λ©”μ†Œλ“œλ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.  2. μƒμ†ν΄λž˜μŠ€λ₯Ό 톡해 λ‹€λ₯Έ 클래슀의 속성과 λ©”μ„œλ“œλ₯Ό 물렀받은 κΈ°λŠ₯μž…λ‹ˆλ‹€.이λ₯Ό 톡해 μ½”λ“œμ˜ μž¬μ‚¬μš©μ„±μ„ 높이고, 계측 ꡬ쑰λ₯Ό ν˜•μ„±ν•  수 μžˆμŠ΅λ‹ˆλ‹€.  μžμ‹ ν΄λž˜μŠ€λŠ” λΆ€λͺ¨ 클래슀의 속성과 λ©”μ„œλ“œλ₯Ό 상속받아 μ‚¬μš©ν•  수 있으며 ,ν•„μš”μ— 따라 λ©”μ„œλ“œλ₯Ό μ˜€λ²„λΌμ΄λ“œν•˜μ—¬ λ³€κ²½ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 3. λ‹€ν˜•μ„±κ°™μ€ μ΄λ¦„μ˜ λ©”μ†Œλ“œκ°€ μ„œλ‘œ λ‹€λ₯Έ λ™μž‘μ„ ν•  수 μžˆλŠ” μ„±μ§ˆμž…λ‹ˆλ‹€.  μ΄λŠ” λ©”μ„œλ“œ μ˜€λ²„λ‘œλ”©(같은 λ©”μ„œλ“œ 이름을 μ‚¬μš©ν•˜λ˜ λ§€κ°œλ³€..
μ›Ή ν¬λ‘€λ§μ΄λž€?λ‹€μ–‘ν•œ 정보 μžμ›μ„ μžλ™ν™”λœ λ°©λ²•μœΌλ‘œ μˆ˜μ§‘ν•΄μ„œ λΆ„λ₯˜ 및 μ €μž₯ν•˜λŠ” 것 μ›Ήμ˜ λ‹€μ–‘ν•œ 정보λ₯Ό μžλ™μœΌλ‘œ κ²€μƒ‰ν•˜κ³  λ°μ΄ν„°λ‘œ μΆ”μΆœν•˜κΈ° μœ„ν•΄ μ‚¬μš©λœλ‹€.  μ •μ  크둀링 -> μ›Ή νŽ˜μ΄μ§€μ—λ§Œ μ ‘κ·Ό νŽ˜μ΄μ§€μ— 직접 μž‘μ„±λœ λ°μ΄ν„°λ§Œ μ ‘κ·Ό κ°€λŠ₯ν•˜λ‹€. "νŽ˜μ΄μ§€ μ†ŒμŠ€ μ½”λ“œλ³΄κΈ° " 둜 λ³΄μ΄λŠ” λ°μ΄ν„°λ§Œ κ°€μ Έμ˜€λŠ”κ²ƒ ex) jsoup λ™μ  크둀링-> μ›Ή νŽ˜μ΄μ§€κ°€ μ°Έμ‘°ν•˜λŠ” λ°μ΄ν„°κΉŒμ§€ μ ‘κ·Όκ°€λŠ₯ λ³Έ μ„œλ²„μ˜ 데이터λ₯Ό μ•”ν˜Έν™”(은닉) ν–ˆλ‹€λ©΄ μ ‘κ·Ό λΆˆκ°€λŠ₯ex) μ…€λ ˆλ‹ˆμ›€ (μ›Ή 포트폴리였 μž‘μ—…μ„ ν• λ•Œ 주둜 μ‚¬μš©)  DocumentsDocumentsλž€ μ›Ή νŽ˜μ΄μ§€μ˜ ν™”λ©΄ λ¬Έμ„œλ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€.  Jsoup에 λŒ€ν•΄ μ•Œμ•„λ³΄κΈ°μ „μ—  λ¨Όμ € parser에 λŒ€ν•΄ μ•Œμ•„μ•Ό ν•©λ‹ˆλ‹€.그런데 parserλΌλŠ” κ°œλ…μ€ 처음 λ“£λŠ” μ‚¬λžŒλ“€μ΄ λ§Žμ„ κ²ƒμž…λ‹ˆλ‹€. (저도 처음 λ“€μ—ˆ..
μ»¬λ ‰μ…˜ ν”„λ ˆμž„μ›Œν¬μžλ°”μ˜ μ»¬λ ‰μ…˜μ€ 데이터λ₯Ό 효율적으둜 μ €μž₯ν•˜κ³  관리할 수 μžˆλŠ” ν”„λ ˆμž„μ›Œν¬μž…λ‹ˆλ‹€.  μ»¬λ ‰μ…˜μ˜ μ’…λ₯˜ μ»¬λ ‰μ…˜μ—λŠ” λ‹€μ–‘ν•œ μ’…λ₯˜κ°€ μžˆμŠ΅λ‹ˆλ‹€. ex) λ°°μ—΄λ¦¬μŠ€νŠΈ, μ—°κ²°λ¦¬μŠ€νŠΈ, 집합, 맡, 트리 λ“±λ“±  κ·Έμ€‘ 자주 μ‚¬μš©λ˜λŠ” 건 λ°°μ—΄λ¦¬μŠ€νŠΈμ™€ 맡이 μžˆμŠ΅λ‹ˆλ‹€.(μ½”λ”© ν…ŒμŠ€νŠΈλ₯Ό 볼거라면 μ—°κ²°λ¦¬μŠ€νŠΈ, 집합 νŠΈλ¦¬κΉŒμ§€ μ•Œμ•„μ•Ό 함)  λ°°μ—΄λ¦¬μŠ€νŠΈμžλ°”μ˜ λŒ€ν‘œμ μΈ μ»¬λ ‰μ…˜ ν΄λž˜μŠ€μ€‘ ν•˜λ‚˜μž…λ‹ˆλ‹€.  λ°°μ—΄λ¦¬μŠ€νŠΈμ˜ νŠΉμ§• λͺ¨λ“  μ»¬λ ‰μ…˜μ΄ toString() μ˜€λ²„λΌμ΄λ”© λ˜μ–΄ μžˆμ–΄μ„œ μ „μ²΄μΆœλ ₯이 μ΄μ˜λ‹€. λ‹€μ–‘ν•œ λ©”μ„œλ“œλ“€μ΄ 이미 λ§Œλ“€μ–΄μ Έμžˆλ‹€.μ›λž˜ μžλ£Œν˜• μ œν•œμ΄ 없기에 μžλ£Œν˜•μ„ "κ°•μ œ"ν•΄μ„œ μ‚¬μš©ν•¨ ( == μ œλ„€λ¦­ )  λ°°μ—΄λ¦¬μŠ€νŠΈ VS λ°°μ—΄ κ°œμˆ˜κ°€ λ¬΄μ œν•œ VS κ°œμˆ˜κ°€ 정해짐 ν¬κΈ°κ°€ 가변적 VS 크기가 고정됨null값을 ν—ˆμš©ν•¨ VS null값을 ν—ˆ..
μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ 두 가지 μ£Όμš” λΆ€λΆ„ μ‚¬μš©μžμ™€ λ‹Ώμ•„μžˆλŠ” λΆ€λΆ„ == Front End데이터λ₯Ό 쑰금 λ‹€λ£° 수 μžˆλ‹€. ν”„λ‘œκ·Έλž¨μ—μ„œ κΈ°λŠ₯을 μˆ˜ν–‰ν•˜λŠ” λΆ€λΆ„ == Back End, Server, DataBase1) DB & DBMS (MySQL, 였라클)2) μ„œλΉ„μŠ€, Controlloer, λΉ„μ¦ˆλ‹ˆμŠ€ 단   MVCV (view) [Front-End]viewλŠ” μ‚¬μš©μžμ˜ μž…μΆœλ ₯을 κ°μ§€ν•˜κ³  μ²˜λ¦¬ν•©λ‹ˆλ‹€. μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€λ₯Ό κ΅¬ν˜„ν•©λ‹ˆλ‹€. syso, Scanner ν˜Ήμ€ console창에 λ³΄μ΄λŠ” 것은 view에 만 있고 Model μ΄λ‚˜ Controllerμ—λŠ” μ—†λ‹€.  μΆœλ ₯ λ©”μ„œλ“œ, μž…λ ₯을 λ°›μ•„μ˜€λŠ” λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•œλ‹€.   M (model) [Back-End]ν”„λ‘œκ·Έλž¨μ—μ„œ κΈ°λŠ₯을 μˆ˜ν–‰ν•˜λŠ” 뢀뢄이닀. DB / DBMSκ°€ μžˆλ‹€.  DAOλŠ” ..
λŠ₯λ ₯ λ‹¨μœ„ 평가 κ΅­λΉ„μˆ˜μ—… 10일 μ°¨μ—λŠ” λŠ₯λ ₯ λ‹¨μœ„ ν‰κ°€λΌλŠ” μ‹œν—˜μ„ λ³΄μ•˜μŠ΅λ‹ˆλ‹€.  μ‹œν—˜μ΄λΌκ³  ν•˜μ§€λ§Œ 사싀 νŒ€ ν”„λ‘œμ νŠΈμ˜ μ½”λ“œλ₯Ό μ˜¬λ¦¬λŠ” 게 μ‹œν—˜λ¬Έμ œμ˜€μŠ΅λ‹ˆλ‹€.  μ½”λ“œλ¦¬λ·°μ˜€μ „μ—λŠ” μ½”λ“œμ™€ λ…Έμ…˜μ˜ μ•„μ‰¬μš΄ 뢀뢄을 μˆ˜μ •ν•˜μ˜€κ³  μ˜€ν›„κ°€ 되기 μ „ 12μ‹œλΆ€ν„° κ°•μ‚¬λ‹˜κ»˜ νŒ€ ν”„λ‘œμ νŠΈλ₯Ό ν–ˆλ˜ μ½”λ“œλ₯Ό 가지고 κ°€μ„œ νŒ€μ›λΆ„λ“€κ³Ό ν•¨κ»˜ μ½”λ“œ λ¦¬λ·°λŠλ‚ŒμœΌλ‘œ κ°„λ‹¨ν•œ 평가λ₯Ό μ§„ν–‰ν•˜μ˜€μŠ΅λ‹ˆλ‹€. κ°μž 맑은 뢀뢄을 μ„€λͺ…ν•˜λ©° κ°•μ‚¬λ‹˜κ»˜ μ„€λͺ…을 λ“œλ¦¬λ©΄ κ°•μ‚¬λ‹˜μ΄ μ§ˆλ¬Έμ„ ν•˜λŠ” ν˜•μ‹μœΌλ‘œ μ§„ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€.  μ—„μ²­ κΈ΄μž₯λ˜μ—ˆμ§€λ§Œ κΈ΄μž₯λ˜λŠ” λ§ˆμŒμ„ 참으며 μ œκ°€ 맑은 뢀뢄을 μ„€λͺ…ν•˜μ˜€μŠ΅λ‹ˆλ‹€.  λ¬΄μ‚¬νžˆ μ½”λ“œλ¦¬λ·°κ°€ 마무리 λ˜μ—ˆκ³  κ°„λ‹¨νžˆ ν”Όλ“œλ°±λ°›μ€ 뢀뢄을 정리해 λ³΄μ•˜μŠ΅λ‹ˆλ‹€.  νŒ€ ν”„λ‘œμ νŠΈ μ½”λ“œ package test03;import java.util.Random;import java..
κ΅­λΉ„μˆ˜μ—… 9일 μ°¨μ—λŠ” μ§€κΈˆκΉŒμ§€ 배운 λ‚΄μš©μ„ λ³΅μŠ΅ν•˜κ³  νŒ€ ν”„λ‘œμ νŠΈμ— λŒ€ν•΄ μ†Œκ°œν•œ λ‹€μŒ 마무리 ν•˜μ˜€μœΌλ―€λ‘œ μ €λŠ” μ œκ°€ 이해가 μ•ˆ 됐던 μš©μ–΄λ“€μ— λŒ€ν•΄ μ •λ¦¬ν•œ λ‚΄μš©μ„ ν¬μŠ€νŒ…ν•˜κ² μŠ΅λ‹ˆλ‹€.  μžλ°”μš©μ–΄μ •λ¦¬βœοΈ package (νŒ¨ν‚€μ§€)       클래슀λ₯Ό λ³΄κ΄€ν•΄μ£ΌλŠ” μƒμž 같은 λŠλ‚Œ  βœοΈ class (클래슀)     λ³€μˆ˜μ™€ λ©”μ†Œλ“œλ₯Ό 가지고 μžˆλŠ” 집합이닀.     class ν‚€μ›Œλ“œλ‘œ μ •μ˜λ₯Ό ν•œ λ‹€μŒ new μ—°μ‚°μžλ₯Ό 톡해 μΈμŠ€ν„΄μŠ€λ₯Ό μƒμ„±ν•œλ‹€.     ex) μΈμŠ€ν„΄μŠ€ = μƒμ„±λœ 객체 / λΆ•μ–΄λΉ΅ ν‹€ = 클래슀 / λΆ•μ–΄λΉ΅ = 객체   βœοΈ Static λ³€μˆ˜    클래슀 λ³€μˆ˜μ΄λ‹€.    ν•œ ν΄λž˜μŠ€μ—μ„œ 곡톡적인 값을 μœ μ§€ν•΄μ•Ό ν•  λ•Œ μ‚¬μš©ν•œλ‹€.     객체와 λ¬΄κ΄€ν•˜κ²Œ λΌλŠ” 뜻   βœοΈ νž™(heap)    μΈμŠ€ν„΄μŠ€κ°€ μƒμ„±λ˜λŠ” 곡간    ..
이번 μ‹œκ°„μ—λŠ” μ§€κΈˆκΉŒμ§€ 배운 λ‚΄μš©μ„ λ°”νƒ•μœΌλ‘œ λ™λ¬Όμ˜ 숲 μ½”λ“œλ₯Ό μž‘μ„±ν•΄ λ³΄λŠ” μ‹œκ°„μ„ 가져보도둝 ν•˜κ² μŠ΅λ‹ˆλ‹€.  λ™λ¬Όμ˜ 숲 문제 class μ£Όλ―Ό   String νƒ€μž…;  // λ¬΄μ‘°κ±΄ μžˆμŒ    String μ΄λ¦„;  // μ£Όλ―Όμ„ μƒμ„±ν• λ•Œ, μ΄λ¦„을 λ°˜λ“œμ‹œ μ„€μ •ν•˜λ©΄μ„œ λ§Œλ“€μ–΄μ•Ό ν•¨    hello()       // ν–‰λ³΅ν•¨ / λ¬΄λ‚œν•¨ / μŠ¬ν”” / ν™”남 μ€‘μ—μ„œ 1개λ₯Ό λžœλ€μœΌλ‘œ μΆœλ ₯함                     μ•Όμ˜Ή / κ°œκ΅΄  action(String 도ꡬ)         μž μžλ¦¬μ±„ >> κ³€μΆ©μ±„집         λ‚šμ‹œλŒ€ >> μƒμ„ λ‚šμ‹œ          μ‚½ >> λ•…νŒŒκΈ°  class κ³ μ–‘이λ₯Ό μƒμ†λ°›λŠ”λ‹€.  extends μ£Όλ―Όclass κ°œκ΅¬λ¦¬ extends μ£Όλ―Ό  main()          μ£Όλ―Ό[] datas = new..
μ˜€λŠ˜μ€ κ΅­λΉ„μˆ˜μ—… 6일 μ°¨ λ‚΄μš©μ„ λ³΅μŠ΅ν•΄ λ³΄κ² μŠ΅λ‹ˆλ‹€. μ΄λ²ˆμ‹œκ°„에도 μ €λ²ˆμ‹œκ°„μ— μ΄μ–΄μ„œ 객체에 λŒ€ν•΄ 더 깊이 μ•Œμ•„λ³Ό μ˜ˆμ •μž…λ‹ˆλ‹€.   κ°μ²΄κ°μ²΄λŠ” μ„€κ³„도λ₯Ό λ°”νƒ•μœΌλ‘œ λ§Œλ“€μ–΄μ§€λŠ”데 λ©”λͺ¨λ¦¬μ—μ„œ μ‚¬μš©ν•˜κ³  μ‹Άμ€ κ°μ²΄κ°€ μžˆλ‹€λ©΄ μ„€κ³„λ„λ‘œ ν•΄λ‹Ή κ°μ²΄λ₯Ό λ§Œλ“œλŠ” μž‘업이 ν•„μš”ν•˜λ‹€.μžλ°”μ—μ„œλŠ” μ„€κ³„도 μ—­ν• μ„ ν•˜λŠ” 게 Class이닀. ν΄λž˜μŠ€μ—μ„œλŠ” κ°μ²΄λ₯Ό μƒμ„±ν•˜κΈ° μœ„ν•œ ν•„λ“œμ™€ λ©”μ„œλ“œκ°€ μ •μ˜λ˜μ–΄ μžˆλ‹€. ν΄λž˜μŠ€λ‘œλΆ€ν„° λ§Œλ“€μ–΄μ§„ κ°μ²΄λ₯Ό ν•΄λ‹Ή ν΄λž˜μŠ€μ˜ μΈμŠ€ν„΄μŠ€λΌκ³  ν•œλ‹€.ex) μžλ™μž κ°μ²΄λŠ” μžλ™μ°¨ ν΄λž˜μŠ€μ˜ μΈμŠ€ν„΄μŠ€μ΄λ‹€. ν•˜λ‚˜μ˜ ν΄λž˜μŠ€λ‘œλΆ€ν„° μ—¬λŸ¬ κ°œμ˜ μΈμŠ€ν„΄μŠ€(객체)λ₯Ό λ§Œλ“€ μˆ˜ μžˆλ‹€. (μ—¬λŸ¬ λŒ€μ˜ μžλ™μ°¨) μ•„λž˜μ˜ μ½”λ“œλ₯Ό 보며 객체에 λŒ€ν•΄ 이해해 λ΄…μ‹œλ‹€.  // λ°˜μ§€λ¦„// μ›μ˜ 넓이 = r * r * π (3.14) class Circle { S..
μ˜€λŠ˜μ€ κ΅­λΉ„ 7일 μ°¨ μˆ˜μ—… 볡슡 λ‚΄μš© 정리λ₯Ό ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€. λ³΅μŠ΅κ°μ²΄(Object) : μΈμŠ€ν„΄μŠ€ 같은 κ°μ²΄λ“€μ˜ μ΄μ§‘ν•© λ‹¨μœ„  μΈμŠ€ν„΄μŠ€ : ν•΄λ‹Ή κ°μ²΄κ°€ μ–΄λ–€ ν΄λž˜μŠ€λ‘œλΆ€ν„° μƒμ„±λœ κ²ƒμΈμ§€λ₯Ό κ°•μ‘°ν•œλ‹€. μƒμ†λΆ€λͺ¨ 클래슀(μƒμœ„ 클래슀)의 μ½”λ“œλ₯Ό μžμ‹ 클래슀(ν•˜μœ„ 클래슀)κ°€ μ „λΆ€ 'μž¬μ‚¬μš©' ν•  수 μžˆλ‹€. (클래슀λ₯Ό μƒμ†λ°›μœΌλ©΄ ν•΄λ‹Ή 클래슀의 μ½”λ“œλ₯Ό μ „λΆ€ μž¬μ‚¬μš© ν•  수 μžˆλ‹€.)  "μœ μ§€λ³΄μˆ˜ μš©μ΄μ„± κ·ΉλŒ€ν™”" == κ°œλ°œμžλ“€μ˜ μ΅œμ’…λͺ©ν‘œ μ½”λ“œλ₯Ό 잘게 잘게 μž˜λΌμ•Όν•¨ == λͺ¨λ“ˆν™” (μ»΄ν¬λ„ŒνŠΈν™”, ν•¨μˆ˜ν™”) --> μ½”λ“œ 재 μ‚¬μš©μ„± 증가  μ΄μ œ 상속에 λŒ€ν•΄ μ½”λ“œλ₯Ό 보며 μ•Œμ•„λ³΄λ„λ‘ ν•˜μž.  class Point { int x; int y; Point(int x, int y) { this.x = x; this.y = y; System..
학생뢀 μ½”λ“œλ₯Ό ν•¨μˆ˜λ‘œ λ³€ν™˜ ν•™μƒλΆ€ μ½”λ“œλŠ” 정말 λ³΅μž‘ν•©λ‹ˆλ‹€ . 이제 κ·Έ λ³΅μž‘ν•œ μ½”λ“œμ€‘ ν•¨μˆ˜λ‘œ λ°”κΏ€ 수 μžˆλŠ” λ‚΄μš©λ“€μ„ ν•¨μˆ˜λ‘œ λ°”κΏ”μ£ΌλŠ”κ²Œ μ €μ˜  일 μž…λ‹ˆλ‹€.  κ·ΈλŸΌ ν•¨μˆ˜λ‘œ λ°”κΎΌ λ‚΄μš©μ„ λ³΄μ—¬λ“œλ¦¬κ² μŠ΅λ‹ˆλ‹€. package class02;import java.util.Scanner;public class FunctionStudentRecord { public static int sample(String[] datas) { // 학생뢀 배열에 μƒ˜ν”Œ 데이터λ₯Ό μ €μž₯ν•΄μ£Όκ³ , // λͺ‡λͺ…이 μ €μž₯λ˜μ—ˆλŠ”μ§€ λ°˜ν™˜ν•΄μ£ΌλŠ” ν•¨μˆ˜ datas[0]="ν‹°λͺ¨"; datas[1]="아리"; datas[2]="λͺ¨λ₯΄κ°€λ‚˜"; // 배열은 call by reference β–Ά λ°˜ν™˜ x int cnt..
kukimisgood
'ν’€μŠ€νƒ 개발자 μ–‘μ„±κ³Όμ • πŸͺ«/γ€Ž Java 』' μΉ΄ν…Œκ³ λ¦¬μ˜ κΈ€ λͺ©λ‘