小白应该怎么学java?

1、常用的编程语言

1.C语言

C语言诞生于1972年,称之为现代高级语言的鼻祖,由著名的贝尔实验室发明。C语言是人们追求结构化、模块化、高效率的“语言之花”。在底层编程方向,例如嵌入式、病毒开发等应用,可以替代汇编语言来开发系统程序;在高层应用开发方向,也可以开发从操作系统(UNIX/Linux/Windows都基于C语言开发)到各种应用软件。

老鸟建议

如果大学开这门课请大学生朋友一定认真学习,不要觉得老套,因为那是经典。C语言在现代社会流行程度仍然排名前三。

2.C++语言

作为C语言的扩展,C++是贝尔实验室于20世纪80年代推出的。C++是一种混合语言,既可以实现面向对象编程,也可以开发C语言面向过程风格的程序。

C语言让程序员第一次可以通过结构化的理念编写出易于理解的复杂程序。尽管C语言是一种伟大的计算机语言,但是程序的代码量超过3万行时,程序员就不能很好地从总体上把握和控制这个程序了。因此,在20世纪80年代初期,很多软件项目都面临着无法解决的问题而不能顺利推进。1979年,美国贝尔实验室发明了C++。C++最初的名字叫作“带类的C”,后来才改名叫C++。国内通用叫法是“C加加”,国际通用的读法是“C plus plus”。

C++语言在科学计算、操作系统、网络通信、系统开发、引擎开发中仍然被大量使用。

3.Java语言

Java语言由美国SUN公司发明于1995年,是目前业界应用最广泛、使用人数最多的语言,使用人数连续多年排名世界第一,可以称之为“计算机语言界的英语”。

Java广泛应用于企业级软件开发、安卓移动开发、大数据云计算等领域,几乎涉及IT所有行业。关于Java的发展历史和特性,将在后面专门介绍。

4.PHP语言

PHP原为Personal Home Page的缩写,现已正式更名为PHP:Hypertext Preprocessor。PHP语言一般用于Web开发领域,大量的中小型网站,甚至某些大型网站都使用PHP开发。

5.Object-C和Swift语言

Object-C通常写作Objective-C或者Obj-C或OC,是由C语言衍生出来的语言,继承了C语言的特性,是扩充C的面向对象编程语言。OC主要用于苹果软件的开发。

Swift是苹果公司于2014年WWDC(苹果开发者大会)发布的新开发语言,可与OC共同运行于Mac OS和iOS平台,用于搭建基于苹果平台的应用程序。

6.JavaScript语言

JavaScript是一种脚本语言,已经被广泛用于Web应用开发,其应用范围越来越广泛,重要性也越来越高。目前,流行的H5开发其核心就是JavaScript语言。

7.Python语言

Python发明于1989年,语法结构简单,易学易懂,具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言编写的各种模块(尤其是C/C++)很轻松地连接在一起。Python广泛应用于图形处理、科学计算、Web编程、多媒体应用、引擎开发,尤其是在未来将会大热的机器学习和人工智能领域有非常大的潜力。

8.C#语言

C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。C#在基于Windows操作系统的应用开发这一领域正在取代C++,占据主导地位。“成也萧何败也萧何”,由于C#的微软身份,也成为其发展的阻力,导致它在其他IT领域应用较少。

9.Fortran语言

Fortran是世界上第一种高级语言,由IBM公司在1954年提出,主要用在需要复杂计算的科学和工程领域,现在仍然被广泛使用,尤其是工程领域。Fortran虽然适合编写科学计算方面的程序,但是不适于编写系统程序。

10.BASIC语言

BASIC语言虽然易学,但功能不够强大,它应用到大程序的有效性令人怀疑,已经逐步退出历史舞台。

11.COBOL语言

COBOL语言诞生于1959年,主要用于大量精确处理数据的商业领域中,例如金融、银行。今天,仍然有超过一半的商业软件使用COBOL编写,有将近100万人在使用COBOL编程。

12.Pascal语言

Pascal的名称是为了纪念17世纪法国著名哲学家和数学家Blaise Pascal而来的,它由瑞士的Niklaus Wirth教授于20世纪60年代末设计并创立。Pascal语言语法严谨,层次分明,程序易写,可读性强,是第一个结构化编程语言,但由于没有大厂商和政府的支持,因此只限于大学教育领域。

