JAVA语言的特点2.面向对象
Java语言最吸引人之处,就在于它是一种以对象为中心,一消息为驱动的面向对象的编程语言,面向对象的语言都支持三个概念:封装、继承和多态,Java语言也是如此。
1)封装
所谓封装,就是指利用抽象数据类型将数据和基于数据的操作封装在一起,数据被保护在抽象数据类型的内部,系统和其他部分只用通过封装在数据外面的被授权的操作,才能够与这个抽象数据类型交互。
2)继承
继承是指一个对象直接使用另一个对象的属性和方法。Java语言给用户提供了一系列的类,并且Java语言的类很有层次结构,子类可以继承父类的属性和方法。Java语言只支持单一继承,这样就大大降低了复杂度,但在Java语言中,可以通过接口来实现多重继承。
3多态
多态是指一个程序中同名的多个不同方法共存的情况,即一个对外接口,多个内在实现方法,面向对象程序中多态的情况有多种,可以通过子类对父类方法的覆盖实现多态,也可以利用重载在同一个类中定义多个同名的不同方法来实现多态。多态的特点使得它们不需了解对方的具体细节,就可以很好地共同工作。这个优点,对程序的设计、开发和维护都有很大的好处。
特点9:编译与解释并存
用Java语言编写的程序称为源文件(扩展名为.java的文件),源文件是不能被计算机执行的。要想使程序得以运行,必须编译器(不同的计算机语言有不同的编译器)对源文件进行编译,编译器将源文件编辑(即翻译)成计算机能懂的语言。Java提供的编译器并不是把源文件编译成二进制码,而是将其 编译成一种独立与机器平台的中间代码,这种中间代码被称为字节码(即扩展名为.class的文件)。字节码可以被Java解释器所执行,由解释器将字节码再编译成二进制码,使程序得以运行。字节码非常类似于机器指令,但字节码与具体机器是无关的,并不能在具体的平台上执行,而要通过Java运行系统中的解释器来解释执行,也就是说,Java程序的运行要经过两个步骤来完成:
首先是由编译器将Java源程序编译成字节码文件,然后再由Java运行系统解释执行字节码文件,这就是所谓的编译与解释并存。当然从本质上说,Java语言属于解释型的高级程序设计语言,但Java语言通过字节码的方式,又在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可移植的特点。所以Java程序运行时比较高效。而且,由于字节码并不专对一种特定的机器,因此,Java程序无须重新编译便可在多种不同的计算机上运行。
Java虚拟机(JVM其实就是一个字节码解释器)
字节码最大的好处是可跨平台运行,即Java的字节码可以编写一次,到处运行。用户使用任何一种Java编译器件Java 源程序(.java)编译成字节码文件(.class)后无论使用哪种操作系统,都可以在含有JVM的平台上运行。这种跨平台的特性,也是让Java语言极速普及的原因之一。
Java程序种类和结构
可以编写两种类型的程序:Application(应用程序)和Applet(小程序)
开发原理相同,但在运行环境和计算结构显著不同
Application:是从命令行运行的程序,他可以在Java平台上独立运行,通常称之为Java应用程序。Java应用程序是独立完整的程序,在命令行调用独立的解释器软件即可运行。另外,Java应用程序的主类必须包含有一个定义为public static void main(String【】args)的主方法,这个方法是Java应用程序的标志,同时也是Java应用程序执行的入口点,也就是说在应用程序中包含有main()方法的类一定是主类,但主类不一定要求是public类。
小程序是嵌入在HTML(超文本标记语言)文档中的Java程序,需要搭配浏览器来运行,因此成为小程序。与此可见,当运行一个Java小程序时就,同时还要为它编写一个HTML文件,然后在www浏览器中运行这个文件,就可以激活浏览器中的Java解释器。另外,也可以调用一些能够模拟浏览器环境并执行Java小程序的软件来直接运行Java小程序。由于浏览器手安全控制的限制,所以Java小程序一般使用模拟浏览器环境的软件来执行。
Java小程序与Java应用程序之间的不同:
首先,小程序和应用程序之间的技术差别在于运行环境。Java应用程序运行在最简单的环境中,他唯一外部输入就是命令行参数;而小程序则需要来自webl浏览器的大量信息,它内嵌在HTML文件里,在WWW浏览器这个特定环境下运行的,他需要知道何时启动,何时放入浏览器窗口,在何处、何时激活、关闭等。
其次,由于小程序和应用程序的执行环境不同,他们的最低要求也不同。在应用方面,www使小程序的发布非常便利,因此小程序更适合在Internet上的使用;相反,非网络系统和内存较小的系统更适合使用Java应用程序。
无论是应用程序还是小程序都必须要有一个主类,主类是程序执行的起始点,应用程序的主类是包含有main()方法的类,但应用程序的主类并不一定要求是public类;小程序的主类必须是继承自系统类JApplet或Applet的子类,该类必须是public类。
例题:一个一般的Java应用程序
(朱文杰拉我去吃饭,下午补上)