日期:2014-05-20  浏览次数:20639 次

this 和 super的区别?????
初学java不太会用 这两个 请求高手帮助!!!!!

------解决方案--------------------
在Java中,this通常指当前对象,super则指父类的。当你想要引用当前对象的某种东西,比如当前对象的某个方法,或当前对象的某个成员,你便可以利用this来实现这个目的,当然,this的另一个用途是调用当前对象的另一个构造函数,这些马上就要讨论。如果你想引用父类的某种东西,则非super莫属。请牢记“this通常指代当前对象,super通常指代父类”!
------解决方案--------------------
这个弄不明白,实在是要去看书的。
1楼说得够明白了,实在不明白,去百度。
this可以调用本类的属性、对象、构造方法。super是调用父类的,不是本类。多做实例,就明白了。
------解决方案--------------------
Java code

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();
    }
}

------解决方案--------------------
2楼说的很对 每个学java的人 都应该知道this代笔的是当前对象,而super通常是在两个类之间有继承的关系的时候会用到 ,当然 别忘了接口 ,如果你学完J2SE后的方向是JAVA WEB 的话 建议在这块多下点功夫 
还有第二章 数组循环 泛型 集合框架 这些都是重点中的重点 必须掌握 

别忘了java的编程思想 面向对象 这个是不会改变的 用面向对象的思想 去考虑
------解决方案--------------------
对了 还有一个线程跟流 当然这些 都是高级部分的了 你先把 面向对象 搞清楚在说吧
------解决方案--------------------
在构造方法中this与super不能共存,有this或super出现的地方必须是构造方法的第1句;静态方法,也就是类方法中不能有this和super关键字。唯一可共存的是在实例方法中,因为不要求this或super语句是第1句。
------解决方案--------------------
嘿嘿我也来简单聊聊this和super两个关键字
 在我看来super用的地方不是很多,最多是用在类的构造之中,在构造中必须放在第一句,通常是初始化父类对象,或者是调用父类非private成员,super特指父类
 this关键字用的地方就比较多了
public void show(int count){this.count=count;//在这里类成员名和变量名同名的时候会用this来特指类的成员,用来区分 }
this用来指代该类的成员,注意在static方法之中是没有对象引用的,这是由于static所修饰的方法或者属性不属于某个具体的对象,而是属于类,所以static方法中是没有具体对象的引用的
------解决方案--------------------
this可以调用本类的属性、对象、构造方法。
super是调用父类的,不是本类。
this,super一般都放在构造方法的第一句!!!
------解决方案--------------------
属性的区别:this访问本类中的属性,如果本类没有此属性则从父类中继续查找。super访问父类中的属性。
方法的区别:this访问本类中的方法,如果本类没有此方法则从父类中继续查找。super访问父类中的方法。
构造的区别:this调用本类构造,必须放在构造方法的首行。super调用父类构造,必须放在子类构造方法首行。
其他区别:this表示当前对象。super不能表示当前对象
------解决方案--------------------
在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()总是指向直接位于所调用类之上的超类,











------解决方案--------------------
this 当前的。。在初始化时候用
super一般在继承类中用。。。
------解决方案--------------------
this 指的是 当前编写的类的引用
super 指的是 当前类的父类的引用
------解决方案--------------------
this:this是调用当前对象,也就是本类的。如:this(10)也就是调用本类的有参构造方法,参数值就是10
super:super是指父类,就是当前类的父类。如:super(msg)也是给父类有参构造方法传入一个msg参数


this与super比较;
用于构造方法时:this用于调用本类的其他构造方法,super用于调用父类中参数匹配的构造方法

用于变量时:this用于访问实例变量,以区分局部局部变量,super用于访问父类的属性(前提是访问控制权限允许)

用于方法时:隐含调用本类的方法,super用于访问父类的方法(前提是访问控制权限允许)