2024. 3. 5. 20:37, ๐ฑAndroid Study
๋ฐ์ํ
6 ํจ์
- ์ฝ๋์ ์คํ์ ํจ์๋ฅผ ํธ์ถํ๋ ๊ฒ์์ ์์
[ํ๋ก๊ทธ๋จ ์์] -- ํธ์ถ --> [ํจ์] - ๋จ์ํ ๋งํ๋ฉด ์๋๋ก์ด๋ ์ฑ๋ onCreate() ํจ์๋ฅผ ํธ์ถํด์ ์คํ๋๋ค๊ณ ํ ์ ์์
ํจ์์ ์ ์
fun ํจ์๋ช
(ํ๋ผ๋ฏธํฐ ์ด๋ฆ: ํ์
): ๋ฐํ ํ์
{
return ๊ฐ
}
- ์ฝ๋๋ฅผ ์ฌ์ฉํ ์ ์๋ ์ต์ ๋จ์
- fun ํค์๋๋ก ์ ์ํ๋ฉฐ ๊ฐ์ ์ ๋ ฅ๋ฐ์ ์ฌ์ฉ
- ๋ฐํ๊ฐ์ด ์๋ ํจ์๋ ๋ด๋ถ์์ return์ผ๋ก ๊ฐ์ ๋ฐํ
- ํ๋ผ๋ฏธํฐ(Parameter) = ํจ์์ ์ ๋ ฅ๋ ๊ฐ
- ํจ์๋ฅผ ํธ์ถํ ๋ ๊ดํธ ์์ ๊ฐ์ ๋ฃ์ด์ ์ ๋ฌํ๋๋ฐ, ์ด ๋ ์ ๋ ฅ๋๋ ๊ฐ์ ํ์ ์ ํจ์์ ์ ์๋ ํ๋ผ๋ฏธํฐ ํ์ ๊ณผ ๋์ผํ๊ฒ ์ ๋ ฅํด์ผ ํจ
1) ๋ฐํ๊ฐ๊ณผ ์ ๋ ฅ๊ฐ์ด ์๋ ํจ์์ ์ ์
fun square(x: Int): Int {
return x * x
}
- ์์๋ Int ํ์ ์ x๋ผ๋ ์ ๋ ฅ ํ๋ผ๋ฏธํฐ๋ฅผ ๊ฐ๋ ํจ์ square()
- square ํจ์๊ฐ ํธ์ถ๋๋ฉด ์ ๋ ฅ๊ฐ์ ์ ๊ณฑํด์ ํธ์ถํ ์ธก์ผ๋ก ๋ฐํํ๊ณ ์คํ ์ข ๋ฃ
2) ๋ฐํ๊ฐ์ด ์๋ ํจ์์ ์ ์
fun printSum(x: Int, y: Int) {
Log.d("fun", "x + y = ${x + y}")
}
- ์ ๋ ฅ๊ฐ์ ๋ฐ์ printSum ํจ์๊ฐ ํธ์ถ๋๋ฉด ๊ฒฐ๊ด๊ฐ์ Log๋ก ์ถ๋ ฅํ๊ณ ์คํ ์ข ๋ฃ
- ๋ฐํ๊ฐ์ด ์๋ค๋ฉด fun printSum(x: Int, u: Int) : Unit {} ๊ณผ ๊ฐ์ด Unit์ ์จ์ค๋ ๋จ
3) ์ ๋ ฅ๊ฐ ์์ด ๋ฐํ๊ฐ๋ง ์๋ ํจ์์ ์ ์
fun getPi(): Double {
return 3.14
}
- ์์์์์ getPi ํจ์๋ ํธ์ถํ ์ธก์ผ๋ก 3.14๋ฅผ ๋ฐํํ๊ณ ์คํ ์ข ๋ฃ
ํจ์์ ์ฌ์ฉ
ํจ์๋ช
(๊ฐ)
- ํจ์๋ช ๋ค์ ๊ดํธ๋ฅผ ๋ถ์ฌ์ ๋ช ๋ น์ด๋ฅผ ์คํ (ํจ์๋ช ์ผ๋ก๋ง ์คํ ์ ๋จ)
- ๊ดํธ๋ฅผ ๋ถ์ด์ง ์์ผ๋ฉด ํจ์์ ์ฝ๋๊ฐ ์คํ๋์ง ์๊ณ ๋ง์น ๊ฐ์ฒ๋ผ ์ธ์๋จ
1) ๋ฐํ๊ฐ๊ณผ ์ ๋ ฅ๊ฐ์ด ์๋ ํจ์์ ํธ์ถ
var squareResult = square(30)
Log.d("fun", "30์ ์ ๊ณฑ์ ${squareResult}์
๋๋ค.")
- ํ๋ผ๋ฏธํฐ์ ์ ๋ฌํ ๊ฐ์ ์ ๋ ฅํ๊ณ ๋ฐํ๊ฐ์ ๋์ ์ฐ์ฐ์(=)๋ก ๋ณ์์ ๋ด์ ํ์ ์ฌ์ฉ
2) ๋ฐํ๊ฐ์ด ์๋ ํจ์์ ํธ์ถ
printSum(3, 5)
- ๋ฐํ๊ฐ์ด ์์ผ๋ฉด ๋์ ์ฐ์ฐ์(=)๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๋ฐ๋ก ํธ์ถํด์ ์คํ
3) ์ ๋ ฅ๊ฐ์ด ์๋ ํจ์์ ํธ์ถ
val PI = getPi()
Log.d("fun", "์ง๋ฆ์ด 10์ธ ์์ ๋๋ ๋ ${10 * PI}์
๋๋ค.")
- ์ ๋ ฅ๊ฐ์ด ์๋ค๋ฉด ๊ดํธ๋ง์ผ๋ก ์คํํ๊ณ ๊ฒฐ๊ด๊ฐ์ ๋ฐ์ ์ ์์
ํจ์ ํ๋ผ๋ฏธํฐ์ ์ ์
fun ํจ์๋ช
((val ์๋ต) name1: String, name2: Int, name3: Double) { ์คํ ์ฝ๋ }
- ํ๋ผ๋ฏธํฐ๋ ๋ง์น ๋ณ์๋ฅผ ์ ์ํ๋ฏ์ด '์ด๋ฆ: ํ์ '์ ํํ๋ก ์ ์
- ์ฌ๋ฌ ๊ฐ์ ํ๋ผ๋ฏธํฐ๊ฐ ์ ์๋ ๊ฒฝ์ฐ๋ ์ฝค๋ง๋ก ๊ตฌ๋ถ
- Kotlin์์ ํจ์ ํ๋ผ๋ฏธํฐ๋ฅผ ํตํด ์ ๋ ฅ๋๋ ๊ฐ์ ๋ชจ๋ ๋ณํ์ง ์๋ ๊ฐ(immutable)
- ๋ฐ๋ผ์ Kotlin์์์ ํจ์ ํ๋ผ๋ฏธํฐ๋ ๋ชจ๋ ์ฝ๊ธฐ ์ ์ฉ ํค์๋ val์ด ์๋ต๋ ํํ
ํ๋ผ๋ฏธํฐ์ ๊ธฐ๋ณธ๊ฐ ์ ์์ ํธ์ถ
fun newFunction(name: String, age: Int = 29, weight: Double = 65.5){
Log.d("fun", "name์ ๊ฐ์ ${name}์
๋๋ค.")
Log.d("fun", "age์ ๊ฐ์ ${age}์
๋๋ค.")
Log.d("fun", "weight์ ๊ฐ์ ${weight}์
๋๋ค.")
}
โ
newFunction("Hello")
โ
/** [๋ก๊ทธ์บฃ ์ถ๋ ฅ ๋ด์ฉ]
name์ ๊ฐ์ Hello์
๋๋ค.
age์ ๊ฐ์ 29์
๋๋ค.
weight์ ๊ฐ์ 65.5์
๋๋ค.
*/
- ํ๋ผ๋ฏธํฐ๋ฅผ ์ ์ํ ๋ ๋ฑํธ(=)๋ฅผ ์ฌ์ฉํด์ ๊ธฐ๋ณธ๊ฐ์ ์ค์ ํ ์ ์์
- ์์์์ ๊ธฐ๋ณธ๊ฐ์ด ์๋ ์ฒซ ๋ฒ์งธ ํ๋ผ๋ฏธํฐ์๋ง ๊ฐ์ ์ ๋ ฅํ๋ฉด, ๋์ธ ๋ฒ์งธ ํ๋ผ๋ฏธํฐ์๋ ๊ธฐ๋ณธ๊ฐ์ด ์๋์ผ๋ก ์ ๋ ฅ๋จ
ํ๋ผ๋ฏธํฐ ์ด๋ฆ์ผ๋ก ๊ฐ์ ์ ๋ ฅํ๊ธฐ
fun newFunction(name: String, age: Int = 29, weight: Double = 65.5){
Log.d("fun", "name์ ๊ฐ์ ${name}์
๋๋ค.")
Log.d("fun", "age์ ๊ฐ์ ${age}์
๋๋ค.")
Log.d("fun", "weight์ ๊ฐ์ ${weight}์
๋๋ค.")
newFunction("Michael", weight = 67.5)
โ
/** [๋ก๊ทธ์บฃ ์ถ๋ ฅ ๋ด์ฉ]
name์ ๊ฐ์ Michale์
๋๋ค.
age์ ๊ฐ์ 29์
๋๋ค.
weight์ ๊ฐ์ 67.5์
๋๋ค.
*/
- ํจ์์ ์ ์๋ ํ๋ผ๋ฏธํฐ๊ฐ ๋ง์ ๊ฒฝ์ฐ ์ ๋ ฅํ๋ ๊ฐ์ ์๋ฏธ๊ฐ ๋ช ํํ์ง ์์ ๋๊ฐ ์์
- ์ด๋ด ๋ ์์์ ์๊ด์์ด ์ ์๋ ํ๋ผ๋ฏธํฐ ์ด๋ฆ์ ์ง์ ํด์ ์ง์ ๊ฐ์ ์
๋ ฅํ ์ ์์
๋ฐ์ํ
๐ฌ C O M M E N T