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 |