this关键字
1.java中的this
(1)当使用c1去访问该对象时,整个过程中出现的this就是c1
(2)
2.带不带static关键字
(1)带static:使用类名. 访问。
(2)不带static是实例变量,实例方法:使用引用.
(3)static的方法调用不需要对象,直接使用类名,所以执行过程中没有当前对象,所以不能使用this。
3.this多数情况可省略
4.static在主函数
int num=10在同类主函数外,要想用先new对象。
5.static和this
带static的方法不能“直接”调用实例变量和方法,要先new对象出来。
6.this什么时候不能省略
java语言中存在‘就近原则’
(1)加this区分局部变量和实例变量时不能省略this。
7.通过一个构造方法调另一个构造方法
使用this()只能出现在构造方法第一行
8.this可以用在哪里
(1)this.和this()的区别
9.例子
(1)省略和不省略
public class Test {
//没有static的变量
int i =10;
//带有static的方法
public static void doSome() {
System.out.println("do some!");
}
//没有static的方法
public void doOther() {
System.out.println("do other!");
}
//带有static的方法
public static void method1() {
//调用doSome
// 完整方式的调用
Test.doSome();
// 省略方式的调用
doSome();
// 调用doOther
// 完整方式的调用
Test tt = new Test();
tt.doOther();
// 省略方式的调用
// 访问i
// 完整方式的调用
System.out.println(tt.i);
// 省略方式的调用
}
//没有static的方法
public void method2() {//不带static里面有this
//调用doSome
// 完整方式的调用
Test.doSome();
// 省略方式的调用
doSome();//????为什么
// 调用doOther
// 完整方式的调用
this.doOther();
// 省略方式的调用
doOther();
// 访问i
// 完整方式的调用
System.out.println(this.i);
// 省略方式的调用
System.out.println(i);
}
//主方法
public static void main(String[] args) {
// 要求调用method1
// 完整方式的调用
Test.method1();
// 省略方式的调用
method1();
// 要求调用method2
// 完整方式的调用
Test dd = new Test();
dd.method2();
// 省略方式的调用
}
}
super关键字
一、基本语法
1.与this关键字的区别
在构造方法的第一行,没有this东西,默认有super()。
注意:一个类的无参构造方法,要手动先写出来。 因为如果无参构造方法的丢失会影响子类的创建
对于第4点。为啥是既没有super()也没有this()?
this()和super()不能共存,他们都只能出现在构造函数第一行。
2.习题
new c();
顺序:1 3 6 5 4
3.在适当的时候使用super(实际参数列表)
4.super是什么
例子