有谁能帮忙解释下this,super

_梦 2010-04-28 10:21:14
有点迷糊,感觉this关键字很多时候都没有用啊
子类调用父类属性就有super吗?高手给详细解释一下,嘿嘿
...全文
107 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
_梦 2010-04-29
  • 打赏
  • 举报
回复
谢谢各位~~理解了,哈哈
pl0528 2010-04-29
  • 打赏
  • 举报
回复
一般this是指带的这个类自己的对象实例。
super就是调用父类别。
pl0528 2010-04-29
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 jiaweime 的回复:]

谢谢各位~~理解了,哈哈
[/Quote]
理解了就结贴给分吧 哈
chenhuaike 2010-04-28
  • 打赏
  • 举报
回复
this关键字基本上是有成员变量跟构造方法的参数相同时使用如:
class a{
private int b;
public a(int b){
this.b=b;
}
}
不过,其他的方法也是可以使用this,它的作用主要用来区别成员变量跟它“同名”局部变量;
至于super通常类是在无参数的构造方法里面自动调用的,也可以自己重写,它是调用父类的构造方法,
你传几个参数到super里面,它会找相应的参数个数相同的父类构造方法。
fengjie926 2010-04-28
  • 打赏
  • 举报
回复
class Plmm
{
public String name;

public Plmm(String n){
this.name = n;
}

public String getName(){
this.name;
}

}
就从这个简单的class Plmm说起,写好了一个类,不过现在它就是一个以.java结尾的文件

当需要一个Plmm的时候你会去 Plmm mm1 = new Plmm("小芳");【在内存中做了个Plmm为模板的对象mm1,这个Plmm的名字叫“小芳”】
当你mm1.getName()的时候返回“小芳”
所以此时的this表示的是 名字叫“小芳”的Plmm对象 也就是当前对象

而Plmm mm2 = new Plmm("小蝶");这时的this表示名字叫“小蝶”的Plmm对象


this是个抽象的描述,实例化到具体的对象的时候才有具体的含义







yuanlaifenglin 2010-04-28
  • 打赏
  • 举报
回复
你也在看java完全自学手册吗 一起看吧 然后多练习
lulu0126 2010-04-28
  • 打赏
  • 举报
回复
怎么用可能不好解释!

有的时候 不用this 或 super 就无法表达你的意思了!

这时候就理解了!

比如 父类 和 子类有相同的变量名字 有时就需要用this 或super了,否则可能取不到你想要的变量!
keeya0416 2010-04-28
  • 打赏
  • 举报
回复
先发个例子看看


public class Test {
public static void main(String[] args) {
A a = new B();
a.testMethod(100000);
}
}
class A{
public int i = 10;
public void testMethod(int i){
System.out.println(i);
System.out.println(this.i);
}
}
class B extends A{
public int i =100;
public void testMethod(int i){
System.out.println(i);
System.out.println(this.i);
System.out.println(super.i);
}
}
zhangweiit 2010-04-28
  • 打赏
  • 举报
回复
引用父类的方法,最常见的就是在构造函数中的super();
这一般用于重载父类方法时会用到
如果父类中有一个方法f1,子类要重载它,但是,又需要用到父类原先的功能,
于是,就可以写
void f1(){
super.f1()
//其它逻辑
}
zhangweiit 2010-04-28
  • 打赏
  • 举报
回复
一般情况下,在类的内部,就算不用this也可以引用到类成员
但是,如果与变量冲突的时候,用this可以解决这个问题,如
void f(String str){
//如果类成员也有一个str
//那它就需要用this.str,不然就是引用参数的str
}
zhangweiit 2010-04-28
  • 打赏
  • 举报
回复
类成员,可以通过this来引用
父类成员,可以通过super来引用

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