永发信息网

JAVA J2ME( 抽象类)的例子,他在程序中的作用是什么??谢谢

答案:3  悬赏:70  手机版
解决时间 2021-04-24 22:59
  • 提问者网友:暗中人
  • 2021-04-23 23:37
JAVA J2ME( 抽象类)的例子,他在程序中的作用是什么??谢谢
最佳答案
  • 五星知识达人网友:夜风逐马
  • 2021-04-24 00:53

抽象类就好像接口和类之间的东西。

实现接口,却不实现所有的方法,只是实现其中部分方法,剩下的交给子类实习。

这是一种设计模式~~便于开发和维护。

还有什么安全性啊,面向对象啊,多态~~一堆

全部回答
  • 1楼网友:七十二街
  • 2021-04-24 01:39
抽象类介于类和接口之间,其中有部分方法是未实现的(即抽象方法)。假设有一个项目,其中有一个功能模块是要在界面上显示不同样式的按钮(矩形、圆形、菱形等),且要求每个按钮类中都至少有两个方法:一是设置按钮的颜色,二是设置按钮的样式。甲和乙分别是项目小组的两名程序员,甲负责窗体界面的规划,乙负责开发不同样式的按钮,如果不使用抽象类的话,甲程序员必须要知道乙开发的每个按钮类的名称,并且要在界面的规划中为每一个按钮都单独定义一个接收方法。假设乙的代码如下: class JuxingButton//矩形按钮 {     public void setBackground(Color c)     {    //设置按钮的背景色     }     public void drawButton()     {    //绘制一个矩形按钮     } } class YuanButton//圆形按钮 {     public void setBackground(Color c)     {    //设置按钮的背景色     }     public void drawButton()     {    //绘制一个圆形按钮     } } class LingxingButton//菱形按钮 {     public void setBackground(Color c)     {    //设置按钮的背景色     }     public void drawButton()     {    //绘制一个菱形按钮     } } 甲的代码如下: class FrameFace {     public void accept(JuxingButton jx)     {    //调用矩形按钮的相关方法     }     public void accept(YuanButton y)     {    //调用圆形按钮的相关方法     }     public void accept(LingxingButton lx)     {    //调用菱形按钮的相关方法     } } 如此一来,若后期又增加了一些新的图形,除了乙要编写新的代码以外,甲也要添加新的代码,而且若运行中出现了错误,甲和乙都要对代码进行检查。 现在甲将代码改动如下: abstract class Graphics {     public void setBackground(Color c)     {    //设置按钮的背景色     }     public abstract void drawButton();//绘制一个图形按钮,该方法是抽象的 } class FrameFace {     public void accept(Graphics g)     {    //调用图形按钮的相关方法     } } 在Graphics类的两个方法中,设置背景色的方法对于甲来说可以很容易地完成,但对于绘制按钮的drawButton()方法,甲不知道乙要绘制的是哪一种图形,因此,甲无法实现drawButton()方法,只能将其修饰为抽象的。接下来,甲会告知乙说所有的乙定义的按钮类都应该继承Graphics类,并实现其中的抽象方法,这样一来,甲只要写一个accept()方法就可以了。 对于乙来讲,他需要把所有不同样式的按钮类都继承自Graphics类,然后他也不必为每个类都重写一遍setBackground()方法,因为这个方法已经是实现的了,他只要专注地去写绘制每个样式按钮的方法就可以了。 当后期要增加新图形的时候,只有乙需要编写新的代码,甲不用任何改动,而且若出现了错误,也只需要检查乙新编写的代码即可,维护量会大大地降低。 抽象类和接口的用途差不多,都是为了减少代码的编写量和减轻后期的维护量而出现的。
  • 2楼网友:千夜
  • 2021-04-24 01:15

package com.nbx.frame;

import javax.microedition.lcdui.Graphics;

public abstract class MainFrame {

    public MainFrame() {     }

    //当前显示的字符串     //  protected String[][] curString;         protected Main_View m_View;         public int curScreenState;         protected int curIndex;     protected abstract void paint(Graphics g);

    protected abstract void keyDown(int code);

    protected abstract void keyUp(int code);

        protected abstract void eventCheck();

    public abstract void sentData(byte id);

    public abstract void release();         //装载图片资源     public abstract void loadRes();

} 它的作用就是,所有窗口类的父类,在绘制的时候只需要在canvas里给父类初始化一个对象,指向对屏幕子类引用。

canvas类内:

//所有页面对象     public MainFrame curView;

      public void gotoFrame(MainFrame view) {    curView = view;    curView.loadRes();    curView.curScreenState = 0;     }     protected void paint(Graphics g) {

g.setFont(this.smallFont);    if (m_bTitle) {    drawTitle(g);    }    curView.paint(g);

}

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