当前位置:文档之家› Java语言入门教程

Java语言入门教程

Java语言入门教程
Java语言入门教程

Java语言入门教程

引言

您有没有想过计算机程序是怎样工作的?您是否曾经想学习编写自己的计算机

程序?无论您是想自己写出游戏程序的14岁孩子,还是对计算机编程已经好奇了20年的70岁老人,这篇文章都适合您。在本文中,我将通过教您用Java程序设计语言编程使您了解计算机程序的原理。

在讲授计算机编程的知识之前,我首先做如下假设:

?我假设您目前对计算机编程一无所知。如果您已经懂一些编程知识的话那么本文的开始部分对您来说就会显得十分简单。尽可放心跳过这些章节,从新知识处开始学习。

?我假设您对计算机的使用有一些了解。具体说就是我假设您已经知道如何编辑、复制、删除和重命名文件,以及如何获取有关您的系统的信息等等。

?为简单起见,我假设您的机器运行Windows95、98、2000、NT或XP操作系统。使用其他操作系统的用户将这里学到的概念运用到自己的系统中应

该也是比较容易的。

?我假设您有学习的欲望。

进行Java编程需要的所有工具都可以轻松在网上免费获得。网上还有大量的Java学习资料,所以学完本文以后您可以很容易去学习更多内容以继续提高水平。在这里学习的Java编程在编译器、开发环境、阅读材料等等上没有任何花销。学会了Java再学习其他的语言就变得容易了,所以这里是个不错的起点。

交待完这些事情,我们就准备好了。让我们开始吧!

编程术语

记住,我假定您不懂编程。下面是一些术语,它们将有助于您的理解:?计算机程序——计算机程序是一组指令,告诉计算机应该怎么做。指令可

以告诉计算机将几个数相加,或比较两个数字并根据比较的结果作出决

定,如此之类。计算机程序只是面向计算机的一组指令而已,正如菜谱是

厨师的指令,乐谱是乐师的指令一样。计算机准确地执行这些指令的同时

也就完成了有用的工作,如计算支票簿收支,或者在屏幕上显示一个游戏,或运行一个字处理程序。

?编程语言——为了能使计算机辨识您给它的指令,这些指令需要以一种计算机能够理解的语言书写,即编程语言。有很多计算机编程语言:Fortran、Cobol、Basic、Pascal、C、C++、Java、Perl,正如有很多人类语言一样。

它们都是用不同的方式来表达类似的概念。

?编译器——使用人可以阅读的编程语言(如Java)写好程序后,还要用编译器将其翻译成计算机可执行的形式。您很可能在您的计算机上见到过

EXE文件。这些EXE文件就是编译器输出的结果。它们是可执行文件——从人可读的程序翻译而成的机器可读的程序。

使用Java语言编程就需要一个Java编译器。下一节将指导您下载并安装一个编译器。一旦有了编译器我们就可以开始学习编程了。下载和安装过程将会持续几个小时,大部分时间用来下载几个很大的文件。您还需要有大约40兆字节的空闲磁盘空间(开始前请确定有足够的空间)。

下载Java编译器

为了在您的机器上配置起一个Java开发环境——您将使用一个“开发环境”来“开发”(编写)程序——您需要完成以下这些步骤:

1.下载一个包含Java开发环境(编译器和其他工具)的大文件。

2.下载一个包含Java文档的大文件。

3.如果您的机器上还没有安装WinZip(或可执行相同功能的程序),那么

您需要下载一个包含WinZip的大文件并安装之。

4.安装Java开发环境。

5.安装文档。

6.调整环境变量。

7.全面测试。

为了方便,开始前最好在您的临时目录中创建一个新目录用于保存将要下载的文件。我们将它称为下载目录。

步骤1——下载Java开发环境

进入网页https://www.doczj.com/doc/4a11038917.html,/j2se/1.4.2/download.html。点击“下载J2SE SDK”链接下载SDK(软件开发工具包)软件。网页会显示一个许可协议。点击“接受”。选择您的操作系统,然后将文件保存到下载目录中。这是一个巨大的文件,用电话调制解调器下载需要好几个小时。接下来的两个文件也很大。

步骤2——下载Java文档

选择操作系统后点击SDK1.4.1文档的链接。

步骤3——下载并安装WinZip

如果您的机器上没有安装某个的版本的WinZip或其他解压缩软件,请到网页https://www.doczj.com/doc/4a11038917.html,/上下载WinZip的试用版。运行EXE文件安装。很快我们将使用它来安装文档。

步骤4——安装开发工具包

运行第一步下载的j2sdk-1_4_1-*.exe文件。他将自动解压并安装开发工具包。

步骤5——安装文档

阅读安装说明文档。它会要求您将文档文件移至刚才开发工具包的安装目录。将文档解压缩,文件就会被安排到适当的位置。

步骤6——调整环境变量

按照此页的要求,您需要改变路径变量。最简单的办法是打开一个MS-DOS窗口键入PATH看看当前的路径变量是什么,然后用记事本打开autoexec.bat按要求修改PATH环境变量。

步骤7——测试

现在您应该可以打开另一个MS-DOS窗口并键入javac了。如果一切设置妥当,那么您将看到屏幕将输出两行文字告诉您如何使用javac。这意味着一切已经准备就绪了。如果您看到“错误的命令或文件名”这条消息,则说明还没有准备好。请重新阅读安装说明检查哪里出了问题。确定PATH被正确设置并可用。回头重新阅读上面的步骤,问题不解决不要轻易放弃。

现在您已自豪地拥有一台能够编译Java程序的机器了。您已经准备好开始编写软件了!

顺便指出,刚才您解压缩的内容包括一个demo(演示)目录,其中包含许多精致的例子。所有的例子都可以立即执行,所以您不妨找到这个目录试运行一下其中的某些例子。许多例子都会发声,所以请打开扬声器。要运行例子,找到名如example1.html的网页文件并使用您常用的浏览器打开即可。

示例:创建一则简单java程序

您的第一个程序将是小巧可爱的。它将建立一个绘图区域并在其上绘制一条对角线。创建此程序您需要:

1.打开记事本键入(或复制粘贴)程序

2.保存程序

3.使用Java编译器编译程序生成一个Java程序

4.排除问题

5.建立一个HTML网页“包含”刚创建的Java程序

6.运行Java程序

这里是本节的示范程序:

import java.awt.Graphics;

public class FirstApplet extends java.applet.Applet

{

public void paint(Graphics g)

{

g.drawLine(0, 0, 200, 200);

}

}

步骤1——录入程序

建立一个新目录以保存程序。打开记事本(或其他可以创建TXT文件的文本编辑器)。将范例程序录入或复制粘贴到记事本窗口中。切记:输入程序的大小写敏

感。因此必须按照范例程序中字母的大小写输入。重审以上编程步骤。如果录入内容和范例程序不是完全一致,则程序将无法正常运行。

步骤2——保存文件

将文件在第一步创建的路径下保存,文件名为FirstApplet.java。文件名大小写敏感。请确保字母“F”和“A”大写,其他字母小写,如前所示。

步骤3——编译程序

打开一个MS-DOS窗口。改变至包含FirstApplet.java的路径下(cd),键入:javac FirstApplet.java

记住大小写敏感!或者编译成功,这时屏幕不输出任何信息,或者有错误发生。若没有错误,则会在目录里生成一个名为FirstApplet.class的文件与FirstApplet.java并列。

(请确保程序保存的文件名为FirstApplet.java而不是

FirstApplet.java.txt。最简单的办法就是在MS-DOS窗口下键入dir然后查看文件名。若扩展名是.txt 则请重命名文件去掉此扩展名。也可以运行Windows 资源管理器在“查看”菜单下点击“选项”。确保“隐藏已注册的MS-DOS文件扩展名”选项处于未选中状态,然后在资源管理器中查看文件名。若需要则将文件改名。)

