From 97859a5d20439a6504ba3b113ab00ce5756cb1c2 Mon Sep 17 00:00:00 2001 From: xuxin <840198532@qq.com> Date: Sat, 25 Jul 2026 14:48:40 +0800 Subject: [PATCH] =?UTF-8?q?day09-this=E5=85=B3=E9=94=AE=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- day09/src/com/inmind/this_super06/Demo06.java | 13 ++++++++++++ day09/src/com/inmind/this_super06/Zi.java | 20 ++++++++++++++++++- 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/day09/src/com/inmind/this_super06/Demo06.java b/day09/src/com/inmind/this_super06/Demo06.java index 80e5b87..c0481ff 100644 --- a/day09/src/com/inmind/this_super06/Demo06.java +++ b/day09/src/com/inmind/this_super06/Demo06.java @@ -4,6 +4,19 @@ super三个使用操作: 1.super,可以在子类的成员方法中,访问父类的成员变量,格式:super.父类成员变量 2.super,可以在子类的成员方法中,访问父类的成员方法,格式:super.父类成员方法名(参数列表) 3.super,可以在子类的构造方法中,访问父类的构造方法,格式:super(参数列表) +------------------------------------------------------------------------ +谁调用方法,方法中的this就是谁(对象) +this表示子类内容,super表示父类内容 + +this关键字使用方式 +1.this,可以区分当前类中局部变量和成员变量 +2.this,可以在本类的成员方法中,调用该类的其他的成员方法(其实在一个类中所有的成员变量和成员方法的调用之前都有this.) +3.this,可以在本类的构造方法中,调用其他的重载构造方法 + + 关于第三点的注意事项: + a.this必须在第一行,不能调用自己构造方法(自己不能调用自己) + b.this和super在调用构造方法时,都必须在第一行,所以在一个构造方法中不能同时出现 + c.this可以调用其他的重载构造方法,但是不能互相调用(死循环) */ public class Demo06 { } diff --git a/day09/src/com/inmind/this_super06/Zi.java b/day09/src/com/inmind/this_super06/Zi.java index dddc81c..b0d9251 100644 --- a/day09/src/com/inmind/this_super06/Zi.java +++ b/day09/src/com/inmind/this_super06/Zi.java @@ -3,8 +3,21 @@ package com.inmind.this_super06; public class Zi extends Fu{ int num = 30; int numZi = 40; + public Zi(){ - super(); + //调用有参构造 + this(10); + } + public Zi(int num){ + //调用满参构造 + this(num, 20); + //this.num = num; 它在满参构造方法中已经定义了 + } + public Zi(int num, int numFu){ + super();//当一个类的构造方法采用this调用到满参构造,那么只有此处可以有super(参数列表),可以创建父类内容 + this.num = num; + this.numFu = numFu; + //50行的初始化功能 } @@ -14,5 +27,10 @@ public class Zi extends Fu{ System.out.println(num); System.out.println(numZi); super.method();//调用父类的方法 + this.methodZi();//调用本类的成员方法 + } + + public void methodZi() { + System.out.println("子类方法"); } }