質問: 1; とまとまるように、このcodeではどういった文が略されているのでしょうか。 以上3点よろしくお願いいたします。
回答: > > 1引数の中にthisがあるがこれはどこを指しているのか。 > > > いまこのメソッドを実行しているオブジェクト自身、つまりここではMainActivityのインスタンスを指します。 AndroidのアプリではActivityのインスタンスを明示的に生成はしませんが、実行して画面を出すときにこのインスタンスを生成しているとお考えください。そのインスタンスをMediaControllerのコンストラクタに渡しています。 このコンストラクタはContextという型のオブジェクトを要求しています。ActivityはContextを継承しているので、このコンストラクタに渡すことができます。 > > 2new MediaController(this) > > > `new クラス名(引数)`は、引数の数や型に対応したそのクラスのコンストラクタを起動し、この型の新しいインスタンスを生成して返す文です。別に省略しているわけではなく、新たなMediaControllerのインスタンスを作成しているだけです。 > > 3最後の v.setMediaController(new MediaController(this)); > > > いまこの文はVideoViewのsetMediaControllerというメソッドに渡しています。このメソッドは引数にMediaControllerを要求します。なのでこの文でMediaControllerのインスタンスを作成し、そのまま渡しています。 あえて分けるとするなら ``` MediaController mc = new MediaController(this); v.setMediaController(mc); ``` となりますが、あえて変数に入れる必要が無いため、new文を直接メソッドの引数に渡しています。 わからないところはコメントしてください。