1.過負荷バイナリ演算子
まあオーバーロードされている事業者
!、===、==リアルタイムにオーバーロードすることはできません?という&&、||、注意
私たちは、使用1 + 1
することを自然の中で実行可能ファイルを1.plus(1)
、我々は上書きすることができ、プラスその他の機能。
(1 + 2I)+(:次に、我々は、例えば、添加することにより、複数の基本的な動作をするクラスを設計 + 4I 3)= 4 + 6I 減算:(1 + 2I) - ( 3 + 4I)= - 2 - 2Iを
乗じた:(1 + 2I)*( - 5 + 10I 3 + 4I)=
私たちは、複雑なクラスを設計し、以下のとおりです。
- メンバー変数:本当の本当の、画像の虚部、それはintです
- メンバー・メソッド:加算、減算、乗算
class Complex {
var real: Int = 0
var image: Int = 0
constructor()
constructor(real: Int, image: Int) {
this.real = real
this.image = image
}
}
またルールが実装され、実際のプラス実数部、虚数部に結合された虚数部、減算、除算共感
operator fun plus(c: Complex): Complex {
return Complex(this.real + c.real, this.image + c.image)
}
operator fun minus(c: Complex): Complex {
return Complex(this.real - c.real, this.real - c.real)
}
operator fun times(c: Complex): Complex {
return Complex(this.real * c.real - this.image * c.image, this.real * c.image + this.image * c.image)
}
使用します。
val c1 = Complex(1, 1)
val c2 = Complex(2, 2)
val p = c1 + c2
val t = c1 * c2
2.過負荷インクリメントデクリメント単項演算子
ここでのコードは、我々は唯一のものを単項演算子を知って、ここで停止ライン上に代わって機能します:
- a.unaryPlus()
+ A - a.unaryMinus()
-a(負) - a.not()
!A - a.inc()
++、++ A - a.dec()
- 、 - A
3.オーバーロードされた比較演算子
同上セクション:
- a.compareTo(B)> 0
、A> B - a.compareTo(B)<0
A <B - a.compareTo(B)> = 0
、A> = B - a.compareTo(B)<= 0
<= B
4.過負荷代入演算子
同上セクション:
- a.plusAssign(B)
+ = B - a.minusAssign(B)
- = B - a.timesAssign(B)
* = B - a.divAssign(B)
/ B = - a.remAssign(B)
= B%以下