30分でわかる(かも知れない)Groovy超入門! (4/5)
作成:2013-09-28 10:53
更新:2013-09-28 10:53
更新:2013-09-28 10:53
■クラスの利用はほぼJavaと同じ!
Groovyでは、基本的な機能はすべてJavaのシステムライブラリをそのまま使います。インスタンスを変数に代入し、メソッドを呼び出す基本的な操作もすべてJavaのままです。
では、自分でクラスを作成し利用する場合はどうなるか見てみましょう。これは、メソッドの定義がJavaと多少違っています。
問題はメソッドです。メソッドも、定義は「def」を使います。Javaのように返値などの指定は不要です。では、実際の利用例を挙げておきましょう。
また利用もJavaと同じで、implementsを使います。複数のインターフェイスを設定したければカンマで区切って記述をします。下のリスト欄に簡単な例を挙げておきましょう。Javaとそっくりなのがわかりますね。
def rnd = new Random()例えば、こんな具合に実行すると、Randomインスタンスを作り、0~99の乱数を取得し表示します。実に簡単! Groovyでは変数宣言に型を指定する必要がありませんが、これはインスタンスの場合でも同じ。上の例なら、Random rnd = ○○と書いても、def rnd = ○○と書いても問題なく動きます。
def n = rnd.nextInt(100)
println(n)
■クラスの定義
では、自分でクラスを作成し利用する場合はどうなるか見てみましょう。これは、メソッドの定義がJavaと多少違っています。
class クラス名 {クラスの定義そのものは、「class ○○」という形で記述します。これはJavaと同様ですね。フィールドは変数ですから、defで定義できます(型名を指定してももちろん可能です)。
def フィールド名
// コンストラクタ
クラス名 ( 引数 ){
……処理……
}
def メソッド名 ( 引数 ){
……処理……
}
}
問題はメソッドです。メソッドも、定義は「def」を使います。Javaのように返値などの指定は不要です。では、実際の利用例を挙げておきましょう。
class MyObj {クラスMyObjを定義し、それを使っています。やたらと「def」が出てきますが、それ以外の点ではほとんどJavaと同じですね。
def name
def mail
MyObj(nm,ml){
name = nm
mail = ml
}
def print(){
println("name:${name}")
println("mail:${mail}")
}
}
def obj = new MyObj("tuyano","syoda@tuyano.com")
obj.print()
■継承の指定
class クラス名 extends スーパークラス名 {……}継承を利用する場合も、Javaと同様に「extends」を使います。これはまったく違いはありません。
■インターフェイスの定義と利用
interface インターフェイス名 {……}
class クラス名 implements インターフェイス名 {……}インターフェイスも、ほぼJavaと同じ書き方です。classの代りにinterfaceをつけて定義します。ただしそこで書かれるメソッドは「def メソッド名」というGroovyライクな書き方になりますが。
また利用もJavaと同じで、implementsを使います。複数のインターフェイスを設定したければカンマで区切って記述をします。下のリスト欄に簡単な例を挙げておきましょう。Javaとそっくりなのがわかりますね。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
※クラスを使う例 def rnd = new Random() def n = rnd.nextInt(100) println(n) ※クラスの利用例 class MyObj { def name def mail MyObj(nm,ml){ name = nm mail = ml } def print(){ println("name:${name}") println("mail:${mail}") } } def obj = new MyObj("tuyano","syoda@tuyano.com") obj.print() ※インターフェイスの利用例 interface Myface { def helo() } class Myobj implements Myface { int helo(){ print("helo!") } } def obj = new Myobj() obj.helo()
※関連コンテンツ