步骤4——排除问题

若有问题产生则想办法解决。将您的程序与上面的范例程序对比,使之完全相同。修改过程中不断编译程序,直到没有错误发生。若javac似乎不能工作,请回头参照上节内容检修安装的问题。

步骤5——建立HTML页面

创建一个HTML页面来包含小程序。另开一个记事本窗口。录入下面的内容:

将此文件存于同一目录中,文件名为applet.htm。

步骤6——运行程序

在您的MS-DOS窗口中键入:

appletviewer applet.htm

应该可以看见一条从左上角到右下角的对角线:

将小程序查看器的窗口拉大一些以查看整条对角线。您也可以将此HTML网页装载到任何现用的浏览器中,如Netscape Navigator或微软IE,看到的结果是大致相同的。

至此您已经成功创建了您的第一个程序!

Java程序解析

那么刚才您到底都做了些什么呢?首先,您编写了一个极其简单的Java程序。该程序是能在网络浏览器中运行的Java程序,它和能在您的机器上独立运行的Java应用程序不同。(Java应用程序稍微复杂一些,而且也不如小程序流行,所以我们从小程序开始。)然后我们使用javac编译了这个小程序。接着我们创建了一个极其简单的网页来“包含”这个小程序。最后我们用appletviewer运行了小程序,当然您也可以方便地使用浏览器运行。

程序本身约有10行:

import java.awt.Graphics;

public class FirstApplet extends java.applet.Applet

{

public void paint(Graphics g)

{

g.drawLine(0, 0, 200, 200);

}

}

这大概是您能创建的最简单的Java小程序了。要完全理解此程序您需要学习很多知识,尤其是在面向对象编程技术的方面。既然我假定您毫无编程经验,因此我请您将注意力暂时集中到程序中的一行上:

g.drawLine(0, 0, 200, 200);

本程序的工作就是这一行完成的。它画出对角线。程序的其他部分都是为这行而做的准备工作,我们可以暂时忽略这些准备工作。这行代码告诉计算机从左上角(0,0)到右下角(200, 200)画一条线。然后计算机就按照我们的指令画线。这就是计算机编程的基本要素了!

(还要注意的是,在上面的第五步我们将HTML页面中小程序的窗口设置为宽200高200。)

本程序中我们调用了一个drawLine方法(或称函数),并且传入了四个参数(0, 0, 200, 200)。该行以一个分号结束。分号的作用相当于句子结尾的句号。该行开始处的g.说明我们调用的是特定对象g的方法drawLine(该行再上面一行表明g是属于Graphics类的对象——我们将在本文后面具体介绍类和类的方法)。

方法就是一条命令,它告诉计算机完成某件事情。本例中的drawLine告诉计算机在指定的两点(0, 0)和(200, 200)之间画一条线。您可以认为窗口的原点

(0,0)位于左上角,X和Y轴的正向分别指向原点右侧和下侧。屏幕上一个点(像素)就是数轴上的一个单位。

试着用不同数字代替四个参数。改变一两个参数,保存修改,然后用javac重新编译并用appletviewer重新运行每次修改的结果。看看您能发现什么。

除了drawLine还有什么其他函数呢?可以通过查阅Graphics类的文档来获得信息。在您安装Java开发工具包并将文档文件解压缩的过程中,一个名为

java.awt.Graphics.html的文件就被安装到了您的机器上。此文件即是Graphics类的说明文档。这个文件在我的机器上的具体路径是

D:jdk1.1.7docsapijava.awt.Graphics.html。在您机器上这个路径很可能会略有不同,但基本相似,这取决于您安装的具体位置。找到此文件并打开。文件的开始部分有一节叫做“方法索引”。它列出了这个类支持的所有方法。drawLine 方法是其中之一,但是还有许多别的方法。您可以画出的内容包括但不限于:

?直线

?圆弧

?椭圆

?多边形

?矩形

?字符串

?字符

请阅读这些不同方法的说明并加以试验,从中发现您可以用它们做什么。例如,试试下面的代码:

g.drawLine(0, 0, 200, 200);

g.drawRect(0, 0, 200, 200);

g.drawLine(200, 0, 0, 200);

它将画出一个有两条对角线的方框(别忘将窗口拉大以查看全图)。试着画一些其他图形。阅读文档并尝试使用setColor方法改变颜色。例如:

import java.awt.Graphics;

import java.awt.Color;

public class FirstApplet extends java.applet.Applet

{

public void paint(Graphics g)

{

g.setColor(Color.red);

g.fillRect(0, 0, 200, 200);

g.setColor(Color.black);

g.drawLine(0, 0, 200, 200);

g.drawLine(200, 0, 0, 200);

}

}

注意程序的第二行增添了import语句。程序运行的结果如下:

现在您可能在想:“他怎么知道要用Color.red而不是简单的red,他又是怎么知道要增添第二个import行的呢?”这是通过例子学来的。因为我刚向您展示了一个调用setColor方法的例子,所以您现在知道了要改变颜色就用Color.后接颜色的名字作为setColor方法的参数,并且要在程序开始处添加适当的import语句。如果您查阅setColor的文档,可以通过一个链接查询到Color类的信息,其中包括一个所有可用颜色名字的列表,还有关于创建新(无名)的颜色的技巧的说明。您阅读到这些信息,将它们记在脑子里,就知道如何用Java 改变颜色了。这是作为程序员的关键:学习技巧并记住为写下一个程序使用。您或者通过例子(如本文中的)学习这些技巧,或者通过阅读说明文档,或者通过察看示例代码(如在demo路径下的那些)。如果您有一个喜欢发现、学习和记忆的大脑,那么您一定会爱上编程的!

本节中,您学习了如何编写线性、顺序执行的代码:从开始直到结束都由方法调用组成的代码快。(试试在画红色矩形之前画出直线——它会被矩形覆盖掉成为不可见的。代码行的顺序很重要。)顺序代码构成了所有计算机程序的基本核心。尝试一下所有不同的绘制方法,看看您有什么发现。

程序缺陷及调试

学习编程的过程中您会注意到自己总是会犯许多错误,或者想当然做出一些错误的假定,这都会使程序:1)无法通过编译,或者2)执行时得出奇怪的结果。程序的这些问题称为程序缺陷(我们常说的bug),而排除它们的过程称为调试。任何程序员约有一半的时间都花在调试程序上。

