this 当前类的一个对象(实例),this.可以调用当前类所定义的所有方法和当前类所继承父类和当前类祖先类的所有方法 super 当前类的父类,因为继承机制,当前类实例可以看做是当前类父类的一个实例,super.可以调用当前类父类所定义的所有方法和祖先类的定义的方法, 另外,方法的调用还与修饰方法的关键字有关 public任意访问 defualt... protected... private... 自己查查看了
在一个class里面,this表示由该类产生的instance自身.举个例子: public class persion{ private String name=null; private int age; public void setName(String name){ this.name=name; } public String getName(){ return name; }} 在这个类中setName方法中第一个变量用this是为了和本方法的参数this做区别,表示这个name指的是Person这个类的name属性,而不是name参数,如果去掉这个this,执行完这个方法后,Person类的name属性仍然为null getName方法返回的Person类的name,之所以不用this是因为没有必要,因为编译器会知道这个name就指的是Person的name而不是其他的name(因为找个方法没有name变量和它混淆)。当然,这个方法你也可以显示的使用return this.name,没错。
this有两种用法,一是指代当前对象,二是调用无参构造方法; super,是在子类中对父类的表示,简单的说,就是父类 给个简单例子,你看的明白点: class Father { String f; public Father() { // 这里的this指代当前的这个Father类的一个对象实例 this.f = "Father"; System.out.println("这是父类的构造方法"); } }class Son extends Father { String s; public Son() { // 这里就是利用super调用父类的构造方法 // 同理,可以用super.方法名调用父类的方法 super(); System.out.println("这是子类的无参构造方法"); } public Son(String s) { //这个this()方法就是调用无参构造方法 this(); // 这里的this指代当前的这个Son类的一个对象实例 this.s = s; System.out.println("这是子类的有参构造方法"); } }public class SimpleTest { public static void main(String[] args) { Son s = new Son("son"); }}//我想这个类的执行过程,你只要运行一遍就能够理解了 //运行结果如下: //这是父类的构造方法 //这是子类的无参构造方法 //这是子类的有参构造方法
this ------这------当前类 super------超级-----比这个类还牛b的肯定是他爹呗
一:引用成员变量; 既:当成员变量和局部变量重名时,在方法中使用this时,表示的是该方法所在类中的成员变量。(this是当前对象自己)【把自己当作参数传递时,也可以用this.(this作当前参数进行传递)】二:当在匿名类中用this时,这个this则指的是匿名类或内部类本身。这时如果我们要使用外部类的方法和变量的话,则应该加上外部类的类名。三:调用构造方法: 如: public class Student{ //定义一个类,类的名字为student public Student(){ //定义一个方法,名字与类相同故为构造方法 this(“小强”) } public Student(String name){ //定义一个带形式参数的构造方法 } } 四:返回对象的值;
super是指super class,父类。
super 引用当前对象的父类
super 当前类的父类,因为继承机制,当前类实例可以看做是当前类父类的一个实例,super.可以调用当前类父类所定义的所有方法和祖先类的定义的方法,
另外,方法的调用还与修饰方法的关键字有关
public任意访问
defualt...
protected...
private...
自己查查看了
super调用父类构造方法。
super也是一个引用 指向该实例的父类实例
super是父类的
public class persion{ private String name=null;
private int age; public void setName(String name){
this.name=name;
}
public String getName(){ return name;
}} 在这个类中setName方法中第一个变量用this是为了和本方法的参数this做区别,表示这个name指的是Person这个类的name属性,而不是name参数,如果去掉这个this,执行完这个方法后,Person类的name属性仍然为null
getName方法返回的Person类的name,之所以不用this是因为没有必要,因为编译器会知道这个name就指的是Person的name而不是其他的name(因为找个方法没有name变量和它混淆)。当然,这个方法你也可以显示的使用return this.name,没错。
super,是在子类中对父类的表示,简单的说,就是父类
给个简单例子,你看的明白点:
class Father {
String f; public Father() {
// 这里的this指代当前的这个Father类的一个对象实例
this.f = "Father";
System.out.println("这是父类的构造方法");
}
}class Son extends Father {
String s; public Son() {
// 这里就是利用super调用父类的构造方法
// 同理,可以用super.方法名调用父类的方法
super();
System.out.println("这是子类的无参构造方法");
} public Son(String s) {
//这个this()方法就是调用无参构造方法
this();
// 这里的this指代当前的这个Son类的一个对象实例
this.s = s;
System.out.println("这是子类的有参构造方法");
}
}public class SimpleTest { public static void main(String[] args) {
Son s = new Son("son");
}}//我想这个类的执行过程,你只要运行一遍就能够理解了
//运行结果如下:
//这是父类的构造方法
//这是子类的无参构造方法
//这是子类的有参构造方法
构造器和方法使用关键字this有很大的区别。方法引用this指向正在执行方法的类的实例。静态方法不能使用this关键字,因为静态方法不属于类的实例,所以this也就没有什麽东西去指向。构造器的this指向同一个类中,不同参数列表的另外一个构造器.
"super"的用法
构造器和方法,都用关键字super指向超类,但是用的方法不一样。方法用这个关键字去执行被重载的超类中的方法。构造器使用super去调用超类中的构造器。而且这行代码必须放在第一行,否则编译将出错。
super------超级-----比这个类还牛b的肯定是他爹呗
既:当成员变量和局部变量重名时,在方法中使用this时,表示的是该方法所在类中的成员变量。(this是当前对象自己)【把自己当作参数传递时,也可以用this.(this作当前参数进行传递)】二:当在匿名类中用this时,这个this则指的是匿名类或内部类本身。这时如果我们要使用外部类的方法和变量的话,则应该加上外部类的类名。三:调用构造方法:
如:
public class Student{ //定义一个类,类的名字为student
public Student(){ //定义一个方法,名字与类相同故为构造方法
this(“小强”)
}
public Student(String name){ //定义一个带形式参数的构造方法 } }
四:返回对象的值;
super--------父类的
记住这两点就OK了。
具体:
this(有参数/无参数) 用于调用本类相应的构造函数
super(有参数/无参数) 用于调用父类相应的构造函数
this. 后跟方法或属性 指示本类的方法或属性
super. 后跟方法或属性(父类中指明的public protected)
super是父类,当前对象的父类引用
super 调用父类的东西,也可以理解为父类的引用
沙发那么多帅哥...哦哦哦不过还是看到那两个代码回复才知道是干什么,第一个写得好,不过英文拼写有错,我看了他的才知道为什么有些地方要用this,第二个当然很详细