你正在从传统的过程化的编程转向面向对象的开发模式吗?还是想要进入膨胀的java世界呢?你不会感到孤单的.成千上万的开发者和你处在相同的情形之下.在这系列文章中,我们将使用java语言带领你一步一步的学习面向对象的开发过程.下面是我们这个系列文章的第一篇:
一种语言是面向对象的究竟意味着什么呢?如果一种编程语言是真正的面向对象的语言,它必须支持以下的特点:
封装--隐藏实现细节
多态--将同一个消息发送给不同的对象并使各个对象以预定的方式对消息做出响应的能力
继承--拓展现存的类来生成专有类继承原来类的状态和行为的能力
动态绑定--在编程时不必知道对象的具体类型就能向它们发送消息的能力
让我们考察一下java是如何支持这些功能的以及它又如何提供了附加的功能来使得从过程化的程序设计到面向对象的开发的转变过程相对容易.
java中面向对象的特点
java是由sun microsystems公司在九十年代中期发布的面向对象(oop)的编程语言.你可以从sun公司的网站上下载最新的java开发包(jdk).java是一种解释性的语言,这意味着其源程序首先被编译成中间代码的形式,然后在每次运行之前都要经过虚拟机的解释,它是彻头彻尾的面向对象的编程语言.
java对程式员隐藏了许多传统的面向对象编程语言--比方说c++和object pascal--的复杂性和让人容易混淆的地方.例如,java中没有了指针,java会为程序员自动的清除引用类型,而且所有变量将被自动初始化成适当的缺省值.除了原始数据类型以外,java中的所有东西都是对象,必要的时候,甚至可以为原始数据类型也提供封装机制.
对象简介
对象是代表现实生活中的实物的软件编程实体,比如说银行帐号,计算机用户,用户介面上的按钮,窗口菜单等等.对象是由它们的状态和行为定义的.例如,一个银行帐号拥有一种状态,诸如当前的收支状况,账户的所有人,允许的最小交易额,等等,而它的行为则包括提取,存入,收支平衡等.
一个对象的状态是由只有对象自己知道的变量定义的.java把这些变量称为数据域或者成员变量.数据域对对象来说是私有的除非显式的使用关键字来定义它们的作用域,使它们对其它类可见.我们将在以后讨论变量作用域的问题.
一个对象的行为是由它上面的操作定义的.在java中,这些操作被叫做方法.方法可以改变一个对象的状态,创建新对象,实现实用的功能等.
类
类是一个实体,它定义了一个对象的运行方式以及在对象被创建或者说实例化的时候所包含的数据.类的作用就象一个模板,一个或者多个对象可以依照它来创建.下面是使用java面向对象的概念申明helloworld应用程序的例子:
public class helloworld
{
private string hellomsg = "hello world!";
public static void main(string[] args)
{
helloworld hw = new helloworld();
}
public helloworld()
{
// 显示我们的"hello world"消息
system.out.println(hellomsg);
}
}
上面的例子定义了一个模板,真实的helloworld对象可以从这个模板创建.你还会注意到从public static void main(string[] args)这一行开始的一段奇怪的代码.这一段代码定义的是一个特殊的方法main,它其实就是我们这个helloworld程序的入口点,上面的程序是一个典型的演示所有的java应用程序如何定义它们的入口点.注意到即使是这个main入口点也被封装在类里面.对于这个例子,我们就是将它封装在helloworld类里.上面的程序展示了如何定义一个类,helloworld,以及其中的一个数据域,hellomsg和两个方法main和helloworld.helloworld方法是一种特殊的方法,这种方法被称做构造函数.我们将在后面的文章里讨论常规方法,构造函数和静态成员函数的细节和区别.
在java中,所有与一个特殊的类有关的源代码都写在一个与类同名的拥有后缀名.java的文件里.java编译器读取源文件并将它们翻译成平台无关的,二进制格式的代码,成为字节代码,然后将这些代码分类保存在与类同名的但是后缀为.class的文件里.你最终会为每一个类得到一个class文件.
编译并运行我们的例子程序
一旦你已经从sun的web站点上下载了jdk并在你的机器上安装了它,你就可以开始编译并运行java程序了.要编译并运行我们的例子程序,将helloworld类的代码粘贴到你最喜欢的文档编辑器里,将文件保存为helloworld.java,然后,在命令提示符下,将当前路径改变到包含了这个文件的路径里.现在你就可以在命令行提示符下键入下面的命令来编译程序了:
windows:
<你的jdk所在目录>/bin/javac helloworld.java
unix or linux:
<你的jdk所在目录>/bin/javac helloworld.java
这个命令将在同一个目录里产生一个新的文件,叫做helloworld.class.要运行这个程序,请在命令提示符下键入下面的命令:
windows:
<你的jdk所在目录>/bin/java helloworld
unix or linux:
<你的jdk所在目录>/bin/java helloworld
你应该可以看到屏幕上显示hello world!
总结
我们已经接触到了使用java程序设计语言进行面向对象的编程的一些皮毛知识.下次,我们将剖析我们的例子程序,给它添加更多的功能,并讨论更多的有关对象,类和其它面向对象编程的基本概念以及用java如何实现它们.