您有的是时间和机会制造自己的程序缺陷,但为了使我们对可能出现的各种错误更加熟悉一些,现在让我们人为制造一些程序缺陷。试着删除您的程序中某行结尾的分号,然后用javac编译。编译器会给出一条错误消息。这叫做编译错误。您必须排除所有的编译错误才能执行程序。试着将一个函数的名字写错,或者忽略一个“{”不写,或者删掉一行import语句等等,这些可以让您熟悉许多种编译错误消息。初次看到某种类型的编译错误时您可能很是烦恼,但是经过上面这样用故意造成的已知错误多次试验以后,您就会熟悉许多常见错误了。

程序缺陷还包括执行(或运行时)错误,发生于程序可以通过编译,但是在运行的时候不能给出预想的输出的情况。例如,下面代码将绘制一个带两条交叉对角线的红色矩形:

g.setColor(Color.red);

g.fillRect(0, 0, 200, 200);

g.setColor(Color.black);

g.drawLine(0, 0, 200, 200);

g.drawLine(200, 0, 0, 200);

但是下面的代码只能产生红色的矩形(两条直线被它覆盖了):

g.setColor(Color.black);

g.drawLine(0, 0, 200, 200);

g.drawLine(200, 0, 0, 200);

g.setColor(Color.red);

g.fillRect(0, 0, 200, 200);

两段代码几乎完全一样,但是执行后产生的结果却大不相同。如果您希望看到两条对角线,则第二段代码就包含了一个缺陷。

这里是另一个例子:

g.drawLine(0, 0, 200, 200);

g.drawRect(0, 0, 200, 200);

g.drawLine(200, 0, 0, 200);

上面的代码生成一个具有黑色轮廓线和两条对角线的方框。而下面这段代码只产生一条对角线:

g.drawLine(0, 0, 200, 200);

g.drawRect(0, 0, 200, 200);

g.drawLine(0, 200, 0, 200);

同样,如果您希望看到两条对角线,则第二段代码包含一个缺陷(请查看第二段代码找出错误)。这类错误因其隐蔽性可能需要花很多时间才能找到。

您将有充裕的时间练习查找自己程序中的缺陷。程序员平均要花大约一半的时间进行程序缺陷的排查。程序发生缺陷错误的时候不要灰心——它们是程序员编程生涯的一个正常的组成部分。

变量

所有的程序都使用变量临时存储各种数据。例如,当程序运行到某个阶段时请求用户输入一个数字,则您要用一个变量存储输入数据供以后使用。

变量必须在程序中被定义(或声明)后才能使用,您必须为每个变量确定一个具体类型。例如,您可能声明某变量为保存数字的类型,又声明另一个变量为保存人名的类型。(因为Java要求在使用变量前显式定义变量并声明变量值的类型,

所以Java被称为是一个强类型的语言。有些语言则没有这些要求。一般说来,在创建大型程序时,强类型有助于减少程序错误。)

import java.awt.Graphics;

import java.awt.Color;

public class FirstApplet extends java.applet.Applet

{

public void paint(Graphics g)

{

int width = 200;

int height = 200;

g.drawRect(0, 0, width, height);

g.drawLine(0, 0, width, height);

g.drawLine(width, 0, 0, height);

}

}

这个程序中我们声明了两个名为width和height的变量。我们将其类型声明为int。一个int型的变量可以保存一个整数(如1、2、3等)。我们将两个变量都初始化为200。我们也完全可以这样写:

int width;

width = 200;

int height;

height = 200;

第一种形式只是输入起来稍快一些。

将变量赋予初值的过程称为初始化变量。一种常见的程序错误是忘记初始化变量。为重现此错误,试删除代码的初始化部分(“= 200”)然后重新编译程序观察后果。您会看到编译器将发现这个问题。顺便指出,这是编译器的一个非常好的特性。它将为您节省许多时间。

Java支持两种变量:简单(初级)变量和类。

int是简单变量的类型。这种变量可以保存一个数字,此外别无他长。您只要声明一个int变量,设置它为某个值后使用即可。另一方面,类可以包含多个成员和方法,这些方法能简化类的使用。一个易于理解的类的好例子就是Rectangle 类,让我们从它开始。

我们一直使用的那个程序有一个局限:他总是假定窗口大小是200乘200像素。为什么我们不问问窗口“您的尺寸有多大?”,然后据此调整我们的矩形和对角线的大小呢?如果您回头查看Graphics 类的说明文档

(java.awt.Graphics.html——那个列出了所有可用的绘图函数的文件),您会发现其中有一个叫做getClipBounds的函数。点击此函数名浏览它的完整说明。这个函数没有参数但是会返回一个Rectangle类型的值。返回的矩形包含了绘图区的宽度和高度。若在此文档页面中点击Rectangle就会被转到Rectangle类(java.awt.Graphics.html)的文档页面。查看页首的变量索引您会发现这个类包含四个名字分别为x、y、width和height的变量。因此我们将要做的就是用getClipBounds得到代表画板边界的矩形,然后从这个矩形中提取宽度和高度数据,将它们保存在前一个例子中创建的width和height变量中,如下所示:

import java.awt.Graphics;

import java.awt.Color;

import java.awt.Rectangle;

public class FirstApplet extends java.applet.Applet

{

public void paint(Graphics g)

{

int width;

int height;

Rectangle r;

r = g.getClipBounds();

width = r.width - 1;

height = r.height - 1;

g.drawRect(0, 0, width, height);

g.drawLine(0, 0, width, height);

g.drawLine(width, 0, 0, height);

}

}

当运行上面程序的时候您会发现矩形和对角线恰好充满绘图区域。而且改变窗口大小时矩形和对角线还会自动重画适应新的窗口大小。这段代码引入了五个新概念,让我看一看:

1.首先,因为我们使用了Rectangle类,所以要在程序的第三行引进

java.awt.Rectangle。

2.我们在本程序中声明了三个变量:两个(width和height)int型的,一

个(r)Rectangle 型的。

3.我们使用了getClipBounds函数获得绘图区域的大小。此函数没有参数所

以我们也就不传入参数(使用“()”),但是它返回一个Rectangle。我们写下的代码“r = g.getClipBounds();”其意思是说:“请将返回的矩形赋值给变量 r。”

4.变量r是Rectangle类型的,它其实包含四个变量:x、y、width和height

(通过阅读Rectangle类的说明文档可以知道这些变量名)。要访问它们需使用“.”(点)操作符。因此表达式“r.width”的意思就是“从变量r 中取出名为width的变量”。这个值被保存到我们的名为width的局部变量中。在此过程中我们减去了一个1。试试不做减法会是什么结果。再试试减去五会是什么结果。

5.最后,我们在绘图函数中使用了width和height。

学到这里常常提出的一个问题就是:“我们真有必要声明width和height变量吗?”答案是否定的。我们可以在绘图函数参数的位置直接输入r.width - 1。创建变量只是为了使程序更容易阅读,因此这是一个应该养成的好习惯。

Java支持多种简单变量类型。三种最常见的类型是:

?int——整型数值(1、2、3……)

?float——十进制小数(如 3.14159)

?char——字符值(a、b、c……)

可以用简单类型进行数学运算。Java能够识别 +(加)、-(减)、*(乘)、/(除)和几种其他的运算。这里有一个在程序中使用这些运算符的例子。假设您要计算一个半径为3米的圆球的体积。可用下面的代码完成:

float diameter = 10;

float radius;

float volume;

radius = diameter / 2.0;

volume = 4.0 / 3.0 * 3.14159 * radius * radius * radius;

第一行运算的意义是:“将diameter变量的值除以2.0,结果保存在radius变量中。”可见“=”符号在这里的意义就是:“将右侧计算的结果保存到左侧的变量之中。”

如何使一个顺序代码块重复地执行

计算机尤其擅长的工作之一就是进行重复的计算或操作。在前面的几节中我们看到了如何编写“顺序代码块”,所以下面我们将讨论如何使一个顺序代码块重复地执行。

例如,我让您画出下面的图形:

不妨先画出所有的水平线,像这样:

绘制这些线的一种方法是编写一个顺序代码块:

import java.awt.Graphics;

public class FirstApplet extends java.applet.Applet

{

public void paint(Graphics g)

{

int y;

y = 10;

g.drawLine(10, y, 210, y);

y = y + 25;

g.drawLine(10, y, 210, y);

y = y + 25;

g.drawLine(10, y, 210, y);

y = y + 25;

g.drawLine(10, y, 210, y);

y = y + 25;

g.drawLine(10, y, 210, y);

y = y + 25;

g.drawLine(10, y, 210, y);

y = y + 25;

g.drawLine(10, y, 210, y);

y = y + 25;

g.drawLine(10, y, 210, y);

y = y + 25;

g.drawLine(10, y, 210, y);

}

}

(对于一些新程序员来说,“y = y + 25;”这条语句初看起来很奇怪。它的意思是说:“将变量y当前的值加上25,结果仍存回到y。”因此如果在该行执行之前y的值是10,则该行执行后y的值将立即变成35。)

看过以上代码的多数人会立刻注意到有两行代码被一遍遍重复了。在我们这个特例中,重复现象还不是很严重。但可以想像如果需要绘制包含上千个行和列的网格时,用这种方法编程将会是多么劳累。解决此问题的办法就是循环,如下所示:

import java.awt.Graphics;

public class FirstApplet extends java.applet.Applet

{

public void paint(Graphics g)

{

int y;

y = 10;

while (y <= 210)

{

g.drawLine(10, y, 210, y);

y = y + 25;

}

}

}

运行程序时您会看到它会绘制九条200像素长的水平线。

while语句是Java中的一种循环语句。该语句告诉Java按照如下方式工作:执行到while语句时,Java查看括号中的表达式后判断:“y是否小于等于210?”

?如果答案是肯定的,Java将进入用花括号({})包围的代码块。循环发生在代码块的结尾处。当Java执行到结尾的花括号时就返回到前面的

while语句处回答同样的问题。这种循环过程可能要进行许多次。

?如果答案是否定的,Java将跳过用花括号包围的代码块继续执行。

因此您可以看到,程序开始运行时y的初值是10。10小于210,所以Java进入花括号代码块,绘制从(10,10)到(210, 10)的直线,将y设为35,然后回溯到while语句。35小于210,所以Java进入花括号代码块,绘制从(10,35)到(210, 35)的直线,将y设为60,然后回溯到while语句。此过程一直重复直到y终于超过了210,然后程序结束。

在程序中加入第二个循环即可完成网格的绘制,如下所示:

import java.awt.Graphics;

public class FirstApplet extends java.applet.Applet

{

public void paint(Graphics g)

{

int x, y;

y = 10;

while (y <= 210)

{

g.drawLine(10, y, 210, y);

y = y + 25;

}

x = 10;

while (x <= 210)

{

g.drawLine(x, 10, x, 210);

x = x + 25;

}

}

}

可见一个while语句包含三部分:

?一个初始化步骤,将y设为10。

?一个求值步骤,在while语句的括号中。

?while语句的某处会有一个增量步骤,递增y的值。

Java支持另一种比while语句更为紧凑的方式完成同样的工作。这就是for语句。如果您有如下的while语句:

y = 10;

while (y <= 210)

{

g.drawLine(10, y, 210, y);

y = y + 25;

}

那么等价的for语句看起来就是这样子:

for (y = 10; y <= 210; y = y + 25)

{

g.drawLine(10, y, 210, y);

}

可见for语句的全部工作是将初始化、求值和增量步骤精简到一个短行之中。它只是缩短了您编写代码的长度,仅此而已。

关于循环顺便提出下面两点值得注意的地方:

?许多情况下将y初始化为210然后在循环中每次递减25同样是很容易的。

求值部分的问题将变为:“y是否大于等于10?”您可以选择两种方法中的任何一种。多数人觉得用加法比用减法更舒服一些。但您可能有不同的感觉。

?增量步骤十分重要。假如您无意间漏写了循环中“y=y+25;”这行,于是y的值将不会改变——它总是等于10。因此它永远不会超过210,循环也

就会无限地进行下去(直到你关闭计算机或程序窗口时才停止)。这种情况称为无限循环,是一种常见的编程错误。

作为循环的练习,试编写代码绘制下面的图形:

java程序设计基础(含参考答案)

“Java程序设计基础”课程习题 一、填空 1.Java程序分两类___Applet___和application,Java Application 类型的程序,程序从 ___main方法___开始执行。 2.定义一个Java类时,通过关键字__extends____指明该类的父类。一个类可以有___1___ 个父类。 3.用public修饰的类称为_公有类或公用类__。用public修饰的类成员称为公有成员。被 说明为public的内容可以被__所有其他类___ 使用。如果public类文件与使用它的类文件不在同一目录中,需要通过__import____语句引入。 4.用___private___ 修饰的类成员称为私有成员。私有成员只能在__本类__ 中使用。 5.如果子类定义的成员变量与父类的成员变量同名,称为___方法覆盖___ ,要表明使用 子类的成员变量,可以在成员变量前加上关键字__super___ 。 6.____Object__ 类是Java类库中所有类的父类。 7.Java字符使用__16位的字符集,该字符集成为__Unicode____ 。 8.当子类中定义的方法与父类方法同名时,称子类方法___覆盖___ 父类方法,子类默认 使用自己的方法。使用父类的同名方法,必须用关键字__super__ 说明。 9.Java源程序文件名的后缀是___.java___,Java字节码文件名的后缀是_.class_____。 10.Java类名的第一个字母通常要求___大写___。 11.Java程序由____类__组成,每个程序有一个主类,Java程序文件名应与____主__类的 名称相同。 12.Java__Application_类型的程序需要main()方法,程序从__main____开始执行。 13.布尔型数据类型的关键字是_boolean__ ,占用位数是___1位___ ,有__true__ 和_false_ 两种值。整型数可以采用_十_ 、__八_ 和__十六_三种进制表示。 14.八进制整数以数字__0_开头。十六进制整数以_0x或0X_ 开头。 15.int整型数占用__32位内存。long整型数占用__64 位内存。 16.127L表示__长整型____ 常量。 17.根据占用内存长度将浮点常量分为_double_____ 和__float____ 两种。 18.单精度浮点常量占用__32_ 位内存,双精度浮点常量占用__64 位内存。 19.在Java语言中,字符串“ABC\tD\b\n”中包括__7个字符。 20.数学关系44&&x<9____ 。数学关系x>3且x<=10对应 的Java表达式是_x>3&&x<=10。数学关系x>3或x<-10对应的Java表达式是_x>3||x<-10_。 21.逻辑表达式true&&false&&true的结果是_false_ 。 22.__new__ 运算符的作用是根据对象的类型分配内存空间。当对象拥有内存空间时,会 自动调用类中的构造方法为对象_初始化_。 23.省略访问修饰符的类只能被同_一包_中的类使用,称之具有包访问特性。 24.用public修饰的类称为_公共类_。用public修饰的类成员称为公共成员。被说明为public 的内容可以被_所有类_ 使用。如果public类文件与使用它的类文件不在同一目录中,需要通过_import_语句引入。 25.用_private_ 修饰的类成员称为私有成员。私有成员只能在_本类使用。 26.在类中可以定义多个具有相同名称、但参数不同的方法,这种做法称为__方法重载_ 。 27.如果子类定义的成员变量与父类的成员变量同名,要表明使用子类的成员变量,可以在 成员变量前加上关键字__this__。

《Java编程基础知识点汇总及习题集》--答案

目录 第一章 Java入门 (2) 第二章 Java基础 (5) 第三章条件转移 (16) 第四章循环语句 (22) 第五章方法 (28) 第六章数组 (35) 第七章面向对象 (44) 第八章异常 (65)

第一章Java入门 知识点汇总 1、JAVA 三大体系 ?Java SE:(J2SE,Java2 Platform Standard Edition,标准版),三个平台中最核心 的部分,包含Java最核心的类库。 ?JavaEE:(J2EE,Java 2 Platform, Enterprise Edition,企业版),开发、装 配、部署企业级应用,包含Servlet、JSP、 JavaBean、JDBC、EJB、Web Service等。 ?Java ME:(J2ME,Java 2 Platform Micro Edition,微型版),用于小型电子设备 上的软件开发。 2、JDK,JRE,JVM的作用及关系 作用 ★JVM:保证Java语言跨平台 ★JRE:Java程序的运行环境 ★JDK:Java程序的开发环境 关系 ★JDK:JRE+工具 ★JRE:JVM+类库 3、JDK环境变量配置 ?path环境变量:存放可执行文件的存 放路径,路径之间用逗号隔开 ?classpath环境变量:类的运行路径, JVM在运行时通过classpath加载需要 的类 4、重点掌握两个程序 ?javac.exe:Java编译器工具,可以将编 写好的Java文件(.java)编译成Java 字节码文件(.class); ?java.exe:Java运行工具,启动Java虚 拟机进程,运行编译器生成的字节码 文件(.class) 5、一切程序运行的入口 public static void main(String args []){ System.out.println(“Hello World!”); } 课堂笔记

《Java语言程序设计基础教程》习题解答

《Java语言程序设计基础教程》练习思考题参考答案

第1章Java程序设计概述 1.9 练习思考题 1、?Java运行平台包括三个版本,请选择正确的三项:( ) A. J2EE ????? B. J2ME C. J2SE? D. J2E 解答:A,B,C 2、JavaJDK中反编译工具是:() A.javac??B. java ?C. jdb ???D. javap 解答:D 3、?public staticvoid main方法的参数描述是:( ) A.String args[]??? B.String[] args C. Strings args[] ?? D.Stringargs 解答:A,B 4、在Java中,关于CLASSPATH环境变量的说法不正确的是:() A. CLASSPATH一旦设置之后不可修改,但可以将目录添加到该环境变量中。 B.编译器用它来搜索各自的类文件。 C. CLASSPATH是一个目录列表。 D. 解释器用它来搜索各自的类文件。 解答:A 5、编译Java Application源文件将产生相应的字节码文件,扩展名为( )?A. .java??????B..class C. .html ??D..exe 解答:B 6、开发与运行Java程序需要经过的三个主要步骤为____________、____________和____________。 7、如果一个Java Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是______类的子类并且存储该源程序文件的文件名为______。 8、如果一个Java Applet程序文件中定义有3个类,则使用Sun公司的JDK编译器编译该源程序文件将产生______个文件名与类名相同而扩展名为______的字节码文件。 9、开发与运行Java程序需要经过哪些主要步骤和过程? 10、Java程序是由什么组成的?一个程序中必须要有public类吗?Java源文件的命名规则是怎么样的? 11、编写一个简单的Java应用程序,该程序在命令行窗口输出两行文字:“你好,很

Java基础入门教程(适合所有初学者)

第1章 Java语言概述与面向对象思想 1 1.1 Java语言的发展 1 1.1.1 Java语言的产生 1 1.1.2 Java语言的发展 1 1.2 Java语言的特点 2 1.3 面向对象与面向过程的差异 3 1.3.1 面向过程思想回顾 4 1.3.2 面向对象思想介绍 4 1.4 面向对象程序设计中的主要概念和特征 4 1.4.1 主要概念 5 1.4.2 主要特征 5 *1.5 Java与C++的差异 5 1.6本章小结5 习题 5 第2章 Java语言开发环境 6 2.1 JDK 6 2.1.1 JDK的简介6 2.1.2 JDK的构成6 2.1.3 JDK的使用6 2.2 IDE 8 2.2.1 IDE简介8 2.2.2 JBuilder 9 2.2.3 Eclipse 9 2.2.4 相关资源9 2.3 Project管理9 2.3.1 Project的含义9 2.3.2 可行的Project组织模式9 2.3.3 主要开发工具的Project目录10 2.4 本章小结10 习题10 第1章 Java语言概述与面向对象思想 1.1 Java语言的发展 1.1.1 Java语言的产生以介绍面向对象编程的基本概念、基本理论为重点,结合Java语言的语法规则、编程特点和设计思想、强调容易发生错误和编程应注意的地方,使学生能对Java 技术有一个总体了解,通过本课程学习,使学生掌握Java语言的基础知识,理解和掌握面向对象程序设计的基本思想,熟练地使用Java语言进行程序的编写、编译以及调试工作 上世纪90年代初期,Sun公司在研究一种适用于未来的智能设备的编程语言,该语言要具有一些新的特性,以避免C++的一些不足。 该语言起初命名为Oak,来源于语言作者Gosling办公室窗外的一棵橡树(Oak)。后来在注册时候遇到了冲突,于是就从手中的热咖啡联想到了印度尼西亚一个盛产咖啡的岛屿,中文名叫爪哇,Java语言得名于此。 随着Internet的迅速发展,Web应用日益广泛,Java语言也得到了迅速发展。1994年,Gosling

java基础知识点总结

Created by AIwen on 2017/5/14、 java就是面向对象的程序设计语言;类可被认为就是一种自定义的数据类型,可以使用类来定义变量,所有使用类定义的变量都就是引用变量,它们将会引用到类的对象。类用于描述客观世界里某一类对象的共同特征,而对象则就是类的具体存在,java程序使用类的构造器来创建该类的对象。 java也支持面向对象的三大特征:封装、继承、与多态。java提供了private、protected、与public三个访问控制修饰符来实现良好的封装,提供了extends关键字让子类继承父类,子类继承父类就可以继承到父类的成员变量与与方法,如果访问控制允许,子类实例可以直接调用父类里定义的方法。继承就是实现类复用的重要手段。使用继承关系来实现复用时,子类对象可以直接赋给父类变量,这个变量具有多态性。 面向对象的程序设计过程中有两个重要的概念:类(Class)与对象(object,也被称为实例,instance)。类可以包含三种最常见的成员:构造器、成员变量、与方法。 构造器用于构造该类的实例,java语言通过new关键字类调用构造器,从而返回该类的实例。构造器就是一个类创建对象的根本途径,如果一个类没有构造器,这个类通常无法创建实例。因此java语言提供了一个功能:如果程序员没有为一个类编写构造器,则系统会为该类提供一个默认的构造器,这个构造器总就是没有参数的。一旦程序员为一个类提供了构造器,系统将不再为该类提供构造器。 构造器用于对类实例进行初始化操作,构造器支持重载,如果多个重载的构造器里包含了相同的初始化代码,则可以把这些初始化代码放置在普通初始化块里完成,初始化块总在构造器执行之前被调用。静态初始化块代码用于初始化类,在类初始化阶段被执行。如果继承树里某一个类需要被初始化时,系统将会同时初始化该类的所有父类。 构造器修饰符:可以就是public、protected、private其中之一,或者省略构造器名:构造器名必须与类名相同。 注意:构造器既不能定义返回值类型,也不能使用void声明构造器没有返回值。如果为构造器定义了返回值类型,或使用void声明构造器没有返回值,编译时不会出错,但java会把这个所谓的构造器当成方法来处理——它就不再就是构造器。 实际上类的构造器就是有返回值的,当使用new关键字来调用构造器时,构造器返回该类的实例,可以把这个类的实例当成构造器的返回值。因此构造器的返回值类型总就是当前类,无须定义返回值类型。不要在构造器里显式的使用return来返回当前类的对象,因为构造器的返回值就是隐式的。 java类名必须就是由一个或多个有意义的单词连缀而成的,每个单词首字母大写,其她字母全部小写,单词与单词之间不要使用任何分隔符。 成员变量: 成员变量的修饰符:public、protected、private、static、final前三个只能出现一个再与后面的修饰符组合起来修饰成员变量,也可省略。 成员变量:由一个或者多个有意义的单词连缀而成,第一个单词首字母小写,后面每个单词首字母大写,其她字母全部小写,单词与单词之间不要使用任何分隔符。 类型:可以就是java语言允许的任何数据类型,包括基本类型与引用类型。 成员方法: 方法修饰符:public、protected、private、static、final、abstract,前三个只能出现一个,static与final最多只能出现其中的一个,与abstract组合起来使用。也可省略。 返回值类型:可以就是java语言的允许的任何数据类型,包括基本类型与引用类型。 方法名:与成员变量的方法命名规则相同,通常建议方法名以英文动词开头。 方法体里多条可执行语句之间有严格的执行顺序,排在方法体前面的语句总先执行,排在方法体后面的语句总就是后执行。

《Java语言程序设计基础教程》习题解答

《Java语言程序设计基础教程》练习思考题参考答案

第1章Java程序设计概述 1.9 练习思考题 1、Java运行平台包括三个版本,请选择正确的三项:() A. J2EE B. J2ME C. J2SE D. J2E 解答:A,B,C 2、Java JDK中反编译工具是:() A. javac B. java C. jdb D. javap 解答:D 3、public static void main方法的参数描述是:() A. String args[] B. String[] args C. Strings args[] D. String args 解答:A,B 4、在Java中,关于CLASSPATH环境变量的说法不正确的是:() A. CLASSPATH一旦设置之后不可修改,但可以将目录添加到该环境变量中。 B. 编译器用它来搜索各自的类文件。 C. CLASSPATH是一个目录列表。 D. 解释器用它来搜索各自的类文件。 解答:A 5、编译Java Application源文件将产生相应的字节码文件,扩展名为() A. .java B. .class C. .html D. .exe 解答:B 6、开发与运行Java程序需要经过的三个主要步骤为____________、____________和____________。 7、如果一个Java Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是______类的子类并且存储该源程序文件的文件名为______。 8、如果一个Java Applet程序文件中定义有3个类,则使用Sun公司的JDK编译器编译该源程序文件将产生______个文件名与类名相同而扩展名为______的字节码文件。 9、开发与运行Java程序需要经过哪些主要步骤和过程? 10、Java程序是由什么组成的?一个程序中必须要有public类吗?Java源文件的命名规则是怎么样的? 11、编写一个简单的Java应用程序,该程序在命令行窗口输出两行文字:“你好,很高兴学习Java”和“We are students”。

Java语言程序设计基础篇前三章课后习题要点

第1章计算机、程序和Java概述 1.1(显示三条消息)编写程序,显示Welcome to Java、Welcome to Computer Science和Programming is fun。 程序: 显示: 1.2(显示五条消息)编写程序,显示Welcome to Java五次 程序: 显示: 1.3(显示图案)编写一个程序,显示下面的图案:

程序: 显示: 1.4(打印表格)编写程序,显示以下表格: 程序: 显示:

1.5(计算表达式)编写程序,显示(9.5x4.5- 2.5x3)/(45.5- 3.5)的结果 程序: 显示: 1.6(数列求和)编写程序,显示1+2+3+4+5+6+7+8+9的结果 程序: 显示: 1.7(近似求π)可以使用以下公式计算π: Π=4x(1-1/3+1/5-1/7+1/9-1/11+1/13+...) 编写程序,显示4x(1-1/3+1/5-1/7+1/9-1/11+1/13...)的结果。在程序中用1.0代替1 程序: 显示:

第2章基本程序设计 2.1(将摄氏温度转换为华氏温度)编写程序,从控制台读入double型的摄氏温度,然后将其转换华氏温度,并显示结果。转换公式如下所示: Fahrenheit-=(9/5)*celsius+32 (华氏度=(9/5)*摄氏度+32) 程序: 显示: 2.2(计算圆柱体的体积)编写程序,读入圆柱体的半径和高,并使用下列公式计算圆柱体的体积 面积=半径x半径xπ 体积=面积x高 程序: 显示:

2.3(将英尺转换为米)编写程序,读入英尺数,将其转换为米数并显示结果。一英尺等于0.305米。 程序: 显示: 2.4(将磅转换为千克)编写程序,将磅数转换为千克数。程序提示用户输入磅数,然后转换成千克并显示结果。1磅等于0.454千克。 程序: 显示: 2.5(财务应用程序:计算小费)编写一个程序,读入一笔费用与酬金率,就算酬金和总钱数。例如,如果用户读入10作为费用,15%作为酬金率,计算结果显示酬金为$1.5,总费用为$11.5. 程序:

超级经典java基础知识总结

Java基础知识总结 写代码: 1,明确需求。我要做什么? 2,分析思路。我要怎么做?1,2,3。 3,确定步骤。每一个思路部分用到哪些语句,方法,和对象。 4,代码实现。用具体的java语言代码把思路体现出来。 学习新技术的四点: 1,该技术是什么? 2,该技术有什么特点(使用注意): 3,该技术怎么使用。demo 4,该技术什么时候用?test。 ----------------------------------------------------------------------------------------------- 一:java概述: 1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒、PDA等的微处理器; 1994年将Oak语言更名为Java; Java的三种技术架构: JAVAEE:Java Platform Enterprise Edition,开发企业环境下的应用程序,主要针对web程序开发; JAVASE:Java Platform Standard Edition,完成桌面应用程序的开发,是其它两者的基础; JAVAME:Java Platform Micro Edition,开发电子消费产品和嵌入式设备,如手机中的程序; 1,JDK:Java Development Kit,java的开发和运行环境,java的开发工具和jre。 2,JRE:Java Runtime Environment,java程序的运行环境,java运行的所需的类库+JVM(java虚拟机)。 3,配置环境变量:让java jdk\bin目录下的工具,可以在任意目录下运行,原因是,将该工具所在目录告诉了系统,当使用该工具时,由系统帮我们去找指定的目录。 环境变量的配置: 1):永久配置方式:JAVA_HOME=%安装路径%\Java\jdk path=%JAVA_HOME%\bin 2):临时配置方式:set path=%path%;C:\Program Files\Java\jdk\bin 特点:系统默认先去当前路径下找要执行的程序,如果没有,再去path中设置的路径下找。 classpath的配置: 1):永久配置方式:classpath=.;c:\;e:\ 2):临时配置方式:set classpath=.;c:\;e:\ 注意:在定义classpath环境变量时,需要注意的情况 如果没有定义环境变量classpath,java启动jvm后,会在当前目录下查找要运行的类文件; 如果指定了classpath,那么会在指定的目录下查找要运行的类文件。 还会在当前目录找吗?两种情况: 1):如果classpath的值结尾处有分号,在具体路径中没有找到运行的类,会默认在当前目录再找一次。 2):如果classpath的值结果出没有分号,在具体的路径中没有找到运行的类,不会再当前目录找。 一般不指定分号,如果没有在指定目录下找到要运行的类文件,就报错,这样可以调试程序。 4,javac命令和java命令做什么事情呢?

