在java中this关键字可以用于任何方法里面,引用当前对象,也就是说this总是到调用方法的对象的引用, public class Leaf{ int i = 0; leaf(int i){this.i = i;} }在这个小程序中this.i调用的是成员变量i,而等号右边的i则是形参i,在这个程序中等号右边的i遵循就近原则离它最接近的是哪个i它就是那个的引用; super:使用super关键字子类可以调用超类定义的构造方法;例如:super(argument-list); 其中argument-list指的是超类中某一个构造函数所需要的任何变元;super()这行代码必须是子类的构造函数中第一条首先执行的语句!super()总是指向直接位于所调用类之上的超类,
1楼说得够明白了,实在不明白,去百度。
this可以调用本类的属性、对象、构造方法。super是调用父类的,不是本类。多做实例,就明白了。
package org.test.javaCharacteristic.examj.inherit;public class FatherClass {
public void test1(){
System.out.println("这是father的test1方法");
}
public static void main(String arg[]){
(new ChildClass()).test2();
}
}class ChildClass extends FatherClass{
public void test1(){
System.out.println("这是child的test1方法");
}
public void test2(){
this.test1();
super.test1();
}
}
this.test1();调用本类的test1方法
super.test1();;调用父类的test1方法
还有第二章 数组循环 泛型 集合框架 这些都是重点中的重点 必须掌握 别忘了java的编程思想 面向对象 这个是不会改变的 用面向对象的思想 去考虑
在我看来super用的地方不是很多,最多是用在类的构造之中,在构造中必须放在第一句,通常是初始化父类对象,或者是调用父类非private成员,super特指父类
this关键字用的地方就比较多了
public void show(int count){this.count=count;//在这里类成员名和变量名同名的时候会用this来特指类的成员,用来区分 }
this用来指代该类的成员,注意在static方法之中是没有对象引用的,这是由于static所修饰的方法或者属性不属于某个具体的对象,而是属于类,所以static方法中是没有具体对象的引用的
super是调用父类的,不是本类。
this,super一般都放在构造方法的第一句!!!
super是指向父对象的指针。
方法的区别:this访问本类中的方法,如果本类没有此方法则从父类中继续查找。super访问父类中的方法。
构造的区别:this调用本类构造,必须放在构造方法的首行。super调用父类构造,必须放在子类构造方法首行。
其他区别:this表示当前对象。super不能表示当前对象
public class Leaf{
int i = 0;
leaf(int i){this.i = i;}
}在这个小程序中this.i调用的是成员变量i,而等号右边的i则是形参i,在这个程序中等号右边的i遵循就近原则离它最接近的是哪个i它就是那个的引用;
super:使用super关键字子类可以调用超类定义的构造方法;例如:super(argument-list);
其中argument-list指的是超类中某一个构造函数所需要的任何变元;super()这行代码必须是子类的构造函数中第一条首先执行的语句!super()总是指向直接位于所调用类之上的超类,
super一般在继承类中用
super 指的是 当前类的父类的引用
super:super是指父类,就是当前类的父类。如:super(msg)也是给父类有参构造方法传入一个msg参数
this与super比较;
用于构造方法时:this用于调用本类的其他构造方法,super用于调用父类中参数匹配的构造方法用于变量时:this用于访问实例变量,以区分局部局部变量,super用于访问父类的属性(前提是访问控制权限允许)用于方法时:隐含调用本类的方法,super用于访问父类的方法(前提是访问控制权限允许)其它用途:this可用来指代本身,将自己作为参数传递给别的对象中的方法,super不能作为方法的参数给你再讲下使用规则:
1、this或super调用,两者不能同时出现
2、this或super调用必须位于构造方法代码的第一行,在其后(而不能在它之前)可以有其他的初史化代码
3、如果在构造方法中没有显式使用this语句调用重载的其他构造方法,也没有使用super语句调用父类构造方法,则系统默认调用父类的无参构造方法,即super()。
还不明白?
楼主看看这个就明白了
super 是父类的。