Java语言介绍

本节将介绍Java语言的相关背景知识,让读者对Java语言有一个基本的了解。

1.3.1 Java发展简史

1991年,James Gosling所在SUN公司的工程师小组想要设计这样一种小型计算机语言:该语言主要用于像电视盒这样的消费类电子产品,另外,由于不同的厂商选择不同的CPU和操作系统,因此,要求该语言不能和特定的体系结构绑在一起,要求语言本身是中立的,也就是跨平台的。为此,他们将这个语言命名为Green,类似于绿色软件的意思,后来,又改名为Oak,橡树的意思。改名后发现已经有一种语言叫这个名字了,于是再改名为Java。Java语言发展到今天经历了一系列过程:

  • 1991年,SUN公司的Green项目,推出Oak;
  • 1995年,推出Java测试版;
  • 1996年,推出JDK1.0;
  • 1997年,推出JDK1.1;
  • 1998年,推出JDK1.2,大大改进了早期版本的缺陷,是一个革命性的版本,并更名为Java2;
  • 2004年,推出J2SE 5.0 (1.5.0) Tiger(老虎);
  • 2006年,推出J2SE 6.0 (1.6.0) Mustang(野马);
  • 2011年,推出Java SE 7.0 Dolphin(海豚);
  • 2014年,推出Java SE 8.0。

1.3.2 Java的核心优势

Java为消费类智能电子产品而设计,但智能家电产品并没有像最初想象的那样拥有大的发展。然而到了20世纪90年代,Internet却进入了爆发式发展阶段,一夜之间,大家都在忙着将自己的计算机连接到网络上。这时,遇到了一个大问题。人们发现连接到Internet的计算机各式各样,有IBM PC、苹果机、各种服务器等,不仅硬件CPU不同,操作系统也不相同,整个网络环境变得非常复杂。程序员们希望他们编写的程序能够运行在不同的机器、不同的环境中,这就需要一种体系中立的语言(即跨平台)。Java的研发小组忽然发现他们用于小范围的语言也可以适应Internet这个大环境。

跨平台是Java语言的核心优势,赶上了最初互联网的发展,并随着互联网的发展而发展,建立了强大的生态体系,目前已经覆盖IT各行业成为“第一大语言”,它被喻为计算机界的“英语”。

虽然,目前也有很多跨平台的语言,但是已经失去先机,无法和Java强大的生态体系抗衡。Java仍将在未来几十年成为编程语言的主流。

1.3.3 Java各版本的含义

1.Java SE(Java Standard Edition):标准版,定位于个人计算机的应用开发

这个版本是Java平台的核心,它提供了非常丰富的API来开发一般个人计算机上的应用程序,包括用户界面接口AWT及Swing,网络功能与国际化、图像处理能力以及输入输出支持等。在20世纪90年代末互联网上大放异彩的Applet也属于这个版本。Applet后来被Flash取代,Flash即将被HTML 5取代。

2.Java EE(Java Enterprise Edition):企业版,定位于服务器端的应用开发

Java EE是Java SE的扩展,增加了用于服务器开发的类库,如:JDBC是让程序员能直接在Java内使用SQL语法来访问数据库内的数据;Servlet能够延伸服务器的功能,通过请求-响应的模式来处理客户端的请求;JSP是一种可以将Java程序代码内嵌在网页内的技术。

3.Java ME(Java Micro Edition):微型版,定位于消费性电子产品的应用开发

Java ME是Java SE的内伸,包含J2SE的一部分核心类,也有自己的扩展类,增加了适合微小装置的类库javax.microedition.io.*等。该版本针对资源有限的电子消费产品的需求精简核心类库,并提供了模块化的架构让不同类型产品能够随时增加支持的能力。

图1-4所示为Java三大版本的关系示意图。

图1-4 Java三大版本的关系

菜鸟雷区

很多人会误解安卓开发就是使用Java ME,其实这两个的内容完全不同。

1.3.4 Java的特性

1.跨平台/可移植性

跨平台/可移植性是Java的核心优势。Java在设计时就很注重移植和跨平台性。例如Java的int永远都是32位,不像C++可能是16或32位,会根据编译器厂商规定的变化而变化,给程序的移植带来麻烦。

2.安全性

Java适用于网络/分布式环境。为了达到这个目标,Java系统的开发人员在安全性方面投入了很大的精力,使Java可以很容易构建出防病毒、防篡改的系统。

3.面向对象

面向对象是一种程序设计技术,非常适合大型软件的设计和开发。由于C++为了照顾大量C语言使用者而兼容了C,使得自身仅仅成为了带类的C语言,多少影响了其面向对象的彻底性,而Java则是完全面向对象的语言。

4.简单性

Java就是C++语法的简化版。我们也可以将Java称之为“C++-”,即“C加加减”,指将C++的一些内容去掉,例如头文件、指针运算、结构、联合、操作符重载、虚基类等。同时,由于语法基于C语言,因此学习起来完全不费力。

5.高性能

Java在最初发展阶段,总是被人诟病性能低。客观上,高级语言运行效率总是低于低级语言的,这是无法避免的。Java语言本身在发展中通过对虚拟机的优化提升了几十倍的运行效率,例如,通过即时编译(JUST IN TIME,JIT)技术提高运行效率,将一些“热点”字节码编译成本地机器码,并将结果缓存起来,在需要的时候重新调用。这样使得Java程序的执行效率大大提高,某些代码甚至接近C++的效率。

至此,Java低性能的缺陷已经被完全解决了。在业界发展方面,我们也看到很多C++应用转到Java开发,很多C++程序员转型为Java程序员。

6.分布式

Java是为Internet的分布式环境而设计的,因为它能够处理TCP/IP协议。事实上,通过URL访问一个网络资源和访问本地文件一样简单。Java还支持远程方法调用(Remote Method Invocation,RMI),使程序能够通过网络调用方法。

7.多线程

多线程的使用可以带来更好的交互响应和实时行为。Java多线程的简单性是Java成为主流服务器端开发语言的主要原因之一。

8.健壮性

Java是一种健壮的语言,它吸收了C/C++语言的优点,但去掉了其影响程序健壮性的部分(如指针、内存的申请与释放等)。Java程序不可能造成计算机崩溃。Java程序也可能有错误,即使出现某种出乎意料之事,程序也不会崩溃,而是把该异常抛出,再通过异常处理机制加以处理。

1.3.5 Java应用程序的运行机制

计算机高级语言的类型主要有编译型和解释型两种,Java语言是两种类型的结合。

Java程序员首先利用文本编辑器编写Java源程序,源文件的扩展名为.java;再利用编译器(javac)将源程序编译成字节码文件,字节码文件的扩展名为.class;最后利用虚拟机(解释器,java)解释执行,如图1-5所示。

图1-5 Java语言执行过程

1.3.6 JVM、JRE和JDK

JVM(Java Virtual Machine)就是一个虚拟的用于执行字节码的“虚拟计算机”,它也定义了指令集、寄存器集、结构栈、垃圾收集堆、内存区域。JVM负责解释运行Java字节码,边解释边运行,这样,速度就会受到一定影响。

不同的操作系统有不同的虚拟机。Java虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编写,随处运行(Write once,run everywhere)”。Java虚拟机是实现跨平台的核心机制,如图1-6所示。

图1-6 不同的操作系统有不同的虚拟机

JRE(Java Runtime Environment)包含Java虚拟机、库函数和运行Java应用程序所必需的文件。

JDK(Java Development Kit)包含JRE以及编译器和调试器等用于程序开发的文件。

JDK、JRE和JVM的关系如图1-7所示。

图1-7 JDK、JRE和JVM的关系

老鸟建议

  • 如果只是要运行Java程序,只需要安装JRE就可以。JRE通常非常小,其中包含了JVM。
  • 如果要开发Java程序,就需要安装JDK。

1.4 Java开发环境搭建

Java开发环境的搭建主要包括JDK的安装和JDK的配置。开发环境的搭建是每个Java初学者都必须掌握的内容,也是开始Java编程的第一步。

1.4.1 JDK的下载和安装

1.下载JDK

(1)进入www.oracle.com/technetwork/java/javase/downloads/index.html下载地址,可打开如图1-8所示页面。