java语言程序设计基础篇8.9答案

在一个正n边形中,所以边的长度都相同,且所有角的度数都相同(即这个多边形是等边等角的)。 设计一个名为RegularPolygon的类,该类包括: 一个名为int型的私有数据域定义多边形的边数,默认值3。一个名为side的double型私有数据域存储边的长度,默认值1。 一个名为x的double型私有数据域,它定义多边形中点的x坐标,默认值0。一个名为y 的double型私有数据域,它定义多边形中点的y坐标,默认值0。一个创建带默认值的正多边形的无参构造方法。 一个能创建带指定边数和边长度、中心在(0,0)的正多边形的构造方法。一个能创建带指定边数和边长度、中心在(x,y)的正多边形的构造方法。所有数据域的访问器和修改器。一个返回多边形周长的方法getPerimeter()。 一个返回多边形面积的方法getArea().计算多边形面积的公式是:面积=(n*s*s)/(4*tan(p/n)) 画出该类的UML图。实现这个类。编写一个测试程序,分别使用无参构造方法、RegularPolygon(6,4)和RegularPolygon(10,4,5.6,7.8)创建三个RegularPolygon对象。显示每个对象的周长和面积。 代码: class Regularpolygon{ private int n=3;//边长 private double side=1;//边长 private double x=0; private double y=0;//x,y为多边形中点的x,y坐标 Regularpolygon(){ } Regularpolygon(int newN,int newS){ n=newN; side=newS; x=0; y=0; } Regularpolygon(int newN,int newS,double newX,double newY){ n=newN; side=newS; x=newX; y=newY; } public void setN(int newN){ n=newN; } public void setSide(double newS){ side=newS; }

Java语言编程基础知识

Java语言编程基础知识 Java语言编程基础知识 学习Java要掌握不同数据类型的变量定义与使用,掌握不同运 算符的运算规则,掌握流程控制语句的执行流程,编写方法的声明 与调用,创建数组并访问数组元素等知识。那么Java语言编程基础 知识有哪些呢,一起来看看! 1)注释 在程序开发工程中,用于解释和说明程序的文字我们称之为注释,Java中的注释分为以下几种:单行注释、多行注释、文档注释。 2)关键字 了解Java关键字的含义及特点,掌握关键字使用的注意事项。 3)标识符 了解什么是标识符,标识符的组成规则,以及标识符使用时的注意事项。 4)常量与变量 理解常量与变量的含义,并掌握常量与变量的区别、变量的定义格式以及变量的赋值。 5)数据类型 掌握Java语言的'数据类型,如基本数据类型:byte、short、int、long、float、double、char、boolean,以及引用类型:类、 接口、数组。 6)运算符

