Java程序设计基础教程.docx
《Java程序设计基础教程.docx》由会员分享,可在线阅读,更多相关《Java程序设计基础教程.docx(23页珍藏版)》请在冰豆网上搜索。
![Java程序设计基础教程.docx](https://file1.bdocx.com/fileroot1/2023-1/23/3a00d88f-4de8-4679-9fa8-b5afccc41107/3a00d88f-4de8-4679-9fa8-b5afccc411071.gif)
Java程序设计基础教程
Java程序设计基础教程
第一章概述
本章技能目标
(1)了解Java语言的由来、特点、家族成员及实现机制。
(2)熟悉JDK开发环境的安装及配置。
(3)会使用Eclipse开发第一个Java应用程序。
重点和难点
开发环境的配置及使用。
1.1Java语言简洁
1.1.1Java语言的由来
Java是由SUN公司开发而成的新一代编程语言。
Oak。
咖啡(Java)。
Java大家庭:
(1)J2ME—即Java2MicroEdition。
(2)J2SE—即Java2(SoftwareDevelopmentKit)StandardEdition。
(3)J2EE—即Java2EnterpriseEdition(可扩展的企业应用Java2平台)。
1.1.2Java语言的特点
面向对象及面向过程。
高级语言程序必须转换为机器语言程序才能执行,但不同的计算机系统所使用的机器语言不同。
一次编译,随处运行。
任何系统只有安装了Java虚拟机(JavaVirtualMachine,JVM)后,才可以执行Java程序。
当JVM解释执行Java程序时,Java实时编译器(Just-In-Time,JIT)会将字节码译成目标平台对应的机器语言的指令代码。
编译器会产生一种具备结构中立性的对象文件格式,即Java字节码文件。
在Java中,这种供虚拟机理解的代码叫做字节码(ByteCode),它不面向任何特定的处理器,之面向虚拟机。
Java字节码可在任何安装了Java虚拟机的平台上运行。
每一种平台的解释器是不同的,但是实现的虚拟机是相同的。
Java源程序经过编译器编译后变成字节码。
字节码由虚拟解释执行,虚拟机将每一条要执行的字节码送给解释器,解释器将其翻译成特定机器上的机器码,然后再特定的机器上运行。
其执行过程如图1-1所示。
1.2开发环境配置及使用
1.2.1JDK的安装及配置
在开发Java应用程序前必须首先下载并安装JDK。
目前JDK最新版本是1.6。
2.认识JDK
(1)bin目录。
提供了工具程序,包括javac、java、javadoc、appletviewer等程序。
1)javac用于将Java源代码编译成字节码。
其语法为:
Javac[option]source
其中,[option]可包括以下几项:
①-classpath<路径>,指定将使用的类路径,以搜索.class文件。
②-d<目录>,制定用于存放经过编译的.class文件的目录。
“.”表示当前目录。
Source是以扩展名.java结尾的一个或多个文件名。
2)java用于执行java字节码。
其语法为:
Java[option]classname[arguments]
其中,[option]可包括以下几项:
①-classpath<路径>,指定将使用的备用类路径。
②-version<版本>,显示编译源代码的JDK版本。
3)javadoc用于生成API文档。
4)appletviewer用于运行编译好的Applet。
(2)jre目录。
提供JDK附带的JRE资源包(运行环境)。
(3)lib目录。
提供了java工具所需的资源文件。
(4)demo目录。
提供了Java编写的范例程序。
(5)src.zip文件。
提供了API类的源代码压缩文件。
如需查看API的某些功能实现方法,可以查看这个文件中的源代码内容。
3。
设置Patch及Classpath环境变量(在WindowsXP环境下)
(1)设置Patch。
具体方法是:
用鼠标右键单击桌面上“我的电脑”图标,选择“属性”选项,再选择“高级标签”,系统显示如图1-3所示。
单击“环境变量”按钮,打开“环境变量”对话框。
选择Path变量,单击“编辑”按钮,在“变量值”文本框中加入JDK的bin地址目录,如:
C:
\ProgramFiles\Java\jdk1.6.0_21\bin,地址间采用“;”隔开,如图1-4所示。
设置完成后,单击“确定”按钮完成设置,并返回到“环境变量”对话框。
(2)设置Classpath。
再“环境变量”对话框中单击“新建”按钮,设置变量名为Classpath变量值为:
.;C:
\ProgramFiles\Java\jdk1.6.0_21\lib,如图1-5所示。
提示:
“.”表示当前目录。
(3)测试。
具体方法是:
单击“开始”菜单,选择“运行”命令,输入cmd命令,进入DPS界面,若输入java–version命令会出现如图1-6所示的信息,则表明设置正确。
1.2.2开发第一个Java程序
(1)Eclipse。
登录下载。
(2)安装Eclipse。
Eclipse是一个绿色软件,无需安装即可执行。
覆盖下列文件到程序目录即可。
(3)运行Eclipse。
进入解压后的eclipse目录,双击eclipse.exe运行Eclipse集成开发环境。
在运行时,Eclipse会提示选择工作空间,如图1-7所示(这里选择E:
\黄伟林\第一章作为工作空间)
选择工作空间后,单击“确定”按钮,会出现一个欢迎界面,可以把欢迎界面关闭。
(4)用Eclipse编写程序。
1)新建项目(project):
单击“文件”→“新建”→“项目”命令,在弹出的对话框中选择“Java项目”选项,单击“下一步”按钮,如图1-8所示。
输入项目名称:
JavaStudy,单击“完成”按钮,如图1-9所示。
提示:
项目又称“工程”。
2)新建Java程序:
选中“包资源管理器”中的JavaStudy项目节点,单击鼠标右键,选择“新建”→“文件”命令,新建文件,如图1-10所示。
在“文件名”文本框中输入:
FirstClass.Java,单击“完成”按钮,系统将自动弹出如图1-11所示的Eclipse主窗口。
3)编写代码:
在Java编辑器中输入如图1-12所示的内容。
publicclassFirstClass
{
publicstaticvoidmain(Stringargs[])
{
System.out.println("HelloWorld!
");
}
}
4)保存:
单击工具栏中的“保存”按钮或“文件”菜单中的“保存”命令。
在保存的同时,Eclipse将自动将源程序编译成字节码文件。
若程序有错误,将显示在“问题”视图中。
5)运行:
在“包资源管理器”中,选中FirstClass类节点,单击鼠标右键,选择“运行方式”→“Java应用程序”选项。
如果看到如图1-13所示的输出结果,表明第一个程序开发成功。
1.2.3Java程序框架
(1)给程序起个名字,我们把它叫做类名,图1-12中的FirstClass就是类名。
类名前腰用public(公共的)和class(类)两个词修饰,他们的顺序不能改变,中间要用用空格分隔。
类名后跟一对大括号,所有属于这个类的代码都放在“{”和“}”之间。
(2)写出main方法的框架
publicstaticvoidmain(Stringargs[]){}
main方法是所有Java应用程序执行的起点。
一个程序孩子能有一个main方法。
(3)在main方法中填写代码。
println()和print()都是向控制台输出消息,唯一不同的是,println()在输出消息后会自动换行,而print()不会自动换行。
注意:
(1)public修饰的类名不能随便起,必须及Java文件同名。
(2)每条语句必须以“;”结尾。
(3)输出的字符串必须用双引号括起来,而且必须是英文的引号。
1.3案例:
制作频道菜单
参考代码
classPinDao
{
publicstaticvoidmain(Stringarg[])
{
System.out.println("欢迎收看电视频道,请选择:
");
System.out.println("\t1:
少儿频道");
System.out.println("\t2:
影视频道");
System.out.println("\t3:
经济频道");
System.out.println("\t4:
体育频道");
System.out.println("\t5:
农村频道");
}
}
1.4本章小结
源程序以.java为后缀名,编译后生成的文件以.class为后缀名。
1.5实战训练
实战:
开发简单的Java应用程序
参考方案
publicclassPractice1
{
publicstaticvoidmain(Stringargs[])
{
System.out.println("姓名:
张三");
System.out.println("年龄:
21");
System.out.println("性别:
男");
System.out.println("职业:
学生");
System.out.println("住址:
杭州市江干区139号");
System.out.println("电话:
5");
}
}
第2章Java语言基础
本章技能目标
(1)了解Java语言的基本符号,包括关键字、标识符、运算符和注释。
(2)了解Java语言的数据类型以及变量、常量的使用。
(3)会使用Java的运算符。
(4)掌握Java语言的控制语句,如分支语句、循环语句灯。
(5)掌握Java中数组的创建和使用。
重点和难点
(1)Java分支语句的使用。
(2)Java循环语句的使用。
(3)Java数组的声明、初始化和使用。
(4)数据类型转换。
2.1Java符号
Java的符号可以分为:
标识符、关键字、运算符和注释符号。
2.1.1标识符
在Java语言中,任何一个变量方法、对象和类都需要事先用一个名字来对它命名,这个名字就是标识符。
Java中标识符的使用有如下规定:
(1)标识符由字母、数字、美元符号“$”和下划线“_”组成,除此之外的任何其他符号是不能作为标识符使用的。
(2)标识符中的第一个字符不能为数字。
(3)标识符不能为Java的关键字,但Java的关键字可作为标识符的一部分。
(4)区分大小写,如Ad、ad、aD是不同的标识符。
(5)长度不限,但不宜过长,尽量做到知名达意。
(6)注意“_”和“-”的区别,减号是不能作为标识符的。
为了提高程序的可读性,SUN公司推荐在Java编程时使用一下的习惯约定:
(1)类名:
可由一个或若干个名词组成,每个名词首字母大写,其他小写。
如AccountBook、ComplexVariable。
(2)接口:
规则同类名。
如Account。
(3)方法:
由一个或多个动词组成,开头小写,动词间区分用大写,其他小写。
如balanceAccount。
(4)变量:
小写字母开头,单词间用大写字母讲个。
如currentCustomer。
(5)常量:
所有字母大写,单词间用下划线区分。
如MAXIMUM_SIZE。
2.1.2关键字
关键字是Java语言本身使用的标识符,均采用小写形式。
2.1.3注释符
注释内容在编译时会被编译器忽略。
Java的注释有三种形式:
单行注释、多行注释和文档注释。
(1)单行注释。
也叫双斜杠注释,即在注释内容前使用一个双斜杠(//),表示从斜杠开始到本行结束都是注释内容,编译器不需要编译这部分内容。
【例2-1】单行注释示例。
classExample1
{
publicstaticvoidmain(String[]args)
{
System.out.println("单行注释示例");//在屏幕上输出
}
}
(2)多行注释。
这种注释以“/*”开始,以“*/”结束,两组符号必须成对出现。
一般使用该注释来注销目前不再使用但仍想保留的代码行,或者像让它在调试过程中暂时失效。
【例2-2】多行注释示例。
classExample2
{
publicstaticvoidmain(String[]args)
{
/*
System.out.println("单行注释示例");//在屏幕上输出
*/
System.out.println("多行注释示例");
}
}//程序结束
(3)文档注释。
文档注释主要放在类、接口、方法和成员变量定义的前面,用于对这些对象的解释。
除了便于阅读理解外,主要目的是为了用Javadoc工具生成API文档。
这种注释以“/**”开始,以“*/”结束。
【例2-3】文档注释示例。
/**
*标题:
文档注释
*描述:
距离说明文档注释的注释方法
*版权:
Copyright(c)2008
*公司:
XXX
*@versionversion1.5
*/
classExample3
{
publicstaticvoidmain(String[]args)
{
System.out.println("文档注释示例");
}
}//程序结束
2.1.4运算符及分隔符
运算符,是用来执行某种运算(如加法+、减法-、乘法*)的符号。
Java中的运算符有很多,如算术运算符、逻辑运算符、关系运算符灯。
分隔符是为了将程序代码组织成编译器可以理解的形式,常见的分隔符有()、{}、[]、;和空格。
2.2Java数据类型及使用
Java语言中包含两大类数据类型:
基本数据类型和引用数据类型(如图2-1所示)。
Java的基本数据类型长度是固定的,可以跨平台自由移植。
在Java中,基本数据类型主要有4种。
1.整数型
Java定义了4种整数类型:
byte、short、int、long,见表2-2
2.浮点型
浮点数即实数,包括整数和小数两部分。
Java中有两种浮点数—float和double,分别代表单精度型和双精度型。
3.字符型
在Java中,用于存储字符的数据类型是char。
4.布尔值
在Java中,用于存储布尔值的数据类型是boolean,占1位,其布尔常量只有两个值:
true和false。
引用数据类型是指由基本数据类型组合成的较复杂的数据类型。
不同类型的数据既可以以变量的形式出现,也可以以常量的形式出现。
变量的值在程序执行期间是可变的,而常量的值是不可改变的,它们都代表内存中指定的存储单元。
将数据指定给变量,就是将数据存储至对应的内存空间;调用变量,就是将对应的内存空间的数据取出来使用。
在Java中要使用变量,必须先进行定义。
其语法为:
数据类型变量名[=初值];
doublejavaScore=98.5;//定义一个双精度浮点型变量javaScore存储分数
Stringname=”jenny”;//定义一个字符串变量那么存储姓名
charsex=”女”;//定义一个字符型变量sex存储性别
变量必须经定义初始化后才能使用,否则编译器在编译时会报告这个错误。
variablevarmightnothavebeeninitiallzed.
在Java中写下“0.0”这么一个常数,其默认为double数据类型。
【例2-4】各种类型变量的使用。
classExample4
{
publicstaticvoidmain(String[]args)
{
intageOfStudent=3;
doublescoreOfStudent=90.0;
charlevelOfStudent='A';
System.out.println("年级,得分,等级");
System.out.println(ageOfStudent+","+scoreOfStudent+","+levelOfStudent+",");
}
}
2.2.3常量
常量是不可改变的数值,按其类型可以分为整型常量、浮点型常量、布尔型常量、字符常量和字符串常量。
(1)整型常量。
可分为int型和long型,默认为int型,long型在数值后加L。
(2)浮点型常量。
有单精度和双精度之分,缺省为双精度,单精度在数值后加f,双精度在数值后加d或者D。
(3)布尔型常量。
布尔常量只包括true和false两个值,表示逻辑运算结果的真或假。
C语言中布尔值用1或者0来表示。
(4)字符常量。
用单引号(’’)括起来的一个字符。
如’a’,’H’。
Java语言可使用转义字符转’\’来标记特殊字符。
常用的转义字符见表2-4。
(5)字符串常量。
用双引号(””)括起来的一串字符,如“Goodmonrning”。
但在Java中,字符串常量是作为String类的一个对象来处理的,而不是一个基本数据类型。
2.2.4类型转换
类型转换有3种情况:
自动转换、强制转换和使用类的方法转换。
(1)自动转换。
将低精度类型数据赋给高精度类型数据时能进行自动转换。
如:
byteb1=10,b2=20;
intb3=b1+b2;//将byte类型数据转换为int型赋给int型变量。
(2)强制转换。
高精度类型到低精度类型必须强制转换,这是数据可能会丢失部分信息。
如:
charkey=(char)(12+55);//变量key被赋值为Unicode值为67的字符’c’
(3)使用类的方法转换。
如
Stringstr=“123”;
inta=Integer.parseInt(str);//使用Integer类的方法parseInt将String转换为对应的整数。
2.3运算符及表达式
运算符是指对操作数所进行的运算。
按照操作数的数目,可分为一元运算符(如++、--)、二元运算符(如+、-)和三元运算符(如?
:
),分别操作一个、两个和三个操作数。
表达式是用运算符把操作对象连接起来的、符合一定规则的式子。
表达式只有两类:
数值和逻辑值。
整数相除,其值为整数。
如表达式3/5的值为0,而不是0.6。
2.3.1算术运算符和算术表达式
其用法见表2-5
先乘除后加减,必要时加上括号表示运算的先后顺序。
System.out.println((double)(1+2+3)/4);
注意在上面的程序代码中使用了double限定类型转换,如果不加上这个限定,程序的输出会是1而不是1.5,这是因为在该程序中,1、2、3、4这4个数值都是整数,程序运行(1+2+3)后的结果还是整数类型,若此时处以整数4,会自动去除小数点之后的数字再进行输出,而加上double限定,表示要将(1+2+3)运算的值转换为double数据类型,这样再除以4,小数点之后的数字才不会被去除。
inttestNumber=10;
System.out.println(testNumber/3.0);//第一种方法
System.out.println((double)testNumber/3);//第二种方法
如果表达式中有一个浮点数,则程序就会先转换使用浮点数来运用。
当将精确度小的数据类型(如int)指定给精确度大的数据类型变量(如double)时,精确度并不会失去。
如果确定要转换数值为较小的精度,必须明确加上转换的限定符,编译器才不会报告错误。
2.3.2关系运算符和关系表达式
关系运算符用来对两个值进行比较,返回布尔类型的值true和false。
关系运算符都是二元运算符,其用法如表2-6所示。
在Java中,条件成立时以true表示,不成立时以false表示。
【例2-5】关系运算的使用。
importjava.util.*;
publicclassComparisonOperator
{
publicstaticvoidmain(String[]args){
intjeny=75;//jeny成绩为75
Scannerinput=newScanner(System.in);//输入的一种方法
System.out.println("请输入joe的成绩:
");
intjoe=input.nextInt();
booleanresult=jeny>joe;
System.out.println("jeny的成绩高于joe吗?
"+result);
}
}
Strings1=“hello”;
Strings2=newString(“hello”);
System.out.println(s1==s2);//显示false
System.out.println(s1.equals.(s2));//显示true
2.3.3逻辑运算符和逻辑表达式
表2-7列出了各种逻辑运算符的运算规则。
【例2-6】逻辑运算符示例。
publicclassLogicalOperator
{
publicstaticvoidmain(Stringargs[])
{
intnumber=75;
System.out.println((number>70&&number<80));
System.out.println((number>80||number<75));
System.out.println(!
(number>80&&number<75));
}
}
3.4赋值运算符和赋值表达式
见表2-8。
可以提高运算的效率。
inti=5;
inta=--i;
i的值是4,而对应的a也是4。
2.3.5条件运算符和条件表达式
其格式如下:
条件式 ?
成立返回值 :
失败返回值
【例2-7】条件运算符示例。
importjava.util.Scanner;
publicclassConditionalOperator
{
publicstaticvoidmain(String[]args){
Scannerscanner=newScanner(System.in);
System.out.println("请输入学生分数:
");
intscoreOfStudent=scanner.nextInt();
System.out.println("该生是否及格?
"+(scoreOfStudent>=60?
'是':
'否'));
}
}
【例2-8】判断使用者输入的是否为奇数。
importjava.util.Scanner;
publicclassOddDecider1
{
publicstaticvoidmain(String[]args){
Scannerscanner=newScanner(System.in);
System.out.println("请输入数字:
");
intnumber=scanner.nextInt();
System.out.println("是否为奇数?
"+(number%2!
=0?
'是':
'否'));
}
}
奇数表示不能被2整除,所以余数一定不是0。