public class Example{
public static void main(String args[]){
Menu a=new Menu();
Move b=new Move();
a.accept(b);
}
}
class Tools{
public void accept(Visitor v){
}
}
class Menu extends Tools{
int x=0;
public void accept(Visitor v){//v=b
v.visit(this);//b.visit(this);其中this为a
}
}
class Visitor{
public void visit(Menu m){
}
}
class Move extends Visitor{
public void visit(Menu m){
m.x=m.x+100;
System.out.println(m.x);
}
}
为什么this不是v或说是b,(v=b)而是a呢?
public static void main(String args[]){
Menu a=new Menu();
Move b=new Move();
a.accept(b);
}
}
class Tools{
public void accept(Visitor v){
}
}
class Menu extends Tools{
int x=0;
public void accept(Visitor v){//v=b
v.visit(this);//b.visit(this);其中this为a
}
}
class Visitor{
public void visit(Menu m){
}
}
class Move extends Visitor{
public void visit(Menu m){
m.x=m.x+100;
System.out.println(m.x);
}
}
为什么this不是v或说是b,(v=b)而是a呢?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货