图1-8 下载JDK——进入下载主页

(2)单击下载JDK选项,会出现如图1-9所示的下载列表界面。单击其中的Accept License Agreement选项,然后选择对应的版本下载即可。

图1-9 下载JDK——选择对应版本

 如果无法确定自己的Windows版本,可以右击“计算机”→“属性”命令查看系统信息,如图1-10所示。

图1-10 下载JDK——确定操作系统版本

菜鸟雷区

  • 32位操作系统只能安装32位的JDK。
  • 64位操作系统可安装32位的JDK,也可以安装64位的JDK。

2.安装JDK

JDK的安装过程和普通软件的安装过程没什么区别,其间会让用户选择JDK和JRE的安装目录,一般采用默认选项即可。也就是说,逐一单击“下一步”按钮就能完成安装,如图1-11~图1-13所示。

图1-11 安装JDK——指定JDK安装目录

图1-12 安装JDK——指定JRE安装目录

图1-13 安装JDK——成功安装界面

出现如图1-13所示的界面后,代表JDK安装成功。

1.4.2 环境变量Path的配置

环境变量是操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序将使用的信息。

Path是一个常见的环境变量,它告诉操作系统,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下寻找此程序外,还应到哪些目录下寻找。

设置Path环境变量的步骤如下:

01 右击“计算机”→“属性”→“高级系统设置”命令,出现如图1-14所示的对话框。

02 单击“环境变量“按钮,进入如图1-15所示的“环境变量”设置对话框。

图1-14 设置环境变量——进入设置对话框

图1-15 设置环境变量——操作主界面

03 单击“新建”按钮,新建JAVA_HOME变量(用于说明JDK的安装目录),如图1-16所示。

04 修改系统环境变量Path,在路径前面追加“%JAVA_HOME%\bin”并以“;”和原路径分隔,再在最前面输入“.;”来表示在当前目录,如图1-17所示。

图1-16 设置环境变量——设置JAVA_HOME变量

图1-17 设置环境变量——设置Path变量

菜鸟雷区

此处一定使用英文分号而不能是中文分号!大家以后设置相关配置时也要注意中英文符号的区别。

 Classpath配置问题:如果用户使用的是JDK1.5以上版本就不需要配置classpath这个环境变量,JRE会自动搜索当前路径下的类文件及相关.jar文件。

1.4.3 JDK安装测试

进入命令行窗口(在开始菜单的搜索框中输入cmd即可),如图1-18所示。在窗口中输入命令“java - version ”,然后按回车键,将出现如图1-18所示的结果,说明JDK安装成功。

图1-18 设置环境变量——验证JDK安装和配置是否成功

1.5 建立和运行第一个Java程序

建立第一个Java程序意味着我们已迈入了程序员的大门,是革命性的一大步。建立第一个程序时,初学者可能会出现各种各样的常见错误,本节列出一些常见的错误以及应对方案。

1.5.1 建立第一个Java程序

1.使用记事本,编写代码

读者可在D盘下建立文件夹mycode,用于保存学习用的代码。建议将保存路径设为D:/mycode,保存文件名为:Welcome.java(文件名必须为Welcome,大小写也必须一致),如图1-19所示。

图1-19 保存代码为文件

菜鸟雷区

  • 代码中的引号、分号必须为英文引号和分号,不能是中文全角的引号和分号。
  • 注意大小写。

2.编译(编译器创建class字节码文件)

打开命令行窗口,进入保存Java文件所在的文件夹(目录),执行命令javac Welcome. java,生成class文件,如图1-20所示。

图1-20 编译Java源文件

3.解释并运行

执行命令java Welcome(就是运行编译生成的Welcome.class文件),输出执行结果,如图1-21所示。

图1-21 解释并执行程序的结果

1.5.2 编译第一个程序时的常见错误

(1)提示“'javac'不是内部或外部命令……”,如图1-22所示。

图1-22 错误提示信息

出错原因:Path变量配置错误导致没有找到javac命令。

解决方案:参考1.4.2节,重新设置Path。配置完成后需要重新输入cmd打开命令行窗口。

(2)文件夹中可以看到Welcome.java文件,在编译时出现“javac找不到文件……”提示信息,如图1-23所示。

