関数、変数、クラス、属性
2786 ワード
n.関数
fun max(a:Int, b:Int) : Int{
return if(a>b) a else b
}
fun main(args: Array<String>) {
println(max(1,2))
}
上にif~else文をcottinとして使用します.これをjavaの3つの演算子として表します.以下のとおりです.
public int max(int a, int b){
return a>b ? a : b
}
expressionは値を返す形式であり、statementは値を作成しません.Javaでは、これらの制御文はすべてstatementですが、kotlinでは重複文を除いてexpressionです.
//if문의 expression
fun max(a:Int, b:Int) : Int = if(a>b) a else b
//type inference를 이용하여 간소화
fun max(a:Int, b:Int) = if(a>b) a else b
コンパイラがタイプ推定を行う場合はreturn typeを省略できます.ただし、式形式の関数でのみ実行できます.
コトリン変数
コトリンでは、変数はval、varで始まる必要があります.
このキーワードは、変数が可変タイプか可変タイプかを示す変数の開始を示します.
したがって、valとして指定された不変型変数はその後値を変更できず、変更時にcompileエラーが発生します.
Javaのfinalはvalに似ていると考えられます.
//immutable
val a = "b"
//mutable
var c = "case"
//초기화
val garde : Int
grade = 1
変数はタイプ推定も可能です.初期化時に値を指定しない場合?タイプを明記する必要があります.
これは後で別途丁寧に処理しなければなりません.
Class & Property
cottinでは、関数または変数が明示的に限定子を表さない場合、それらは共通である.
Property
Javaではpropertyはメンバー変数とそのメンバー変数のgetterとsetterを表します.
コトリンでは、分離されたpropertyを簡単に表すことができる要素です.
すなわち、メンバー変数を宣言すると、コンパイラは対応するgetterとsetterを自動的に生成します.
(コトリンの特徴から見た)
fun Person(
val name : String //immutable임으로 컴파일러가 getter만 생성한다.
var isMarried : Boolean //mutable임으로 컴파일러가 getter/setter 모두 생성한다.
)
fun main(args : Array<String>){
val person = Person("Bob", true)
println(person.name) //실제로 getter
println(person.isMarried) //실제로 getter 가 불린다.
}
JavaではpersongetName()を使用して値またはsetdを取得する必要があります.コトリンでは、コンパイラが自動的に生成され、呼び出されます.
ただし、「isXXXX」というメンバー変数については、setterにのみsetを付け、getterには「isXXX」と書きます.
ex. person.isMarried()/person.setMarried(true)
Custom Property
getter/setter固有のインプリメンテーションセクションに挿入したい場合があります.
この場合、get()、set()メソッドを直接実装し、それを入れることができる.
その場合、以下のようになります.
class Rectangle(val height: Int, val width: Int){
val isSquare : Boolean
get() {
return height == width
}
}
fun main(args : Array<String>){
val rectangle = Rectangle(41,43)
println(rectangle.isSquare)
}
Reference
この問題について(関数、変数、クラス、属性), 我々は、より多くの情報をここで見つけました https://velog.io/@jaeyunn_15/JavaKotlin-함수변수-클래스-propertyテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol