これは、オブジェクト自体を表す独自のオブジェクトです。その使用方法は、次の 3 つのカテゴリに大別されます。
(推奨チュートリアル: java入門チュートリアル )
1. 現在のオブジェクト自体への通常の直接参照
2. 仮パラメータとメンバー名は同じ名前なので、区別するためにこれを使用します
3.参照コンストラクター this(parameter ) は、このクラスの別の形式のコンストラクターを呼び出す、コンストラクター内の最初のステートメントである必要があります。
public class Demo{ String name; public void setName(String name) { this.name = name;// 前一个name是 本类的成员属性: name; // 后一个name是setName中的参数。 } public static void main(String[]args){ Demo m=new Demo(); m.setName("旺旺"); } }
Super は、自身のスーパー (親) クラス オブジェクトを指すものとして理解できます。このスーパー クラスは、それ自体に最も近い親クラスを参照します。また、大きく 3 つの用途に分かれています:
(ビデオ チュートリアルの推奨: java ビデオ チュートリアル)
1. 通常の直接引用。これと同様ですが、次の点が異なります。親クラスのメンバーを呼び出すことができる親クラスのオブジェクト。
2. サブクラスのメンバー変数またはメソッドは、親クラスのメンバー変数またはメソッドと同じ名前を持ち、スーパーで区別できます。
3. 参照コンストラクター、スーパー (パラメーター): 親クラスの特定のコンストラクターを呼び出します (コンストラクターの最初のステートメントである必要があります)
public class Main extends teacher{ public static void main(String[] args) { //super(); } public Main(){ this(); super();//出错,this()与super()不能同时出现,且this(),super()都必须在第一行 } } class teacher { }
属性間の違い: this 属性にアクセスしますこのクラスにこの属性がない場合は、親クラスから検索を続けます。 super は、親クラスのプロパティにアクセスします。
メソッドの違い: このクラスのメソッドにアクセスします。このクラスにこのメソッドがない場合は、親クラスから検索を続けます。 super は親クラスのメソッドにアクセスします。
構築の違い: これはこのクラスの構築を呼び出し、構築メソッドの最初の行に配置する必要があります。 super は親クラスのコンストラクターを呼び出し、サブクラスのコンストラクター メソッドの最初の行に配置する必要があります。
その他の違い: これは現在のオブジェクトを表します。 super は現在のオブジェクトを表すことはできません。
以上がJavaのthisとsuperの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。