图1-23 找不到文件的提示信息

出错原因:可能是操作系统显示设置的问题,隐藏了文件的扩展名。

解决方案:打开“我的电脑”窗口,选择“组织”→“文件夹和搜索选项”命令,在“文件夹选项”对话框中选择“查看”选项卡,如图1-24所示。取消“隐藏已知文件夹类型的扩展名”复选框的勾选,确定修改后,可看到文件的实际名称为Welcome. java.txt,然后将后缀.txt去掉即可。

(3)提示NoSuchMethodError:main。

出错原因:找不到main方法,应该是main方法书写有误。

解决方案:检查程序代码public static void main(String [ ] args){}的输入是否有误。

图1-24 “查看”选项卡

1.5.3 总结第一个Java程序

(1)Java对大小写敏感,如果出现了大小写拼写错误,程序将无法运行。

(2)关键字public被称作访问修饰符(access modifier),用于控制程序的其他部分对这段代码的访问级别。

(3)关键字class的意思是类。Java是面向对象的语言,所有代码必须位于类里面。

(4)一个源文件中至多只能声明一个public的类,其他类的个数不限,如果源文件中包含一个public类,源文件名必须和其中定义的public的类名相同,且以.java为扩展名。

(5)一个源文件可以包含多个类。

(6)正确编译后的源文件,会得到相应的字节码文件。编译器为每个类生成独立的字节码文件,且将字节码文件自动命名为类的名字且以.class为扩展名。

(7)main方法是Java应用程序的入口方法,它有固定的书写格式:

(8)在Java中,用花括号划分程序的各个部分,任何方法的代码都必须以“{”开始,以“}”结束。由于编译器忽略空格,所以花括号风格不受限制。

(9)Java中的每个语句必须以分号结束,回车不是语句结束的标志,所以一个语句可以跨多行。

老鸟建议

  • 编程时,一定要注意缩进规范。
  • 在写括号、引号时,一定要成对编写,然后再往里插入内容。

1.5.4 最常用的DOS命令

DOS命令已经基本退出历史舞台了,但是仍然有必要掌握几个常用的命令,以便在某些情况下更顺畅地操作程序。

  • cd 目录路径 进入一个目录
  • cd .. 进入父目录
  • dir 查看本目录下的文件和子目录列表
  • cls 清除屏幕命令
  • 上下键 查找敲过的命令
  • Tab键 自动补齐命令

1.6 常用的Java开发工具

在刚开始学习时,编写简单的Java程序,读者可以使用文本编辑器,例如记事本程序。但是,记事本的功能不够强大,这时可以考虑使用“更加强大的记事本”,常见的有如下三种软件:

  • Notepad++
  • UltraEdit
  • EditPlus

在真正学习开发,包括以后在企业中从事软件开发工作时,一般使用集成开发环境(Integrated Development Environment,IDE),如下三种软件是最常见的,尤其是Eclipse。本书只选Eclipse作为入门使用,其他两种软件读者也可自行选用,使用方法几乎相同。

  • Eclipse 官方网址:http://www.eclipse.org
  • IntelliJ IDE 官方网址: http://www.jetbrains.com/idea/
  • NetBeans 官方网址:http://netbeans.org

1.7 Eclipse使用10分钟入门

在开发工具匮乏的年代,第一代Java程序员都是从文本编辑器开始训练自己编写代码,继而一步步成为高手。这是一种无奈,而不是一种必须。

我们认为,现在横在初学者面前的最大障碍在于“能否激发兴趣,解决问题,体验到编程的快乐”,而不是讨论该用记事本还是Eclipse集成开发环境的问题。

是否使用或坚持使用记事本编程不是成为高手的必要条件,而“激发兴趣,保持兴趣”却是成为高手的必要条件。基于我们的理念“快速入门,快速实战”,因此本教程一开始就引入Eclipse,让初学者更容易激发起学习兴趣,体验学习的快乐。

1.7.1 下载和安装Eclipse

Eclipse下载地址是http://www.eclipse.org/downloads/eclipse-packages/,进入该网址将出现如图1-25所示的下载界面。选择Eclipse IDE for Java Developers,根据自己安装的JDK,决定下载32位还是64位的Eclipse。下载完成后,直接解压。进入解压目录,双击eclipse.exe文件即可使用。

