当前位置:编程学习 > wap >>

初学J2ME的体会


学习J2ME已经有几天的时间了,今天我以一个初学者的角度来谈谈如何学习J2ME

记得我第一次看J2ME的书时间是在我要去应聘xxx公司的J2ME开发工程师职位的前一天,那天为了面试的需要我准备了一天的时间,对于一个J2ME的菜鸟都还算上的我可想而之在短短的一天时间能准备成什么样子,我们知道一门语言要入门是得有一个过程的,这个过程至少要有4天的时间,何况面对的大家公认很难的J2ME,有的人编代码编了一辈子也许都没有机会接触到它,记得当时我根据招聘信息上面的要求,强行自己记忆了一些知识点,可是还没有到了面试时忘记得一干二尽,当时恨自己不成钢,幸亏笔记的时候大部分是Java基础知识,J2ME的知识都是些选择题,也许是这些选择题我大部分都选择对了,因为后来听说我的笔试分数还很高哦。

要学习好J2ME Java基础是关键

首先在学习J2ME之前要弄懂的知识:

①Java中包结构的关系

②private、protected、defualt、public在不同的情况下的访问权限

③要真正理解抽象类、抽象方法、继承的含义及其接口的属性的理解

④有一定的模式设计概念:什么是单例设计模式、工程设计模式?

⑤理解线成的正在执行过程(注意:Thread类在J2ME中没有stop()方法)

⑥对输入输出的理解

⑦有察看API的能力

我觉得有了上面的基础后在学习J2ME就可以了,提出⑦条的原因是我在学习Java有几年了还没有这样的能力,不是因为我的英文太差,而是因为我没有下意识的告诉自己去查,在遇到问题时只是养成了google的习惯,希望大家不要走自己路,遇到问题一定先自己查相关的API,不行再想其他的办法,这可是我几天在家的埋头查询(因为当时家没有安装宽带网,只能看API文档)的体会,人的潜能是逼出来的嘛,所以要下意识地给自己施加压力哦。

我们来看J2ME的API

MIDlet类:所有的应用程序都要继承这个类

记得第一次看J2ME的书的时候,没有一本书分析一个J2ME的程序的结构,要是有很好的Java基础看看API就可以搞定――――这里要用到的知识:extends、abstract的真正含义,下面我再好好补充一下:

一个抽象类要是它的子类没有声明是abstract,该自类必须重写父类的抽象方法,这样看看MIDlet类的就知道MIDlet是一个abstract类,所以它的子类要重写它的startApp()、pauseApp()、destroyApp(Boolean unconditional)这三个方法。一个abstract类的默认属性是什么也的弄懂,这可以跟interface结合着来理解。

入门级别的学习之道:

我们在学习一门语言经常的入门例子就是“Hello World”,我们也以在程序运行时在手机屏幕上显示“Hello World”字符为例来作为入门的第一个J2ME程序。代码如下:


import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.TextBox;
 
public class HelloWorld extends MIDlet {
    private Display displayable;
    private TextBox nameTextBox;
    public HelloWorld() {
        displayable = Display.getDisplay(this);
    }
 
    protected void startApp() throws MIDletStateChangeException {
        nameTextBox = new TextBox("", "Hello World", 20, 1);
        displayable.setCurrent(nameTextBox);
    }
 
    protected void pauseApp() {
    }
 
    protected void destroyApp(boolean unconditional) throws
            MIDletStateChangeException {
    }
}


在看了上面的最简单的HelloWorld程序要弄懂的类:Display、TextBox、MIDlet,通过这个例子要对里面涉及到每个类的具体用法有很清楚的理解,这样的要求在刚学习J2ME的时候肯定会感觉到很类,但这是一个良好的习惯,这样坚持下来在写其他的代码不久就得心应手了。下面再在上面的例子的基础上添加一个退出菜单,只需要让上面的类实现CommandListener接口就行了。

import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.TextBox;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.Displayable;
 
public class HelloWorld extends MIDlet implements CommandListener {
    private Display displayable;
    private TextBox nameTextBox;
    private Command exitCommand;
    public HelloWorld() {
        displayable = Display.getDisplay(this);
    }
 
    protected void startApp() throws MIDletStateChangeException {
        nameTextBox = new TextBox("", "Hello World", 20, 1);
        exitCommand = new Command("退出", Command.EXIT, 1);
        nameTextBox.addCommand(exitCommand);
        nameTextBox.setCommandListener(this);
        displayable.setCurrent(nameTextBox);
    }
 
    protected void pauseApp() {
    }
 
    protected void destroyApp(boolean unconditional) throws
            MIDletStateChangeException {
    }
 
    public void commandAction(Command command, Displayable displayable) {
        if (command == exitCommand) {
            try {
                destroyApp(false);
            } catch (MIDletStateChangeException e) {
                e.printStackTrace();
            }
            notifyDestroyed();
        }
    }
}


通过上面的例子又要查看J2ME的API了,看看CommandListener接口定义的方法,这又涉及到接口的知识了,实现一个接口就必须实现该接口的所有方法,而且访问权限限制修饰符必须是public修饰。 --------------------编程问答-------------------- --------------------编程问答-------------------- 有过J2SE基础的人,学习J2ME还是比较容易的,MIDP 2.1(JSR118)包中才十来个包,加起来的类不到200个。
不过J2ME支持第三方包,这就是个庞大的体系了。

不过还是感谢楼主的分享精神。