熟练掌握Java中的运算符:算术运算符、赋值运算符、比较运算符、逻辑运算符、位运算符、三目运算符。 7)流程控制语句 了解什么是流程控制语句,掌握以下流程控制语句:顺序结构、选择结构、循环结构,并能够通过流程控制语句实现特定的功能。 8)方法 掌握方法的定义及格式,并能正确的调用方法,理解方法的调用过程,同时清楚方法的注意事项;掌握方法重载及其特点。 9)数组 了解数组的概念,掌握数组的定义格式、静态初始化、动态初始化,并能够理解Java中数组的内存图解。熟练掌握数组的遍历、获取最值、数组元素逆序、数组元素查找、数组排序和二分查找,以及二维数组的定义格式及初始化。

《Java语言程序设计基础教程》

第1章 Java程序设计概述 1.9 练习思考题 1、Java运行平台包括三个版本,请选择正确的三项:() A. J2EE B. J2ME C. J2SE D. J2E 解答:A,B,C 2、Java JDK中反编译工具是:() A. javac B. java C. jdb D. javap 解答:D 3、public static void main方法的参数描述是:() A. String args[] B. String[] args C. Strings args[] D. String args 解答:A,B 4、在Java中,关于CLASSPATH环境变量的说法不正确的是:() A. CLASSPATH一旦设置之后不可修改,但可以将目录添加到该环境变量中。 B. 编译器用它来搜索各自的类文件。 C. CLASSPATH是一个目录列表。 D. 解释器用它来搜索各自的类文件。 解答:A 5、编译Java Application源文件将产生相应的字节码文件,扩展名为() A. .java B. .class C. .html D. .exe 解答:B 6、开发与运行Java程序需要经过的三个主要步骤为___编辑源程序____、______编译生成字节码______和_____解释运行字节码____。 7、如果一个Java Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是_Applet_类的子类并且存储该源程序文件的文件名为_MyApplet.java_。 8、如果一个Java Applet程序文件中定义有3个类,则使用Sun公司的JDK编译器编译该源程序文件将产生_3_个文件名与类名相同而扩展名为_.class_的字节码文件。 9、开发与运行Java程序需要经过哪些主要步骤和过程? 答:1编写Java源文件:使用文本编辑器(edit或记事本),拓展名为.java