图1-25 选择并下载合适版本的Eclipse

Eclipse启动时会先出现工作空间设置界面,如图1-26所示。工作空间是指Java项目的存储目录,一般采用默认工作空间目录即可。

单击OK按钮后,会进入欢迎界面,如图1-27所示。

图1-26 显示和修改工作空间

图1-27 Eclipse欢迎界面

关闭欢迎界面后,即可进入开发主界面,如图1-28所示。

图1-28 Eclipse的开发主界面

1.7.2 在Eclipse中创建Java项目

在Eclipse中创建Java项目的步骤如下。

01 在界面左侧的Package Explorer视图中右击,在快捷菜单中依次选择New→Java Project,创建Java项目,如图1-29所示。

图1-29 新建Java项目

02 输入项目名称MyPro01,然后单击Finish按钮即可,如图1-30所示。

图1-30 指定项目名称

03 新建项目完成后,项目结构如图1-31所示。在图1-31中,src文件夹用于存放源代码,JDK版本显示是JavaSE-1.8。

图1-31 Java项目的项目结构

1.7.3 使用Eclipse开发和运行Java程序

1.使用Eclipse开发第一个程序

01 本节在上一节建好的Java项目中,开始开发Java程序。首先,新建一个Java类。在src目录上右击,选择New→Class命令,建立一个Java类,如图1-32所示。

图1-32 新建Java类入口

02 出现新建类的对话框,如图1-33所示。此时只需输入类名即可,其他选项不需做任何设置。

图1-33 指定Java类的名称

03 单击Finish按钮后,新建Java类成功,出现如图1-34所示的界面。

图1-34 新建Java类完成

可以看到,在src目录下出现了Welcome.java文件。单击该文件后,出现该文件的代码,此时即可编辑在Eclipse下编写第一个Java程序。

运行示例1-2程序:在代码上右击,选择Run As→Java Application命令,如图1-35所示;也可以使用快捷键Ctrl+F11,直接运行程序;或者单击工具栏中的运行按钮。

图1-35 运行Java程序

此时界面下方的控制台(Console)中出现运行结果,如图1-36所示。

图1-36 显示运行结果

至此,已成功在Eclipse中建立了第一个Java程序。

2.Eclipse自动编译

Eclipse会自动执行javac进行编译,并且会对编译错误直接给出提示,一目了然,非常便于程序员调试,如图1-37所示,这里我们故意将“System”错写为“system”,此时Eclipse会提示“system”编译错误。

3.Java项目的src目录和bin目录

Java项目的src目录用于存放源代码,bin目录用于存放Eclipse自动编译生成的class文件。

在Eclipse视图里可以看到src目录,而自动隐藏了bin目录。进入“我的电脑”,打开Java项目目录,即可看到src和bin目录,如图1-38所示。

图1-37 Eclipse的自动编译

图1-38 Java项目的完整结构

1.8 30分钟完成桌球小游戏项目

我们秉承“快速入门、快速实战”的理念开发这套教材,就是希望读者在学习过程中能尽快进入实战环节,尽快介入项目,使学习更有兴趣,更容易产生成就感,从而带来更大的学习动力。

如下的小项目,对于第一次接触编程的读者从理解上会有难度。但是这个项目不在于让大家理解代码本身,而是“体验敲代码的感觉”。

【项目】桌球游戏小项目

练习目标:

(1)找到敲代码的感觉。

(2)收获敲代码的兴趣。

(3)做出效果,找到自信。

(4)从一开始就学会调试错误。

(5)掌握Java代码的基本结构。

项目需求:

桌球在球桌中按照一定线路和角度移动,遇到边框会自动弹回。桌球游戏的运行结果如图1-39所示。

图1-39 桌球游戏的运行结果

要求:

即使看不太懂,读者也要照着输入游戏代码,至少5遍。要求所有字符和示例文件一致。如果运行时报异常,请细心看所在行和示例代码有何区别。初学者现阶段不需要理解代码的语法功能,只要按照代码结构输入代码,经过调试能够实现代码的正常运行即可。

下面将分成四个步骤来实现桌球游戏。