另:查API是程序员的基础本能,楼主学习JAVA几年了,都没养成这样的习惯,相信走了不少弯路。 --------------------编程问答-------------------- 写的不错,学习了。 --------------------编程问答-------------------- 没看懂~  j2e有点难度 --------------------编程问答-------------------- 有点意思,可以学习! --------------------编程问答-------------------- 不错    我正想走这方面去····
可是Java基础不是很捞··· --------------------编程问答-------------------- --------------------编程问答-------------------- 学习了,谢谢分享! --------------------编程问答-------------------- 不错,很好的感想 --------------------编程问答-------------------- --------------------编程问答-------------------- 学习。 --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 不过还是感谢楼主的分享精神。

另:查API是程序员的基础本能,楼主学习JAVA几年了,都没养成这样的习惯,相信走了不少弯路。 --------------------编程问答-------------------- 呵呵,开始接触中,, --------------------编程问答-------------------- 说实在的 你说的都是基础 --------------------编程问答-------------------- --------------------编程问答-------------------- "何况面对的大家公认很难的J2ME"

楼主,谁跟你说的J2me很难!!!还大家公认!!! --------------------编程问答-------------------- 还是个初学者看起来难 --------------------编程问答-------------------- 我没看懂 --------------------编程问答-------------------- 对于初学者来说是有点难度!可是学好不是那么难的! --------------------编程问答-------------------- LZ专业点,现在叫JavaME了,不再是J2ME! --------------------编程问答-------------------- 楼主给力哦,呵呵、不过现在叫JavaME了,不再是J2ME! --------------------编程问答-------------------- 何况面对的大家公认很难的J2ME,有的人编代码编了一辈子也许都没有机会接触到它,

j2me 很难吗?那 c c++ MFC QT COCOA object-c 岂不是难于登天?

j2me很难有机会接触吗?只要自己有电脑,只要你想学,都有机会接触,机会是自己给的,不是别人。 --------------------编程问答-------------------- jfzr --------------------编程问答-------------------- 有点意思,呵呵 --------------------编程问答-------------------- 顶一个! --------------------编程问答-------------------- 路过.... --------------------编程问答-------------------- 咳咳... --------------------编程问答-------------------- 酱油撒了…… --------------------编程问答-------------------- 已阅。。 --------------------编程问答--------------------  mark  升星星 --------------------编程问答--------------------     呵呵 支持了 --------------------编程问答-------------------- 看的半懂不懂,我刚学java才半年,觉得要学的真太多了。。。。 --------------------编程问答--------------------  共同努力! --------------------编程问答-------------------- 酱油  学得很详细 --------------------编程问答-------------------- j2ee的路过。 --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- javame现在还没有接触过了。。。一直在向javaee进军 --------------------编程问答-------------------- javaME是个什么样子,有无类似楼主介绍?支持! --------------------编程问答-------------------- 学习了 --------------------编程问答-------------------- 哎,技术出身的各种优越帝啊,果然是文无第一,武无第二 --------------------编程问答-------------------- 我也想研究研究 --------------------编程问答-------------------- "何况面对的大家公认很难的J2ME"
------------------------------------

天啊! --------------------编程问答-------------------- 路过,顶一下 --------------------编程问答-------------------- 有关J2ME的游戏 引擎学习可以加我Q : 258506570 --------------------编程问答-------------------- 学习了,谢谢分享! --------------------编程问答-------------------- 呵呵,学习。。。  --------------------编程问答-------------------- j2me应该不难学吧 --------------------编程问答-------------------- 谢谢分享,学习了!!! --------------------编程问答-------------------- 学习借鉴啊…… --------------------编程问答-------------------- j2me还是比较简单的,毕竟是j2se的子集,剔除了很多复杂的模式,难点在于不同的应用平台支持的类是不同的。 --------------------编程问答-------------------- 现在还学这个东西是不是跟不上时代了哦 --------------------编程问答-------------------- 顶一下。。。虽然没学过JavaMe。 --------------------编程问答-------------------- --------------------编程问答-------------------- 怎么老师教的跟你们说的一点都不一样呀。。。你们说的老师都没有提过。。看来我还是什么都不知道。。一年白学了。。。 --------------------编程问答-------------------- 学习借鉴啊…… --------------------编程问答-------------------- 我也正在学 --------------------编程问答-------------------- 自己也想学   ... --------------------编程问答-------------------- 赞一个,貌似很高深的样子 --------------------编程问答-------------------- 謝謝!學習! --------------------编程问答-------------------- 帮你顶 --------------------编程问答--------------------
<script type="text/javascript"><!--
google_ad_client = "pub-2714364017675711";
/* g4 728x90 */
google_ad_slot = "6294780289";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
--------------------编程问答-------------------- 比j2ee容易多了啊 --------------------编程问答-------------------- 有点意思,可以学习! --------------------编程问答-------------------- 感谢分享精神! --------------------编程问答-------------------- 最近要搞JSP,进来学学 --------------------编程问答-------------------- 谢谢分享啊 --------------------编程问答-------------------- Android开发和j2me 有啥关系哦 j2me在哪些平台上开发的啊 --------------------编程问答-------------------- 把帖子看完了  --------------------编程问答-------------------- Really? --------------------编程问答-------------------- API确实是好东西 --------------------编程问答-------------------- --------------------编程问答-------------------- 路过留痕 --------------------编程问答-------------------- 好难学啊 看的人晕哦 --------------------编程问答-------------------- dfgsfsdffg  --------------------编程问答-------------------- 路过~~~~~~~~~~~~~~~~~~~~ --------------------编程问答-------------------- j2me和j2ee哪个难? --------------------编程问答-------------------- 我还在努力、 --------------------编程问答-------------------- 不错,支持一下 --------------------编程问答--------------------
补充:移动开发 ,  BlackBerry
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,