fun 메서드이름(변수명:자료형, 변수명:자료형 ....) : 반환자료형 {
소스코드 로직
}
.
.
fun main() {
var myMathScore = readLine()!!.toInt()
var myRank = checkRank(myMathScore)
println("나의 등급은 : ${myRank}")
}
fun checkRank(score:Int) : String {
return when(score) {
in 90..100 -> return "A"
in 80..89 -> return "B"
in 70..79 -> return "C"
else -> return "D"
}
}
.
.
main 메소드에서 myMathScore 변수에 입력값을 정수로 받는다.
checkRank(myMathScore)는 결국 값이 된다.
변수 myRank에서 checkRank 메서드를 호출하며 파라미터로 숫자 요구한다.
checkRank 메서드의 score 변수에 점수를 넘겨주면 checkRank는 비교 코드 실행.
.
.
.
.
.
class 클래스이름 {
정보1
정보2
행위1
행위2
}
.
.
data class 클래스이름 {
정보1
정보2
}
data class Menu(val num:Int, val name: String, val price: Int)
- hashCode(): 객체를 구분하기 위한 고유값을 리턴
- eauals(): 동일한 객체인지 비교 후 true 또는 false를 리턴
- copy(): 현재 객체의 모든 정보를 복사 후 새로운 객체를 리턴
- toString(): 현재 객체의 모든 정보(프로퍼티)를 출력
- getXXX()/setXXX(매개변수): 변수의 값을 리턴하거나 설정
.
.
sealed class 부모클래스 {
class 자식클래스1 : 부모클래스생성자
class 자식클래스2 : 부모클래스생성자
}
.
.
.
.
.
fun main() {
}
// 클래스 선언부에 생성자를 명시함
class Character(_name:String, _hairColor:String, _height:Double) {
var name:String = ""
var hairColor:String = ""
var height:Double = 0.0
// 매개변수를 직접 넘기지않음
init {
println("파밍 완료!")
}
fun autoHunt() {
println("자동사냥중")
}
fun compositing(device1:String, device2:String): String {
var device3 = device1 + device2
println("새로운 무기인 ${device3}입니다")
return device3
}
}
Character 클래스는 캐릭터의 이름, 머리카락 색상, 키를 나타내는 세 개의 프로퍼티(name, hairColor, height)를 설정했다.
.
.
.
class Character(_name: String, _hairColor: String, _height: Double) {
...
}
주생성자는 클래스명 뒤 괄호 안에 파라미터들을 가지며, 프로퍼티 초기화에 사용 (init 블록 사용하여 초기화)
.
.
.
var name: String = ""
var hairColor: String = ""
var height: Double = 0.0
주 생성자의 파라미터 이름과 동일하게 선언하였으며 외부에서 접근 가능.
.
.
.
init {
println("실행 완료!")
}
init은 주 생성자로 객체가 생성될 때 자동으로 호출된다.
매개변수가 없는 생성자의 경우, 객체가 생성될 때 이 블록이 실행된다.
.
.
.
fun autoHunt() {
println("자동사냥")
}
fun compositing(device1: String, device2: String): String {
var device3 = device1 + device2
println("새로운 무기인 ${device3}입니다")
return device3
}
fireBall() 은 "자동사냥"을 출력하는 단순한 함수입니다.
compositing 함수는 두 개의 문자열 파라미터(device1과 device2)를 받고, 두 파라미터를 합친 새로운 문자열을 반환한다. "새로운 무기인 [device3]입니다" 출력.
이 함수들은 Character 클래스의 인스턴스에 의해 호출된다.
.
.
.
fun main() {
val character = Character("byurin", "Black", 160.5)
character.autoHunt()
val newWeapon = character.compositing("Assault gun, ", "bullet")
}
Character 클래스의 객체 생성, 함수를 호출한다.
main 함수에서 Character 클래스의 객체를 생성.
autoHunt 함수와 compositinig 함수를 호출.
.
.
.
fun main() {
val character = Character("byurin", "Black", 160.5)
character.autoHunt()
val newWeapon = character.compositing("Assault gun, ", "bullet")
}
class Character {
var name:String = ""
var hairColor:String = ""
var height:Double = 0.0
// 명시적 생성자 (Constructor)
// _name, _hairColor, _height와 같이 생성자에 변수를 넘기는 경우에 사용함
constructor(_name:String, _hairColor:String, _height:Double) {
println("${_name}을 생성자로 넘겼어요")
println("${_hairColor}를 생성자로 넘겼어요")
println("${_height}를 생성자로 넘겼어요")
}
fun autoHunt() {
println("자동사냥")
}
fun compositing(device1:String, device2:String): String {
var device3 = device1 + device2
println("새로운 무기인 ${device3}입니다")
return device3
}
}
생성자를 명시적으로 선언했다.
생성자는 클래스의 인스턴스가 생성될 때 호출되는 특별한 함수로, 객체를 초기화한다.
위 생성자는 _name, _hairColor, _height
라는 세 개의 파라미터를 받고, 객체가 생성될 때 생성자가 호출되며, 생성자의 본문에 있는 내용이 실행된다. 현재의 생성자는 파라미터로 전달된 값들을 출력하기만 한다.
.
.
.
.
.