第一步:创建项目和窗口。

第二步:加载两张图片。

第三步:实现动画,让小球沿着水平方向移动并做边界检测。

第四步:实现小球沿着任意角度飞行(本示例会用到与初中学习过的三角函数有关的知识)。

 示例及代码和图片资源的下载地址为http://www.sxt.cn/Java_jQuery_in_action/Billiards_Games.html。

第一步:创建项目和窗口。

创建项目并复制图片:在项目名MyPro01上右击,在快捷菜单中选择New→Folder命令,创建一个名称是images的文件夹,并将两张图片复制到该目录下。然后在src目录下创建类BallGame.java。在Eclipse下的项目结构如图1-40所示。

绘制窗口的代码如示例1-3所示。

图1-40 桌球游戏的项目结构

执行结果如图1-41所示。

图1-41 示例1-3运行结果

第二步:加载两张图片。

加载两张图片:在BallGame类中添加小球和桌面的路径,并指定小球出现在窗口的初始位置。然后添加paint方法,加载小球和桌面。代码如示例1-4所示。

执行结果如图1-42所示。

图1-42 示例1-4运行效果

注意

由于懒加载问题,有可能出现第一次加载图片无效的情况,此时最小化窗口再重新打开即可。在完成第三步后,就完全不存在这个问题了。

第三步:实现动画。

实现动画,让小球沿着水平方向移动并做边界检测。要实现动画效果的关键是改变小球的坐标,并且要不停地重画窗口来更新小球的坐标;边界检测用于判断小球的坐标是否超出桌面的范围,如果超出则要改变小球原来的运动方向。代码如示例1-5所示。

第四步:实现小球沿任意角度飞行。

实现小球沿着任意角度飞行:此时小球的运动方向不能再单纯使用right来表示,需要一个表示角度的变量degree。小球坐标的改变也要依据这个角度。代码如示例1-6所示(为了保存第三步的代码,新创建了一个类BallGame2)。

 

作业

一、选择题

1.以下(  )不是Java的特点(选择一项)。

A.平台无关性

B.高可靠性和安全性

C.指针运算

D.分布式应用和多线程

2.以下选项中关于Java跨平台原理的说法正确的是(  )(选择二项)。

A.Java源程序要先编译成与平台无关的字节码文件(.class),然后字节码文件再被解释成机器码运行

B.Java语言只需要编译,不需要进行解释

C.Java虚拟机是运行Java字节码文件的虚拟计算机。不同平台的虚拟机是不同的

D.Java语言具有一次编译,随处运行的特点,可以在所有的平台上运行

3.以下选项中,对一个Java源文件进行正确编译的语句是(  )(选择一项)。

A.java Test

B.java Test.class

C.javac Test

D.javac Test.java

4.在Java中,源文件Test.java中包含如下代码,则程序编译运行的结果是(  )(选择一项)。

A.输出:Hello!

B.编译出错,提示“无法解析system”

C.运行正常,但没有输出任何内容

D.运行时出现异常

5.有一段Java程序,其中public类名是A1,那么保存它的源文件名可以是(  )(选择一项)。

A.A1.java

B.A1.class

C.A1

D.以上都不对

二、简答题

1.计算机语言发展史主线。

2.Java跨平台的实现原理。

3.JDK、JRE、JVM的区别和联系。

4.Java语言的开发和执行过程。

5.环境变量Path的作用和配置。

三、编码题

1.使用记事本编写Java程序(重点练习打印语句System.out.println()),开发学生管理系统主菜单界面。运行结果如图1-43所示。

2.使用Eclipse编写Java程序,打印九九乘法表的前四行,如图1-44所示。提示:使用System.out.println()语句打印各行数据。

图1-43 主菜单界面

图1-44 程序的打印结果
 

查看全部内容>>

VIP可查看全书完整内容(如下目录),戳链接,立即查看:https://book.csdn.net/book/detail/0cfbc76551ad476e921c18edea324035

 

CSDN会员享有VIP专享特权,立即使用VIP权益>>>

  • N次资源下载、
  • 近千本电子书免费阅读、
  • 千门课程免费学习
  • 35000+篇VIP专享文章免费阅读
  • 博客自定义域名
  • 全站免广告

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值