数个星期前,我由于工作需要开始学习 Java ,尽管已经有了 C++ 的功底,但学习 过程中还是把几个概念搞混了,比方说最简单的 Hello World 。 这个例子太简单了,以至于没有人愿意多讲关于这方面的基础知识以及与 C++ 的比较。 而且,就我所看到的 Hello World 例子没有一个是够全面完整的,下面姑且抖胆拿出我自己改写的一个 Hello World 例程,并说说自己的理解(写于注释处)。
:) 尽管这个例子很简单,希望编辑能够给予通过,高手们也少踩几脚了。。。
// FileName: HiJava1234.java
/*
* 创建日期 2004-5-14
* 该文件由 Eclipse Version 2.1.3 模板生成
* 更改所生成文件模板为
* 窗口 > 首选项 > Java > 代码生成 > 代码和注释
*/
/**
* @author Administrator
*
* 更改所生成类型注释的模板为
* 窗口 > 首选项 > Java > 代码生成 > 代码和注释
*/
class HiJava // 很多教材都认为包含 main() 的类一定要声明为 public ,还要跟文件名同名,其实这里证明了并不是必须的(但仍建议使用)。
{
public static void main(String[] args) // 猜测,被声明为 static 的方法实际上就是 C 的函数
{
System.out.println("it's in HiJava main();");
// System.out.print("Objt.toString() = ");
// System.out.println(hiJava.toString());
// System.out.print("Objt.hashCode() = ");
// System.out.println( hiJava.hashCode() );
System.out.println();
hiJava.getStatus();
}
// 这样,就算该类没有被初始化,一样可以使用里面的方法,但是,对成员的访问就不能随意了,除非那个成员一样是 static
// 当然,由于不知道还有没有初始化,也不能用 this 来访问。 本来该 main 应该写在外面的,不过这里写在声明为 public
// 的类里也没有错,因为这样的类在一个 .java 文件当中只允许出现一个。
String Title = "HiJava Sample"; // C++ 里不可以向成员赋初始值,这里则刚好相反
HiJava(String inString)
{
System.out.println("HiJava init...");
System.out.println(inString);
System.out.println();
}
static HiJava hiJava = new HiJava("Hi my JavaWorld."); // 当然,如果要给成员赋初始值,则可能导致实例初始化
// 上一句如果被注释掉,则会少了初始化信息的显示,但 main() 一样会执行。 也就是入口函数并不受它所在类是否被初始化影响
// 换句话说,我认为被声明为 static 的方法实际上就是一个可以随时被执行的函数而已,尽管使用时要指定其名字域,
// 就好像 System.out.println("abc"); 一样。
goGoGo gogogo = new goGoGo(this); // 在 Java 里面,因为没有声明与否之分,尽管这个类还没有被定义,已经可以在这里使用了
void doing() { System.out.println("nothing but just confuse about !"); }
int getStatus()
{
System.out.print("this.toString() = ");
System.out.println(this.toString());
System.out.print("this.hashCode() = ");
System.out.println(this.hashCode());
System.out.println(this.Title);
System.out.println();
this.doing(); // 在实例中则可以使用 this 来调用本类的成员了。
// 不妨作个假设,如果 doing() 方法被定义为 static 的, this.doing() 的访问方式会给出警告信息
return 1;
}
}
class goGoGo
{
java.lang.Object Owner; // 指定拥有者的方式是从 C++ Builder 里学的
goGoGo(java.lang.Object owner)
{
Owner = owner;
doSomething();
return;
}
void doSomething()
{
System.out.println("Why ??\n");
System.out.print("Owner.class = ");
System.out.println(Owner.getClass()+"\n"); // 使用该方法可以获得父对象的 class 类型
return;
}
}
后话:
另外,在选用编译环境的时候,我听从了朋友的劝告,使用了 Eclipse 。试用之后的感觉非常棒(参照物: J++Builder 9),因此这里也向初学者建议尝试一下。 不过,厄,当然,这是您的自由。 附上:Eclipse 2.1.3 安装中文语言支持的说明
Title: Eclipse 2.1.2.1 中文语言包安装
·本安装说明节选自 CSDN 文章 《Eclipse插件开发系列(1):Eclipse及其语言包的下载与安装》
· Eclipse 的版本不一定是对应的 2.1.2 也可以是 2.1.3
· 安装中文语言支持包, 要下载下列文件。
eclipse2.1.2.1-SDK-win32-LanguagePackFeature.zip
如要下载,可参考: http://eclipse.cis.sinica.edu.tw/downloads/index.php
解压缩后改名为 LanguagePack(2.x.x) 注意要保留里面的 eclipse 子目录内容完整,然后整个目录拷贝到
Eclipse 的主目录下
· 为了让开发环境认出语言开发包,要在 Eclipse 主目录下创建子目录 links ,links 下含文件language.link
文本内容: path=LanguagePack(2.1.2) ,也就是刚才解压缩的目录名称。并重新启动 Eclipse 开发环境
重新启动以后,开发环境提示需要安装的新特性,单击完成即可。