ça et super en Java

1 ce mot clé

1.1 cela accède aux propriétés de cette classe

cela représente une référence à l'objet actuel

  • L' objet dit actuel fait référence à l'objet qui appelle des méthodes ou des propriétés dans la classe actuelle.
  • ceci ne peut être utilisé qu'à l'intérieur d'une méthode et représente une référence à "l'objet qui a appelé la méthode"
  • this.Nom d'attribut, indiquant les propres attributs de l'objet

Lorsque les propriétés et méthodes ou constructeurs d'un objet portent les mêmes noms, utilisez ceci pour les distinguer.

public class Person{
    String name;
    public Person(String name){
        //用以区分对象中的属性名,参数名
        this.name = name;
    }
}

1.2 cette méthode d'appel

Le mot-clé this appelle le constructeur surchargé de la classe

Le mot clé this doit être sur la première ligne du constructeur

public class Person{
    String name;
    int age;
    public Person(int age){
        this.age = age;
    }
    public Person(String name){
        this(1);
        this.name = name;
    }
}

this.Method name : représente la propre méthode de l’objet actuel

public class Student{
    public void eat(){
        System.out.println("吃饭");
    }
    public void talk(){
        this.eat();
        System.out.println("吃完饭再说话");
    }
}

1.3 Notes sur l'utilisation de ce mot-clé

cela ne peut pas être utilisé dans les méthodes statiques et les blocs statiques

La méthode main est également statique, elle ne peut donc pas être utilisée dans la méthode main.

2 super mots-clés

Constructeur de super accès 2.1

En héritage, le constructeur de la sous-classe doit dépendre du constructeur fourni par la classe parent

super (liste de paramètres) accède au constructeur de la classe parent

super appelle le constructeur de la classe parent, qui doit être en première ligne du constructeur de la sous-classe

//父类
public class Person{
    public Person(){}
}
//子类
public class Student extends Person{
    public Student(){
        super();
    }
}

En héritage, le constructeur de la sous-classe doit dépendre du constructeur fourni par la classe parent

//父类中只有带参构造方法
public class Base {
  String name;
  int age;
  
  public Base(String name, int age){  
  }
}
//子类构造方法必须依赖父类
public class Son extends Base{
  public Son(){
    //如果父类提供的只有带参构造方法,子类的构造方法必须依赖父类提供的现有构造方法;
    //使用super(参数列表)去访问父类提供的构造函数,且必须明确写出参数;
    //super必须在第一行
    super("张三", 20);
  }
}

2.2 super accède aux attributs de la classe parent

Dans une méthode ou un constructeur de sous-classe, accédez aux propriétés de la classe parent à l'aide de super.property

Scénarios d'application :

Lorsqu'une propriété du même nom est définie dans une sous-classe et une classe parent, et que vous souhaitez appeler la propriété déclarée dans la classe parent, vous devez utiliser le super.property pour indiquer que vous appelez la propriété déclarée dans la classe parent. classe.

public class Car{
  //车架号
  int id;
}

class Benz extends Car{
  //内部车辆编号
  int id; 
  public void showInfo(){
    System.out.println("车架号是:" + super.id + " 内部车辆编号:" + id);
  }
}

2.3 super méthode pour accéder à la classe parent

Dans la méthode ou le constructeur de la sous-classe, appelez la méthode de la classe parent en utilisant le nom de la super.méthode.

public class Car{
  public void drive(){
    System.out.println("驾驶");
  }
}

class Benz extends Car{
  public Benz(){
    //访问父类方法
    super.drive();
  }
}

3 La différence entre super et ça

super() doit appeler le constructeur de la classe parent et doit être sur la première ligne du constructeur

this() doit appeler le constructeur de cette classe et doit être sur la première ligne du constructeur

super() et this() ne peuvent pas apparaître en même temps dans le même constructeur

super

ce

Objet représentatif

Représente une référence à l'objet de classe parent

l'objet actuel lui-même

préfixe

Ne peut être utilisé que sous conditions d'héritage

Peut être utilisé sans héritage

Méthode de construction

Structure de classe parent

Ce type de structure

 

Je suppose que tu aimes

Origine blog.csdn.net/QQ156881887/article/details/129458267
conseillé
Classement