μ•ˆλ“œλ‘œμ΄λ“œπŸ€–

μ˜€λΈŒμ νŠΈμƒμ„±μž 없이 직접 객체λ₯Ό λ§Œλ“€μ–΄λ‚Έλ‹€.였브젝트 κ·Έ μžμ²΄κ°€ 객체가 될 수 μžˆλ‹€. κ·Έλž˜μ„œ μƒμ„±μžκ°€ ν•„μš” μ—†λ‹€.ν΄λž˜μŠ€λŠ” 내뢀에 μžˆλŠ” μ†μ„±μ΄λ‚˜ ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜λ €λ©΄ μƒμ„±μžλ₯Ό 톡해 싀체가 λ˜λŠ” μΈμŠ€ν„΄μŠ€ 객체λ₯Ό λ§Œλ“€μ–΄μ•Όν•œλ‹€.ν•˜μ§€λ§Œ μ—¬λŸ¬κ°œμ˜ μΈμŠ€ν„΄μŠ€ 객체가 ν•„μš”ν•˜μ§€ μ•Šκ³  ν•˜λ‚˜μ˜ 객체만으둜 곡톡적인 속성과 ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•΄μ•Όν•˜λŠ” μ½”λ“œμ—μ„œλŠ” 클래슀λ₯Ό μ“Έ ν•„μš” 없이 였브젝트λ₯Ό μ‚¬μš©ν•˜λ©΄ λœλ‹€.싱글톀 νŒ¨ν„΄μ„ μ–Έμ–΄μ°¨μ›μ—μ„œ μ§€μ›ν•˜λŠ”κ²ƒμ΄λ‹€.싱글톀 νŒ¨ν„΄ : 클래슀의 객체λ₯Ό 단 ν•˜λ‚˜λ§Œ λ§Œλ“€μ–΄ μ‚¬μš©ν•˜λ„λ‘ ν•˜λŠ” λ””μžμΈ νŒ¨ν„΄  μ˜€λΈŒμ νŠΈ μ˜ˆμ œμ•„λ¬΄κ³³μ—λ‚˜ ν˜ΈμΆœν•˜μ—¬ ν˜ΈμΆœν•œ 횟수λ₯Ό μ„Έκ±°λ‚˜ μ΄ˆκΈ°ν™” ν•  수 μžˆλŠ” CounterλΌλŠ” 였브젝트λ₯Ό λ§Œλ“€μ–΄λ³΄μž.μ˜€λΈŒμ νŠΈλŠ” λ³„λ„μ˜ μΈμŠ€ν„΄μŠ€λ₯Ό μƒμ„±ν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— 였브젝트 이름에 직접 μ°Έμ‘°μ—°μ‚°μžλ₯Ό λΆ™μ—¬μ„œ μ‚¬μš©ν•œλ‹€.fu..
μŠ€μ½”ν”„ ν•¨μˆ˜λ₯Ό μ•Œμ•„λ³΄κΈ° 전에 λžŒλ‹€ ν•¨μˆ˜μ˜ νŠΉλ³„ν•œ κΈ°λŠ₯ λͺ‡κ°€μ§€λ₯Ό μ‚΄νŽ΄λ³΄μž.λžŒλ‹€ ν•¨μˆ˜μ˜ νŠΉλ³„ν•œ κΈ°λŠ₯λ“€λžŒλ‹€ ν•¨μˆ˜λ„ 일반 ν•¨μˆ˜μ²˜λŸΌ μ—¬λŸ¬ ꡬ문이 μˆ˜ν–‰ κ°€λŠ₯ν•˜λ‹€. 참고둜 λžŒλ‹€ ν•¨μˆ˜κ°€ μ—¬λŸ¬ μ€„λ‘œ κ΅¬ν˜„λœλ‹€λ©΄ λ§ˆμ§€λ§‰ μ€„μ˜ 결과값이 λ°˜ν™˜λœλ‹€.val c: (Int, Int) -> Int = {a,b -> println("$a $b") println("μ—¬λŸ¬κ΅¬λ¬Έ") println("μ‚¬μš©ν•  수 μžˆμ§€λ‘±!") a+b // a+bκ°€ λ°˜ν™˜λœλ‹€.}λžŒλ‹€ν•¨μˆ˜μ— νŒŒλΌλ―Έν„°κ°€ μ—†λ‹€λ©΄ μ‹€ν–‰ν•  κ΅¬λ¬Έλ“€λ§Œ λ‚˜μ—΄ν•˜λ©΄ λœλ‹€.val a:() -> Unit = {println("νŒŒλΌλ―Έν„° μ—†μŒ!!!")}νŒŒλΌλ―Έν„°κ°€ ν•˜λ‚˜λΏμ΄λΌλ©΄ 'it'을 μ‚¬μš©ν•œλ‹€. νŒŒλΌλ―Έν„° 이름을 μƒλž΅ν•˜κ³  'it'μ΄λΌλŠ” ν‚€μ›Œλ“œλ‘œ λŒ€μ²΄ κ°€λŠ₯ν•˜λ‹€.val c:(String) ->..
κ³ μ°¨ν•¨μˆ˜ν•¨μˆ˜λ₯Ό 마치 ν΄λž˜μŠ€μ—μ„œ λ§Œλ“€μ–΄λ‚Έ μΈμŠ€ν„΄μŠ€(객체)처럼 μ·¨κΈ‰ν•˜λŠ” 방법이닀.ν•¨μˆ˜λ₯Ό νŒŒλΌλ―Έν„°(λ§€κ°œλ³€μˆ˜)초 λ„˜κ²¨μ€„ μˆ˜λ„ 있고, κ²°κ³Όκ°’μœΌλ‘œ λ°˜ν™˜λ°›μ„ μˆ˜λ„ μžˆλŠ” 방법이닀.μ½”ν‹€λ¦°μ—μ„œλŠ” λͺ¨λ“  ν•¨μˆ˜λ₯Ό κ³ μ°¨ν•¨μˆ˜λ‘œ μ‚¬μš© κ°€λŠ₯ν•˜λ‹€. κ³ μ°¨ν•¨μˆ˜ κ΅¬ν˜„λ²•fun main(){ b(::a)}fun a (str:String){ println("$str ν•¨μˆ˜ : a")}fun b (function: (String)->Unit) { function("bκ°€ ν˜ΈμΆœν•œ")}좜λ ₯bκ°€ ν˜ΈμΆœν•œ ν•¨μˆ˜ : aν•¨μˆ˜ aλ₯Ό κ³ μ°¨ν•¨μˆ˜ ν˜•μ‹μ˜ νŒŒλΌλ―Έν„°λ‘œ 받을 수 있게 λ§Œλ“ λ‹€.ν•¨μˆ˜λ₯Ό μžλ£Œν˜•μœΌλ‘œ λ‚˜νƒ€λ‚΄λŠ” 방법은 κ΄„ν˜Έ μ•ˆμ— ν•¨μˆ˜κ°€ 받을 νŒŒλΌλ―Έν„°μ˜ μžλ£Œν˜•μ„ λ‚˜μ—΄ν•˜κ³  '->'둜 ν™”μ‚΄ν‘œλ₯Ό λ§Œλ“  λ’€ ν•¨μˆ˜μ˜ λ°˜ν™˜ν˜•μ„ μ“°λ©΄ λœλ‹€.ν•¨μˆ˜ aλŠ” λ°˜ν™˜ν˜•μ΄ μ—†μœΌλ‹ˆ 값이..
μŠ€μ½”ν”„ν”„λ‘œμ νŠΈ ꡬ쑰 λ‚΄μ—μ„œ λ³€μˆ˜, ν•¨μˆ˜, ν΄λž˜μŠ€λ“€μ„ μ„œλ‘œ κ³΅μœ ν•˜λ©° μ‚¬μš©ν•  수 μžˆλŠ” κ³΅μš©λ²”μœ„λ₯Ό μ œμ–΄ν•˜λŠ” λ‹¨μœ„λ‹€. μŠ€μ½”ν”„κ°€ μ§€μ •λ˜λŠ” λ²”μœ„νŒ¨ν‚€μ§€ λ‚΄λΆ€νŒ¨ν‚€μ§€ 내뢀에 λ³€μˆ˜, ν•¨μˆ˜, ν΄λž˜μŠ€κ°€ μžˆλ‹€λ©΄ νŒ¨ν‚€μ§€ 내뢀에 μžˆλŠ” 이듀은 λͺ¨λ‘ νŒ¨ν‚€μ§€ λΌλŠ” ν•˜λ‚˜μ˜ μŠ€μ½”ν”„ μ•ˆμ— μžˆλŠ” 멀버듀이닀.클래슀 λ‚΄λΆ€ν΄λž˜μŠ€λ„ μŠ€μ½”ν”„ κΈ°λŠ₯을 κ°€μ§ˆ 수 μžˆλ‹€.클래슀 내뢀에 λ³€μˆ˜, ν•¨μˆ˜κ°€ μžˆλ‹€λ©΄ 클래슀 내뢀에 μžˆλŠ” 이듀은 λͺ¨λ‘ 클래슀 λΌλŠ” ν•˜λ‚˜μ˜ μŠ€μ½”ν”„ μ•ˆμ— μžˆλŠ” 멀버듀이닀.νŒ¨ν‚€μ§€ 내뢀에 μžˆλŠ” μŠ€μ½”ν”„ κΈ°λŠ₯을 ν•˜λŠ” ν΄λž˜μŠ€λŠ” ν•˜μœ„ μŠ€μ½”ν”„λΌκ³  λΆ€λ₯Έλ‹€.ν•¨μˆ˜ λ‚΄λΆ€ν΄λž˜μŠ€μ™€ μŠ€μ½”ν”„μ— λŒ€ν•œ κ°œλ…μ΄ λ™μΌν•˜λ‹€. μŠ€μ½”프에 λŒ€ν•œ 세가지 κ·œμΉ™μŠ€μ½”ν”„ μ™ΈλΆ€μ—μ„œλŠ” μŠ€μ½”ν”„ λ‚΄λΆ€μ˜ 멀버λ₯Ό 'μ°Έμ‘° μ—°μ‚°μž'둜만 μ°Έμ‘°κ°€ κ°€λŠ₯ν•˜λ‹€.동일 μŠ€μ½”ν”„ λ‚΄μ—μ„œλŠ” 멀버듀을 κ³΅μœ ν•  수 μžˆλ‹€.val a ..
물리적 ꡬ쑰"ν”„λ‘œμ νŠΈ > λͺ¨λ“ˆ > 폴더 & 파일" ꡬ쑰가 μ‹€μ œ 파일 μ‹œμŠ€ν…œμ— κΈ°λ°˜ν•œ 물리적 ꡬ쑰λ₯Ό λ‹΄λ‹Ήν•œλ‹€. ν”„λ‘œμ νŠΈμ½”ν‹€λ¦°μœΌλ‘œ μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ„ 지 λ•Œ κ΄€λ ¨λœ λͺ¨λ“  λ‚΄μš©μ„ λ‹΄λŠ” 큰 틀이닀. λͺ¨λ“ˆν•˜λ‚˜μ˜ ν”„λ‘œμ νŠΈλŠ” μ—¬λŸ¬κ°œμ˜ λͺ¨λ“ˆλ‘œ 이루어져 μžˆλ‹€.λͺ¨λ“ˆμ„ κ°œλ°œμžκ°€ 직접 κ΅¬ν˜„ν•  μˆ˜λ„, 라이브러리 λͺ¨λ“ˆμ„ μ΄μš©ν•΄ 뢙일 μˆ˜λ„ μžˆλ‹€. ν΄λ” & 파일λͺ¨λ“ˆμ•ˆμ—λŠ” μ—¬λŸ¬κ°œμ˜ 폴더와 파일이 λ“€μ–΄κ°€ μžˆλ‹€.μ½”ν‹€λ¦° μ½”λ“œνŒŒμΌ 뿐만 μ•„λ‹ˆλΌ λͺ¨λ“ˆκ΄€ κ΄€λ ¨λœ μ„€μ • 및 λ¦¬μ†ŒμŠ€ 파일이 포함 될 수 μžˆλ‹€. λ…Όλ¦¬μ  κ΅¬μ‘°νŒ¨ν‚€μ§€ νŒ¨ν‚€μ§€κ°œλ°œ μ‹œ μ†ŒμŠ€μ½”λ“œμ˜ μ†Œμ†μ„ μ§€μ •ν•˜κΈ° μœ„ν•œ 논리적 λ‹¨μœ„λ‹€.μ½”λ“œλ₯Ό μž‘μ„± ν•  λ•Œ μ½”λ“œ μ•ˆμ—μ„œ μ‚¬μš©ν•˜λŠ” 이름이 μš©λ„μ— 따라 μ„œλ‘œ μΆ©λŒν•˜μ§€ μ•Šλ„λ‘ μœ λ‹ˆν¬ν•œ νŒ¨ν‚€μ§€ 이름을 λΆ™μ΄λŠ”κ²ƒμ΄ μ’‹λ‹€.일반적으둜 νŒ¨ν‚€μ§€ 이름을 지을 λ•ŒλŠ” κ°œλ°œν•œ νšŒμ‚¬κ°€ ..
μ˜€λ²„λΌμ΄λ”©μƒμ†μ‹œ 기본적으둜 μŠˆνΌν΄λž˜μŠ€μ— μžˆλŠ” ν•¨μˆ˜μ™€ 같은 이름, ν˜•νƒœλ₯Ό 가진 ν•¨μˆ˜λ₯Ό μ„œλΈŒν΄λž˜μŠ€μ—μ„œ μ“Έ 수 μ—†λ‹€.ν•˜μ§€λ§Œ μŠˆνΌν΄λž˜μŠ€μ—μ„œ ν—ˆμš©ν•œλ‹€λ©΄ μ˜€λ²„λΌμ΄λ”© μ΄λΌλŠ” λ°©λ²•μœΌλ‘œ μ„œλΈŒ ν΄λž˜μŠ€μ—μ„œ 같은 이름과 ν˜•νƒœλ‘œ 된 ν•¨μˆ˜μ˜ λ‚΄μš©μ„ λ‹€μ‹œ κ΅¬ν˜„ν•  수 μžˆλ‹€. μ˜€λ²„라이딩 λ°©λ²•μŠˆνΌν΄λž˜μŠ€μ˜ ν•¨μˆ˜ μ•žμ— open ν‚€μ›Œλ“œλ₯Ό 뢙이면 μ„œλΈŒν΄λž˜μŠ€μ—μ„œ ν•΄λ‹Ή ν•¨μˆ˜λ₯Ό μ„œλΈŒν΄λž˜μŠ€μ—μ„œ μž¬κ΅¬ν˜„μ΄ ν—ˆμš©λœλ‹€.μ„œλΈŒν΄λž˜μŠ€μ—μ„œ ν•¨μˆ˜ μ•žμ— override ν‚€μ›Œλ“œλ₯Ό 뢙이면 μ„œλΈŒν΄λž˜μŠ€μ—μ„œ μž¬κ΅¬ν˜„ ν•  수 μžˆλ‹€.fun main(){ var a = Animal() var t = Tiger() a.eat() t.eat()}open class Animal{ open fun eat(){ println("먹이 λƒ λƒ ") }}c..
상속이 ν•„μš”ν•œ 이유이미 μ‘΄μž¬ν•˜λŠ” 클래슀λ₯Ό ν™•μž₯ν•˜μ—¬ μƒˆλ‘œμš΄ μ†μ„±μ΄λ‚˜ ν•¨μˆ˜λ₯Ό μΆ”κ°€ν•œ 클래슀λ₯Ό λ§Œλ“€μ–΄μ•Ό ν• λ•Œμ—¬λŸ¬κ°œμ˜ 클래슀λ₯Ό λ§Œλ“€μ—ˆλŠ”λ° 클래슀의 곡톡점을 뽑아 μ½”λ“œ 관리λ₯Ό νŽΈν•˜κ²Œ λ§Œλ“€μ–΄μ•Ό ν• λ•Œ μŠˆνΌν΄λž˜μŠ€ & μ„œλΈŒν΄λž˜μŠ€μ†μ„±κ³Ό ν•¨μˆ˜λ₯Ό λ¬Όλ €μ£ΌλŠ” μͺ½μ„ 슈퍼클래슀, λ¬Όλ € λ°›λŠ” μͺ½μ„ μ„œλΈŒ 클래슀라고 ν•œλ‹€. μƒμ† 방법open ν‚€μ›Œλ“œμ½”ν‹€λ¦°μ€ 상속 κΈˆμ§€κ°€ 기본값이기 λ•Œλ¬Έμ— open ν‚€μ›Œλ“œλ₯Ό μ¨μ•Όν•œλ‹€.open은 ν΄λž˜μŠ€κ°€ 상속 될 수 μžˆλ„λ‘ 클래슀 μ„ μ–Έ μ‹œ 뢙여쀄 수 μžˆλŠ” ν‚€μ›Œλ“œλ‹€. μƒμ†μ— λŒ€ν•œ 두가지 κ·œμΉ™μ„œλΈŒν΄λž˜μŠ€λŠ” μŠˆνΌν΄λž˜μŠ€μ— μ‘΄μž¬ν•˜λŠ” 속성과 같은 μ΄λ¦„μ˜ 속성을 κ°€μ§ˆ 수 μ—†λ‹€.Dog ν΄λž˜μŠ€κ°€ Animal클래슀λ₯Ό μƒμ†λ°›μ„λ•Œ varμ΄λ‚˜ val을 뢙이지 μ•Šκ³  일반 νŒŒλΌλ―Έν„°λ‘œ λ°›λŠ”λ‹€.var μ΄λ‚˜ val을 뢙이면 클래슀의 자체 μ†μ„±μœΌ..
μƒμ„±μžμ˜ μ—­ν•     μƒμ„±μžλŠ” μΈμŠ€ν„΄μŠ€μ˜ κΈ°λŠ₯을 μ΄ˆκΈ°ν™” ν•˜κ³  μΈμŠ€ν„΄μŠ€ μƒμ„±μ‹œ ꡬ문을 μˆ˜ν–‰ν•˜λŠ” 역할을 ν•˜κΈ°λ„ ν•œλ‹€. init{}μƒμ„±μžλ₯Ό 톡해 μΈμŠ€ν„΄μŠ€κ°€ λ§Œλ“€μ–΄ 질 λ•Œ ν˜ΈμΆœλ˜λŠ” ν•¨μˆ˜ κΈ°λ³Έμƒμ„±μž & λ³΄μ‘°μƒμ„±μžκΈ°λ³Έ μƒμ„±μž : 클래슀λ₯Ό λ§Œλ“€ λ•Œ 기본으둜 선언보쑰 μƒμ„±μž : ν•„μš”μ— 따라 μΆ”κ°€μ μœΌλ‘œ μ„ μ–Έ. κΈ°λ³Έ μƒμ„±μžμ™€ λ‹€λ₯Έ ν˜•νƒœμ˜ μƒμ„±μžλ₯Ό μ œκ³΅ν•˜μ—¬ μΈμŠ€ν„΄μŠ€ μƒμ„±μ‹œ 편의λ₯Ό μ œκ³΅ν•˜κ±°λ‚˜ 좔가적인 ꡬ문을 μˆ˜ν–‰ν•˜λŠ” κΈ°λŠ₯을 제곡보쑰 μƒμ„±μž μ‚¬μš© 방법보쑰 μƒμ„±μžλ₯Ό λ§Œλ“€λ•ŒλŠ” λ°˜λ“œμ‹œ κΈ°λ³Έ μƒμ„±μžλ₯Ό 톡해 속성을 μ΄ˆκΈ°ν™” ν•΄μ€˜μ•Ό ν•œλ‹€.보쑰 μƒμ„±μžκ°€ κΈ°λ³Έ μƒμ„±μžλ₯Ό ν˜ΈμΆœν•˜λ„λ‘ ν•˜λ €λ©΄ ":this" ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜κ³  κΈ°λ³Έ μƒμ„œμžκ°€ ν•„μš”λ‘œ ν•˜λŠ” νŒŒλΌλ―Έν„°λ₯Ό κ΄„ν˜Έμ•ˆμ— λ„£μ–΄μ£Όλ©΄ λœλ‹€. fun main(){ var younghee = Person..
λ•‘λ•‘πŸ‘©πŸ»‍πŸ’»
'μ•ˆλ“œλ‘œμ΄λ“œπŸ€–' μΉ΄ν…Œκ³ λ¦¬μ˜ κΈ€ λͺ©λ‘