java中j2me的一个小程序 又不解的地方 新手求教

程序代码如下:importjavax.microedition.midlet.*;importjavax.microedition.lcdui.*;//继承自MIDlet... 程序代码如下:
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
//继承自MIDlet的ClearScreen类
public class ClearScreen extends MIDlet
{
private Display mydisplay;
private MyCanvas mycanvas;
public ClearScreen()//构造函数
{
mydisplay=Display.getDisplay(this);
mycanvas=new MyCanvas();//这里的两个this都指的是继承自MIDlet的ClearScreen
}

protected void startApp()
{ mydisplay.setCurrent(mycanvas);}
protected void pauseApp()
{}
public void destroyApp(boolean un)
{}
}
//继承自Canvas的MyCanvas类
class MyCanvas extends Canvas implements CommandListener
{
private Command exit;
private ClearScreen example;
private ClearScreen cs=new ClearScreen();
public MyCanvas()
{
exit=new Command("Exit",Command.SCREEN,1);
this.addCommand(exit);
this.setCommandListener(this);
}

protected void paint(Graphics g)//重写 为什么访问权限严了?
{
g.setColor(255,0,255);
g.fillRect(0,0,getWidth(),getHeight());
}

public void commandAction(Command c,Displayable d)
{
if(c==exit)
{cs.destroyApp(true);cs.notifyDestroyed();}
}
}
问题如下:
1 paint()函数在Canvas中原型为protected abstract void paint(Graphics g) 为什么在MyCanvas在中重写权限定义为protected没有出错?书上说“重写方法不能比被重写方法有着更严格的访问权限”。求解。
2 commandAction()函数中用于点击exit按钮推出的代码不能发挥作用,但是编译通过,请问我的哪里出问题了?要想实现按钮exit的退出操作,要怎么写?
谢谢各位
3 一个包中两个类A和B A中用protected修饰的函数在类B中可以用(B不是A的子类)
为什么?
分不多了 高手分谢谢了 请帮帮我
展开
 我来答
朱可星
2011-04-11 · TA获得超过913个赞
知道小有建树答主
回答量:1860
采纳率:91%
帮助的人:332万
展开全部
这里 你用的canvas 是一个继承类,所以只要不是private 就可以 正常访问。

2。if(c==exit) 不对啊,应该是c.

你这里这么定义的 ,exit=new Command("Exit",Command.SCREEN,1);
最好用 Command.EXIt. 你仔细看书上的例子,很简单的

3。其实 默认的类 都是protected 修饰。 只有private 有权限 限制,protected 是用于 包外访问权限的控制。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式