java中的this问题

importjavax.swing.JFrame;importjavax.swing.JMenu;importjavax.swing.JMenuBar;importjav... import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
public class MenuDemo extends JFrame {
public MenuDemo(String title)
{
super(title);
JMenuBar bar=new JMenuBar();
JMenu menu=new JMenu("File");
JMenuItem item1=new JMenuItem("open");
JMenuItem item2=new JMenuItem("save");
JMenuItem item3=new JMenuItem("close");
bar.add(menu);
menu.add(item1);
menu.add(item2);
menu.addSeparator();
menu.add(item3);
this.setJMenuBar(bar);
this.setSize(300,200);
this.setVisible(true);
}
public static void main(String [] args) {
new MenuDemo("menu");
}
}
请问this在这里是指谁呢?
再追加一个问题:如何在"open"菜单项上增加一个图标文件?如何实现啊?
展开
 我来答
谁能把我捡回家
2011-02-06 · TA获得超过176个赞
知道答主
回答量:48
采纳率:0%
帮助的人:70万
展开全部
首先java对于对象的内存管理是这样的
泛泛的说 一个类所有的对象 他们共享一个代码段 各自有各自的数据区
所以当你要执行一个语句时 比如a++;或者sort();
他就必须知道是哪各一对象要执行这行代码,然后找到那个对象的数据区 取出数据 如果有必要再取出这个类的代码区 交个cpu去运算
this就相当一个指针,指向正在跑的那个对象,对于程序员来讲可写可不写
当源程序 .java 到中间吗.class的是时候会补充所有的this.
比如你写一个类:
class Test{
private String a;
public void foo()
{
a=new String();
}
}

形成中间码.class后会变成
class Test{
private String a;
public void foo()
{
this.a=new String();
}
}

编程者是用的面向对象的思想 可是电脑可没那么聪明 他还是要知道是哪个对象要去执行这个代码的

你是想在在单按钮左边加个图标是吧
jMenu3.setIcon(new javax.swing.ImageIcon(“…………”));
省略号的地方填图的路径
乁Freedom
2011-02-06 · TA获得超过2128个赞
知道小有建树答主
回答量:1580
采纳率:0%
帮助的人:1411万
展开全部
this的用法通常是只会在方法里(包括构造方法)
调用一个方法,java会将一个this隐式的传到方法里,然后你在方法里用this的话,this就是指调用这个方法的对象,如:
MyObject mo = new MyObject();
mo.show();
假设show这个方法里的代码是:
System.out.println(this.info);//info是一个属性
这时this就是指mo这个对象

对于你的程序,因为你是在构造方法里使用this
那么当你new MenuDemo这个对象时,如
MenuDemo md = new MenuDemo();
那么构造方法里的this就是指md这个对象,说得准确一点md只不过是个引用
你只要知道java会隐式的传一个this参数到方法里,这个this就是指调用该方法的对象
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dingqiaowu
2011-02-09 · TA获得超过200个赞
知道小有建树答主
回答量:612
采纳率:0%
帮助的人:433万
展开全部
MenuDemo
this是指当前类对象
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hesper0
2011-02-06 · TA获得超过512个赞
知道小有建树答主
回答量:289
采纳率:0%
帮助的人:232万
展开全部
这的是MenuDemo 而 setJMenuBar setSize setVisible 是从他的父类JFrame 中继承过来的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友990cb3d
2011-02-06 · TA获得超过168个赞
知道小有建树答主
回答量:138
采纳率:0%
帮助的人:122万
展开全部
JFrame 的子类,即你自己的MenuDemo这个类,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式