java语言程序设计基础篇第二章程序练习题答案

java语言程序设计基础篇第二章程序练习题答案

2.1(将摄氏温度转化为华氏温度) import java.util.*; public class test { public static void main(String[] args) { // TODO Auto-generated method stub Scanner input = new Scanner(System.in); System.out.print("Enter a degree in celsius: "); double Celsius = input.nextDouble(); double Fahrenheit; Fahrenheit = (9.0/5) * Celsius + 32; System.out.println(Celsius + " Celsius is" + Fahrenheit + " Fahrenheit"); } } 2.2(计算圆柱体的体积) import java.util.*; public class test {

public static void main(String[] args) { // TODO Auto-generated method stub Scanner input = new Scanner(System.in); System.out.print("Enter the radius and length of a cylinder: "); double radius = input.nextDouble(); double length =input.nextDouble(); double area = radius * radius * Math.PI; double volume = area * length; System.out.println("The area is " + area); System.out.println("The volume is " + volume); } } 2.3(将英尺转换为米) import java.util.Scanner; public class test { public static void main(String[] args) {

Java语言入门教程

Java语言入门教程 引言 您有没有想过计算机程序是怎样工作的?您是否曾经想学习编写自己的计算机 程序?无论您是想自己写出游戏程序的14岁孩子,还是对计算机编程已经好奇了20年的70岁老人,这篇文章都适合您。在本文中,我将通过教您用Java程序设计语言编程使您了解计算机程序的原理。 在讲授计算机编程的知识之前,我首先做如下假设: ?我假设您目前对计算机编程一无所知。如果您已经懂一些编程知识的话那么本文的开始部分对您来说就会显得十分简单。尽可放心跳过这些章节,从新知识处开始学习。 ?我假设您对计算机的使用有一些了解。具体说就是我假设您已经知道如何编辑、复制、删除和重命名文件,以及如何获取有关您的系统的信息等等。 ?为简单起见,我假设您的机器运行Windows95、98、2000、NT或XP操作系统。使用其他操作系统的用户将这里学到的概念运用到自己的系统中应 该也是比较容易的。 ?我假设您有学习的欲望。 进行Java编程需要的所有工具都可以轻松在网上免费获得。网上还有大量的Java学习资料,所以学完本文以后您可以很容易去学习更多内容以继续提高水平。在这里学习的Java编程在编译器、开发环境、阅读材料等等上没有任何花销。学会了Java再学习其他的语言就变得容易了,所以这里是个不错的起点。 交待完这些事情,我们就准备好了。让我们开始吧! 编程术语 记住,我假定您不懂编程。下面是一些术语,它们将有助于您的理解:?计算机程序——计算机程序是一组指令,告诉计算机应该怎么做。指令可 以告诉计算机将几个数相加,或比较两个数字并根据比较的结果作出决 定,如此之类。计算机程序只是面向计算机的一组指令而已,正如菜谱是 厨师的指令,乐谱是乐师的指令一样。计算机准确地执行这些指令的同时 也就完成了有用的工作,如计算支票簿收支,或者在屏幕上显示一个游戏,或运行一个字处理程序。 ?编程语言——为了能使计算机辨识您给它的指令,这些指令需要以一种计算机能够理解的语言书写,即编程语言。有很多计算机编程语言:Fortran、Cobol、Basic、Pascal、C、C++、Java、Perl,正如有很多人类语言一样。 它们都是用不同的方式来表达类似的概念。 ?编译器——使用人可以阅读的编程语言(如Java)写好程序后,还要用编译器将其翻译成计算机可执行的形式。您很可能在您的计算机上见到过

Java语言程序设计教程习题答案

《Java语言程序设计教程》习题参考答案 第1章习题参考答案 一、选择题 1.B 2.D 3.C 4.B 5.A 6.C 7.A 8.B 9.C 10.D 二、填空题 1.归纳方法2.映射和体现3.信息4.数据和方法5.包容关系6.面向对象的设计7.“获得”8.继承关系9.多种语义10.关联关系 第2章习题参考答案 一、选择题 1.D 2.C 3.B 4.C 5.C 6.B 7.A 8.B 9.A 10.D 二、填空题 1.public 2.多重3.Java API 4.appletviewer 5.Java虚拟机6.class 7.垃圾自动回收8.Java Applet 9.字节码10.Object 三、编程题 1.编写Java程序,要求在主方法中显示另一个类中的“这是Java程序的第二个例子”字符串。注意:另一个类中的字符串应是静态的(有关问题在今后的学习中将会逐渐介绍)。 参考源代码如下: import java.io.*; public class Programming0201 { public static void main(String args[]) { System.out.println(user0101.mM); }

《Java语言程序设计教程》习题参考答案 3 } class user0101 { static String mM="这是Java 程序的第二个例子!";} Programming0201.java程序运行结果如下。 这是Java 程序的第二个例子! 2.仿照教材例2.2程序编写Applet程序,在窗体上输出“Java是面向对象的程序设 计语言!”。 参考源代码如下: import java.applet.Applet; import java.awt.Graphics; /**/ public class Programming0202 extends Applet { public void paint(Graphics g) { g.drawString("Java是面向对象的程序设计语言!",30,30); } } Programming0202.java程序运行界面如图1-2-1所示。 图1-2-1 Programming0202.java程序运行界面 第3章习题参考答案 一、选择题 1.D 2.D 3.C 4.D 5.C 6.B 7.B 8.D 9.C 10.C 二、填空题 1.2/16 2.十六进制数3.long和double 4.double dValue=12.34; 5.boolean/1 6.long intLong=1000000000L; 7.5 8.3/3.5 9.–32768~32767 10.void 三、编程题 1.编写求圆的面积和周长的程序,半径r由用户在键盘上随机输入。 参考源代码如下: import java.io.*;

java语言基础教程

一、标识符及字符集 Java语言规定标识符是以字母、下划线"_"或美元符号"$"开始,随后可跟数字、字母、下划线或美元符号的字符序列。Java标识符大小写敏感,没有长度限制,可以为标识符取任意长度的名字,但关键字不能作为标识符。为增强程序可读性,Java作如下的约定: 1.类、接口:通常使用名词,且每个单词的首字母要大写 2.方法:通常使用动词,首字母小写,其后用大写字母分隔每个单词 3.常量:全部大写,单词之间用下划线分隔 4.变量:通常使用名词,首字母小写,其后大写字母分隔每个单词,避免使用$符号。 Java语言使用国际字符集(Unicode)。Unicode字符集定义了一套国际标准字符集。通常的ASCII码是8位的,而Unicode字符集中的每个字符占16位,即2个字节,整个字符集共包括65336个字符,兼容ASCII,排在Unicode字符集最前面的256个字符就是ASCII码。Unicode除了可以表示256个ASCII码外,还可以表示汉字、拉丁语、希腊字母、朝鲜语等。 Java标识符总结:1.由字母、数字、_或$组成,不能以数字开头;2.严格区分大小写;3.长度不限 二、关键字 Java常用关键字列表如下:

分类如下: 1.访问控制:private 私有的 protected 受保护的 public 公共的 2.类、方法和变量修饰符abstract 声明抽象 class 类 extends 扩允,继承final 终极,不可改变的implements实现 interface 接口 native 本地 new 新,创建 static 静态 strictfp 严格,精准synchronized 线程,同步 transient 短暂 volatile 易失 3.程序控制语句 break 跳出循环 continue 继续 return 返回 do 运行while 循环 if 如果 else 反之 for 循 instanceof 实例 switch 开关 case 返回开关里的结果 default 默认 4.错误处理 catch 处理异常 finally 有没有异常都执行 throw 抛出一个异常对象 throws 声明一个异常可能被抛出 try 捕获异常 5.包相关import 引入 package 包 6.基本类型 boolean 布尔型 byte 字节型 char 字符型 double 双精度float 浮点 int 整型 long 长整型 short 短整型 null 空 true 真 false 假

1.Java基础知识测试

考试宣言: 同学们, 考试考多少分不是我们的目的! 排在班级多少的名次也不是我们的初衷! 我的考试的目的是要通过考试中的题目,检查大家在这段时间的学习中,是否已经把需要掌握的知识掌握住了,如果哪道题目你不会做,又或者做错了, 那么不用怕, 考完试后, 导师讲解的时候你要注意听! 那时候学会了, 记住了, 也一样不影响你高薪就业! 本套题共40道不定项选择题,其中单选30道,多选10道。单选2分/题,多选4分/题。多选题不全对半分,全对满分。 1.下面说法正确的是) A. JVM就是Java虚拟机,包含java核心类库 B. JRE就是java运行环境,包含java程序编译运行的工具环境 C. JDK就是java开发环境,javac是其中的一个工具 D. 功能范围:JDK > JVM > JRE 2.下面的说法正确的是( ) A. Java 语言是面向对象的、解释执行的网络编程语言。 B. Java 语言具有可移植性,是与平台无关的编程语言。 C. Java 语言可对内存垃圾自动收集。 D. Java 语言编写的程序虽然是“一次编译,到处运行”,但必须要java的运行环境。 3.给定java代码,如下: public byte count(byte b1, byte b2){ return ____; } 要使这段代码能够编译成功,横线处可以填入 A. (byte)(b1-b2) B. b1-b2 C. (byte)b1+b2 D. (byte)b1/b2

4.关于类的命名,正确说法是() A. 可以由数字和英文拉丁字母组成,且可以任意排序 B. 命名要做到见名知意 C. 如果是由多个单词组成,每个单词首字母大写 D. 可以是Java已经定义过的关键字 5.关于main方法说法错误的是() A.main方法是java程序执行的入口 B.main方法的方法体重至少要有一行代码 C.main必须定义在一个类中 D. main方法的定义格式为:public static void main(String[] args){} 6.类中某方法定义如下: double fun(int a,int b){ return a*1.0/b; } 同一类内其它方法调用该方法的正确方式是: A. double a = fun(1,2); B. double a = fun(1.0,2.0); C. int x = fun(1,2); D. int x = fun(1.0,2.0); 7.给定java代码,如下,编译运行,结果是() public static void main(String[] args){ boolean flag; System.out.println(“flag”+flag); } A. 编译错误 B. 编译通过,单出现运行时错误 C. 正常运行,输出flag=false D. 正常运行,输出flag= 8.下面哪个关键字可以定义一个类() A. interface B. class C. extends D. implements

java基础知识大全(必看经典)

第一讲 Java语言入门 1.1 Java的特点 1.1.1面向对象: ?与C++相比,JAVA是纯的面向对象的语言 C++为了向下兼容C,保留了很多C里面的特性,而C,众所周知是面向过程的语言,这就使 C++成为一个"混血儿"。而JAVA语法中取消了C++里为兼容C所保留的特性,如取消了头文件、指针算法、结构、单元等。 1.1.2可移植(平台无关性): ?生成中间字节码指令 与其他编程语言不同,Java并不生成可执行文件(.exe文件),而是生成一种中间字节码文件(.class文件)。任何操作系统,只要装有Java虚拟机(JVM),就可以解释并执行这个中间字节码文件。这正是Java实现可移植的机制。 ?原始数据类型存储方法固定,避开移植时的问题 Java的原始数据类型的大小是固定的。比如,在任何机器上,整型都是32位,而C++里整型是依赖于目标机器的,对16位处理器(比如8086),整数用两个字节表示;在像Sun SPARC这样的32位处理器中,整数用4个字节表示。在Intel Pentium处理器上,整数类型由具体的操作系统决定:对于DOS和Win32来说,整数是2个字节;对于Windows 9x 、NT和2000,整数是4个字节。当然,使整数类型平台无关之后,性能必然有所下降,但就Java来说,这个代价是值得的。Java的字符串,则采用标准的Unicode格式保存。可以说,没有这个特性,Java的可移植性也不可能实现。 1.1.3简单 ?JAVA在语法上与C++类似 JAVA的语法与C++很接近,有过C或者C++编程经验的程序员很容易就可以学会JAVA语法; ?取消了C++的一些复杂而低效的特性比如:用接口技术代替了C++的多重继承。C++中,一个类允许有多个超类,这个特性叫做"多重继承",多重继承使得编译器非常复杂且效率不高;JAVA 的类只允许有一个超类,而用接口(Interface)技术实现与C++的多继承相类似的功能 其它被取消的特性包括:虚拟基础类、运算符过载等 ?JAVA的基本解释器和类支持模块大概仅40K 即使加入基本的标准库和支持线程的模块,也才220K左右。与GUI(图形用户界面)相比,

相关主题
文本预览
相关文档 最新文档