新手问题求解:Java中this关键字的含义及用法

abner_me 2008-03-16 09:15:42
如下述,乃Java编程思想中的实例。小弟初涉java,不大懂this关键字的含义,具体说是不懂它的用法,哪位大哥有心思,借下例给小弟讲解哈下述程序的运行以及this的含义及用法。不胜感激。
class Person {
public void eat(Apple apple) {
Apple peeled =apple.getPeeled();
System.out.println("Yummy");
}
}

class Peeler {
static Apple peel(Apple apple) {
return apple;
}
}

class Apple {
Apple getPeeled() {return Peeler.peel(this);}
}

public class PassingThis {
public static void main(String[] args) {
new Person().eat(new Apple());
}
}
...全文
477 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
aipb2008 2008-03-17
  • 打赏
  • 举报
回复
你学过c++这就不是个问题了
yes152 2008-03-17
  • 打赏
  • 举报
回复
编程思想return this这道小题也很经典呀!很容易在一条语句里执行多次操作
public class Leaf {
int i = 0;

Leaf increment() {
i++;
return this;
}

public void p() {
System.out.println("i = " + i);
}
public static void main(String[] args) {
Leaf x = new Leaf();
x.increment().increment().increment().p();
}

}
AshEmissary 2008-03-17
  • 打赏
  • 举报
回复
2楼正解
zengcan 2008-03-17
  • 打赏
  • 举报
回复
和C++中的大致一样,增加了2楼说的方法二
yes152 2008-03-16
  • 打赏
  • 举报
回复
class B {

public void bMethod(A a) {
a.p(); // 5
}
}

public class A {

public void aMethod() {
B b = new B(); // 3
b.bMethod(this); // 4
}

public void p() {
System.out.println("ssss"); // 6
}

public static void main(String[] args) {
A a = new A(); // 1
a.aMethod();  // 2
}

}
网络咖啡 2008-03-16
  • 打赏
  • 举报
回复
楼上的已经总结的很全了
rainsilence 2008-03-16
  • 打赏
  • 举报
回复
this有两种用法
public class Test {

private String name;

private int age;

public Test() {}

public Test(String name) {
// this代表这个类声称后的对象,在内部可以取得这个类的属性
this.name = name;
}

public Test(String name, int age) {

// 这是第二中用法,跟第一种概念不一样,他值调用这个类的具有一个String 参数的构造方法
this(name);

// this代表这个类声称后的对象,在内部可以取得这个类的属性
this.age = age;
}

public String getName() {
// this代表这个类声称后的对象,在内部可以取得这个类的属性
return name;
}

public void setName(String name) {
// this代表这个类声称后的对象,在内部可以取得这个类的属性,这里的String name是外部变量,跟this.name是class内部的属性,存放地质是不一样的。
this.name = name;
}

public String getRealName() {
// 类内部所以可以引用内部方法,把this堪称是这个类声称后的对象在内部的调用就方便理解多了
return this.getName() + "John";
}
}
xiaomaha 2008-03-16
  • 打赏
  • 举报
回复
指当前这个类的方法或属性

62,623

社区成员

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

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