没有合适的资源?快使用搜索试试~ 我知道了~
首页Java基础教程:语言起源与发展
"《Java基础教程》是一本专为Java初学者编写的教材,详细介绍了Java语言的基础知识和实践技能。全书共11章,涵盖了Java语言的起源、语法、面向对象特性、异常处理、常用类库、网络编程、数据库操作、多线程、Web应用(如Applet)以及图形用户界面设计等内容。书中强调了Java语言的适应性、高效性和安全性,它是对C和C++语言的继承和发展,尤其是面向对象特性的引入,使其在编程艺术上有所突破。 第1章重点阐述了Java的诞生背景,指出其设计源于适应不断变化的环境需求和提升编程效率的需求。C语言的出现催生了Java,C语言以其结构化、高效和高级特性成为当时开发系统程序的首选。然而,C语言在易用性、安全性和稳定性等方面存在局限,促使开发者寻求更高效、安全的语言。Java在C和C++的基础上,融合了现代编程语言的关键元素,比如面向对象的设计、垃圾回收机制等,使之能在保持效率的同时,提供更好的用户体验和开发体验。 在后续章节中,读者将逐步学习Java的核心语法、类和对象的创建、继承与接口的使用,以及如何处理异常和利用Java类库进行实际编程。此外,还包括了网络编程、数据库操作、多线程编程等实战内容,帮助读者建立起完整的Java编程体系。这本书不仅是高校Java课程的理想教材,也适合计算机专业人员进行自我学习和技能提升。通过丰富的实例和清晰的结构,读者能够迅速掌握Java编程的基础并应用于实际项目中。"
资源详情
资源推荐
16 第 1 部分 Java 语言
私家轿车,或是保时捷汽车,或是家庭汽车,司机差不多都能找到方向盘、制动闸和加速
器,并知道如何操作。经过一段驾驶,大多数人甚至能知道手动档与自动档之间的差别,
因为他们从根本上理解这两个档的超类——传动。
人们在汽车上看见的总是封装好的特性。刹车和踏脚板隐蔽着不可思议的复杂性,但
接口却是如此简单,你的脚就可以操作它们!引擎、制动闸及轮胎的大小对于你如何定义
踏脚板类的接口没有任何影响。
最后的属性,多态性,在汽车制造商基于相同的交通工具所提供的多种选择的能力上
得到了充分反映。例如,刹车系统有正锁和反锁之分,方向盘有带助力或不带助力之分,
引擎有4缸、6缸或8缸之分。无论设置如何,你都得脚踩刹车板来停车,转动方向盘来转向,
按离合器来制动。同样的接口能被用来控制许多不同的实现过程。
正如你所看到的,通过封装、继承及多态性原理,各个独立部分组成了汽车这个对象。
这在计算机程序设计中也是一样的。通过面向对象原则的使用,可以把程序的各个复杂部
分组合成一个一致的、健壮的、可维护的程序整体。
正如本节开始时提到的,所有的Java程序都是面向对象的。或者,更精确地说,每个
Java程序都具有封装性、继承性及多态性。尽管在本章将要介绍的简单示例程序及以后几
章的示例程序中并未体现所有这些特性,但也有所体现。你将看到,Java提供的许多特性
是它的内置类库的一部分,这个库使封装性、继承性及多态性得到更广泛应用。
2.2 第1个简单程序
既然Java面向对象的基础已经被讨论过了,接下来让我们看一些实际的Java程序。让我
们从编译及运行下面这个简短示例程序开始。你将看到,这个程序的功能比你想像的要多。
/*
This is a simple Java program.
Call this file "Example.java".
*/
class Example {
// Your program begins with a call to main().
public static void main(String args[]) {
System.out.println("This is a simple Java program.");
}
}
注意:在下面的介绍中,将使用标准JDK(Java Developer’s Kit,Java 开发工具
包),它可从Sun Microsystems公司得到。如果你正在使用其他的Java开发环境,
则Java程序编译、运行过程可能有所不同。在这种情况下,请你查阅编译器的用户
手册来获得具体指导。
2.2.1 键入程序
对大多数计算机语言,包含程序源代码的文件名是任意的,但对于Java就不行。关于
Java,你需要知道的第一件事就是源文件的名字非常重要。对这个例子,源程序文件名应
第 2 章 Java 语言概述 17
该是Example.java。下面我们将解释其中的原因。
在Java中,一个源程序文件被称为一个编译单元(compilation unit)。它是一个包含一
个或多个类定义的文本文件。Java编译器要求源程序文件使用.java文件扩展名。请注意,
文件扩展名长度是4个字符。所以,你的操作系统一定要有支持长文件名的能力。这意味着
DOS和Windows 3.1是不支持Java的(至少在目前是这样)。当然,它可在Windows 95/98和
Windows NT/2000下正常工作。
从上述示例程序中可以看出,程序中定义的类名也是Example。这不是巧合。在Java中,
所有的代码都必须驻留在类中。按照约定,类名必须与源程序的文件名相同。你也应该确
保文件名的大小写字母与类名一样,这是因为Java是区分大小写的。虽然文件名与类名必
须一致的约定似乎有点专制,但是这个约定有助于你轻松地维护及组织程序。
2.2.2 编译程序
要编译示例程序Example,须运行编译器程序javac,并在命令行上指定源程序文件名,
格式如下所示:
C:\>javac Example.java
编译器javac产生了一个名为Example.class的文件,该文件包含程序的字节码。前面已
讨论过,Java字节码中包含的是Java解释程序将要执行的指令码。因此,javac的输出并不
是可以直接运行的代码。
要真正运行该程序,你必须使用名叫java的Java解释器。具体做法是把类名Example作
为一个命令行参数输入,格式如下所示:
C:\>java Example
运行这个程序,将输出如下内容:
This is a simple Java program.
当Java源代码被编译后,每个单独的类都被放入自己的输出文件中,并以类的名字加
“.class”扩展名为其文件名。这就是为什么Java源程序文件必须与其中包含的类同名的原
因——源程序文件将与“.class”文件相同。运行Java解释器实际上是指定你想要解释器运
行的类的名字,它会自动搜索包含该名字且带有.class扩展名的文件。如果找到,它将运行
包含在该指定类中的代码。
2.2.3 详细讨论第1个示例程序
尽管Example.java很短,但它包括了所有Java程序具有的几个关键特性。让我们仔细分
析该程序的每个部分。
程序开始于以下几行:
/*
This is a simple Java program.
Call this file "Example.java".
*/
18 第 1 部分 Java 语言
这是一段注释(comment)。像大多数其他的编程语言一样,Java也允许你在源程序文
件中加注释。注释中的内容将被编译器忽略。事实上,注释是为了给任何阅读源代码程序
的人说明或解释程序的操作。在本例中,注释对程序进行说明,并提醒你该源程序的名字
叫做Example.java。当然,在真正的应用中,注释通常用来解释程序的某些部分如何工作或
某部分的特殊功能。
Java支持3种类型的注释。在示例程序顶部的注释称为多行注释(multiline comment)。
这类注释开始于“/*”,结束于“*/”。这两个注释符间的任何内容都将被编译器忽略。正
如“多行注释”名字所示,一个多行注释可以包含若干行文字。
程序的下一行代码如下所示:
class Example {
该行使用关键字class声明了一个新类,Example是类名标识符,整个类定义(包括其所
有成员)都将位于一对花括号({})之间,花括号在Java中的使用方式与C或C++相同,目
前,不必考虑类的细节,只是有一点要注意,在Java中,所有程序活动都发生在类内,这
就是为什么Java程序是面向对象的。
下面一行程序是单行注释:
// Your program begins with a call to main().
这是Java支持的第二种类型的注释。单行注释(single-line comment)始于“//”,在该
行的末尾结束。通常情况下,程序员们对于较长的注释使用多行注释,而对于简短的、一
行一行的注释则使用单行注释。
下一行代码如下所示:
public static void main(String args[]) {
该行开始于main( )方法。正如它前面的注释所说,这是程序将要开始执行的第一行。
所有的Java应用程序都通过调用main( )开始执行(这一点同C/C++一样),我们在此还不能
对该行的每一个部分作出精确的解释,因为这需要详细了解Java封装性的特点,但是,由
于本书第1部分中的大多数例子都用到这一行代码,我们将对各部分作一个简单介绍。
关键字public是一个访问说明符(access specifier),它允许程序员控制类成员的可见
性。如果一个类成员前面有public,则说明该成员能够被声明它的类之外的代码访问(与
public相对的是private,它禁止成员被所属类之外的代码访问)。在本例中,main( )必须被
定义为public类型,因为当程序开始执行时它需要被它的类之外的代码调用。关键字static
允许调用main( )而不必先实现该类的一个特殊实例。这是必要的,因为在任何对象被创建
之前,Java解释器都会调用main()。关键字void仅通知编译器main()不返回任何值。你将看
到,方法也可以有返回值。如果这一切似乎有一点令人费解,别担心。所有这些概念都将
在随后的章节中详细讨论。
前面已经介绍过,main()是Java程序开始时调用的方法。请记住,Java是区分大小写的。
因此,main与Main是不同的。Java编译器也可以编译不包含main()方法的类,但是Java解释
程序没有办法运行这些类。因此,如果你输入了Main而不是main,编译器仍将编译你的程
序,但Java解释程序将报告一个错误,因为它找不到main()方法。
第 2 章 Java 语言概述 19
你要传递给方法的所有信息由方法名后面括号中指定的变量接收,这些变量被称为参
数(parameters)。即使一个方法不需要参数,你仍然需要在方法名后面放置一对空括号。
在main()中,只有一个参数,即String args[],它声明了一个叫做args的参数,该参数是String
类的一个实例数组(注:数组是简单对象的集合)。字符串类型的对象存储字符的串。在
本例中,args接收程序运行时显示的任何命令行参数。本例中的这个程序并没有使用这些
信息,但是本书后面讲到的其他一些程序将使用它们。
该行的最后一个字符是“{”。它表示了main()程序体的开始。一个方法中包含的所有
代码都将包括在这对花括号中间。
另外,main( )仅是解释器开始工作的地方。一个复杂的程序可能包含几十个类,但这
些类仅需要一个main( )方法以供解释器开始工作。当你开始引用被嵌入在浏览器中的Java
小应用程序时,你根本不用使用main( )方法,因为Web浏览器使用另一种不同的方法启动
小应用程序。
接下来的代码行如下所示。请注意,它出现在main( )内。
System.out.println("This is a simple Java program.");
本行在屏幕上输出字符串“This is a simple Java program.”,输出结果后面带一个空行。
输出实际上是由内置方法 println ( )来实现的。在本例中,println ( )显示传递给它的字符串。
你将会看到,println ( )方法也能用来显示其他类型的信息。该行代码开始于System.out,现
在对它作详细说明为时尚早,需涉及很多复杂内容。简单的说,System是一个预定义的可
访问系统的类,out是连接到控制台的输出流。
可能你已经猜到了,控制台输出(输入)在实际的Java程序和小应用程序中并不经常
使用。因为绝大多数现代计算环境从本质上讲都是窗口和图形界面的,控制台I/O主要被用
简单的实用工具程序和演示程序使用。在本书后面,你将会学到用Java生成输出的其他方
法。但是目前,我们将继续使用控制台I/O方法。
请注意,println( )语句以一个分号结束。在Java中,所有的语句都以一个分号结束。该
程序的其他行没有以分号结束,这是因为从技术上讲,它们并不是程序语句。
程序中的第一个“}”号结束了main( ),而最后一个“}”号结束类Example的定义。
2.3 第2个示例程序
对于编程语言来说,变量是一个最为基本的概念。你可能知道,变量是一个有名字的
内存位置,它能够被赋值。而且,在程序的运行过程中,变量的值是可以改变的。下一个
程序将介绍如何声明变量,如何给变量赋值。另外,该程序也说明了控制台输出的某些新
特点。从程序开始的注释可以看出,你应该把这个文件命名为Example2.java。
/*
Here is another short example.
Call this file "Example2.java".
*/
class Example2 {
public static void main(String args[]) {
20 第 1 部分 Java 语言
int num; // this declares a variable called num
num = 100; // this assigns num the value 100
System.out.println("This is num: " + num);
num = num * 2;
System.out.print("The value of num * 2 is ");
System.out.println(num);
}
}
运行该程序时,你将会看到如下的运行结果:
This is num: 100
The value of num * 2 is 200
让我们来进一步查看这个结果是如何产生的。我们重点考虑与前一示例不同的代码,
在上一个程序中未出现的第一行代码是:
int num; // this declares a variable called num
该行声明了一个名为num的整型变量。和其他大多数语言一样,在Java中一定要先声明
变量,然后再使用变量。
下面是声明变量的一般形式:
type var-name;
在这里,type表示所要声明的变量的类型,var-name是所要声明变量的名称。如果你要
声明多个属于同一类型的变量,只需用逗号将各个变量名分开即可。Java定义了几种数据
类型:整型(integer),字符型(character),浮点型(floating-point)。关键字int指的是
整数类型。
在程序中,下面这一行代码将100赋予变量num。
num = 100; // this assigns num the value 100
在Java中,赋值符号是等号。
下面的这行程序在输出变量值之前,先输出字符串“This is num:”。
System.out.println("This is num: " + num);
在这个语句中,变量num之前的加号“+”的作用是,让num的取值与它前面的字符串
相连接,然后再输出结果字符串的内容(实际上,变量num先被它赋值再超值转换成字符
串,然后再和加号之前的字符串相连接。这个过程将在本书的后面详细讨论)。这种方法
可以被推广。通过加号“+”的连接操作,你可以在println()这个方法之内将尽可能多的
字符串内容连在一起。
接下来的语句行将变量num乘2以后的结果重新赋值给变量num。和其他大多数语言一
样,Java用“*”符号来表示乘法运算。在执行这行语句之后,变量num的值变成了200。
本程序接下来的两行代码是:
剩余749页未读,继续阅读
hefy_80
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 多模态联合稀疏表示在视频目标跟踪中的应用
- Kubernetes资源管控与Gardener开源软件实践解析
- MPI集群监控与负载平衡策略
- 自动化PHP安全漏洞检测:静态代码分析与数据流方法
- 青苔数据CEO程永:技术生态与阿里云开放创新
- 制造业转型: HyperX引领企业上云策略
- 赵维五分享:航空工业电子采购上云实战与运维策略
- 单片机控制的LED点阵显示屏设计及其实现
- 驻云科技李俊涛:AI驱动的云上服务新趋势与挑战
- 6LoWPAN物联网边界路由器:设计与实现
- 猩便利工程师仲小玉:Terraform云资源管理最佳实践与团队协作
- 类差分度改进的互信息特征选择提升文本分类性能
- VERITAS与阿里云合作的混合云转型与数据保护方案
- 云制造中的生产线仿真模型设计与虚拟化研究
- 汪洋在PostgresChina2018分享:高可用 PostgreSQL 工具与架构设计
- 2018 PostgresChina大会:阿里云时空引擎Ganos在PostgreSQL中的创新应用与多模型存储
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功