版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章
Java概述第二章
Java语言基础第三章
Java面向过程编程
第四章
Java数组与字符串第五章
Java
类与对象第六章
Java继承与抽象类
第七章
多态与接口第八章
异常处理第九章
Java
输入/输出
第十章
Java常用类介绍
第十一章
图形界面设计
第十二章
事件处理第
一
章
Jaua概述1.1
Java历史简介1.2
Java的方向划分1.3
Java语言的特点1.4
Java语言的地位1.5Java开发环境1
.6第一个Java
程序1.7Java编程规范本章小结BACK1.1
Java历史简介Java语言源于Sun
公司在1990年12月开始研究的一个内
部项
目
,Sun
公司的工程师们在项目开发中发现C语言和可
用
的API(Application
Programming
Interface,应用程序编程
接口)难以完成项目开发,1991年4月,Sun
公司的JamesGosling博士和几位工程师在改进C
语言的基础上创造出一门
新的语言
—
Oak
(橡树)。Oak
语言有望于控制嵌入在有线电
视交换盒、PDA(Personal
Digital
Assistant,掌上电脑)等中的
微处理器,后来更名为"Java"(爪哇咖啡)。Java
既安全、可移植,又可跨平台,而且人们发现它能够解决Internet上
的大型应用问题。1.2
Java的方向划分Java的版本演进到了Java
2,根据其应用的不同层面进
行
划
分
,Java2平台被分为三个版本,各版本及其说明如表
1-
1所示。版本描
述英文J2EEJava平台企业版,适用于服务器,目前已成为企业运算、电子商务等领域的热门技术EnterpriseEditionJ2SEJava平台标准版,适用于一般的计算机,开发PC上的应用软件,是Java平台的基础StandardEditionJ2MEJava平台微型版,适用于手持设备、消费产品、嵌入式设备等的应用开发,如手机移动商务应用开发等MicroEdition表1-1
Java
2版本划分Java语言具有以下几个特点:1
.
简单Java由C
、C++发展而来,其语言风格与C++十分相似;
另
一
方面,Java比C++简单,它删除了C++中难理解、易引
起安全隐患的内容,如最典型的指针操作、多继承等,降低
了学习的难度;同时,Java还有一个特点,即它的基本语法
部分与C语言的几乎一模一样,容易为人们接受。1.3
Java语言的特点2
.
面向对象Java是一种面向对象的程序设计语言,在面向对象上相
较于C++
更加合理和易于理解,更接近于现实世界的概念。
同时
,Java语言支持静态和动态风格代码的继承和重用,所
采用的自动装箱和拆箱技术让Java的各个基本类型也可以作
为对象进行处理。3
.
分布式Java具有支持分布式计算的特征。分布式计算中的“分
布”指的是数据分布和操作分布。数据分布即应用系统所操
作的数据可以分散存储在不同的网络节点上;操作分布即应
用系统的计算可由不同的网络节点完成。Java
能实现这两种分
布
。4
.
安
全Java在语言机制和运行环境中都引入了多级安全措施,
主要如下:(1)内存分配及布局由Java运行系统规定,取消了指针
的操作,不允许直接对内存进行操作,实现了内存管理自动
化,内存布局由Java虚拟机(Java
Virtual
Machine,JVM)决定。(2)运行系统提供字节码验证、代码认证与代码访问权
限控制的安全控制模型。①
提供字节码检验器,以保证程序代码在编译和运行
过程中接受一层层的安全检查,这样可以防止非法程序或病
毒的入侵
。②
提供了文件访问控制机制,严格控制程序代码的访
问权限
。③
提供了多种网络软件协议的用户接口,用户可以在
网络传输中使用多种加密技术来保证网络传输的安全性和完
整
性
。5.编译和解释的结合Java应用程序由编译器编译成字节码,这个字节码不是
最终可执行的程序,不能在具体的平台上运行,还需要由运
行系统上的字节码解释器将其解释成机器语言,从而达到边
解释边执行的目的。6.可移植Java的最大特点是“一次编程,多次使用”。任何机器
只要配备Java
虚拟机,便可以运行Java程序,因为Java
语言不是针对某个具体平台结构设计的。7
.
多线程多线程技术允许应用程序并行执行,即同时做多件事,
满足了一些复杂软件的要求。Java
不但内置多线程功能,而
且提供语言级的多线程支持,即定义了一些用于建立、管理
多线程的类和方法,使得开发具有多线程功能的程序变得简
单和有效。1.课程地位Java语言在计算机相关专业中的课程地位如图1-1所示,
可以看出,Java最主要的前导课程是C
语言
,Java的面向过
程以及结构化编程主要来自于C
语
言
;Java
的后续课程很多,
主要是因为Java技术的应用范围非常广泛,而作为这些课程
的基础,如果不能很好地掌握Java语言,对于后续课程的学
习将有很大影响,所以有关Java语言的课程在软件开发中占
有非常重要的地位。1.4Java语言的地位OC
语言Java高级编程JavaWeb开发
JavaEE
技术Android移动开发软件测试图1-1
Java课程地位计算机基础知识Java语言Java程序员主要有三个开发方向:(1)Android
移动端开发:主要是移动端应用的开发。移
动端包括搭载Android
系统的手机、平板、电视盒子等设备。(2)Web
开发:主要有HTML5开发、B/S应用开发、微
信开发等,包括企业的信息系统开发,是Java
应用的一个非
常大的市场。(3)通信服务器开发:主要是通信服务器的开发,如游
戏服务器、腾讯的QQ服务器等。Java是广泛使用的编程语言,拥有庞大的客户群。据估计,全球范围内有超过30亿台设备在运行Java,超过其他任
何一种语言。使用Java编写的程序几乎可用于任何设备,包
括智能手机、服务器、自动取款机、销售点终端机(POS)、蓝光播放器、电视、机顶盒、物联网网关、医疗设备、
Kindle电子阅读器、汽车等。1.5
Java开发环境Java开发环境的安装主要有三个步骤,如图1-3所示。下载、安装JDK
设置环境变量安装
IDE图1-3
Java开发环境安装1.5.1
安
装Java
JDKJDK(Java
Development
Kit)是Java语言的软件开发工具
包,是整个Java
的核心,包括Java
运行环境、Java
工具和Java基础类库。要进行Java
程序的开发,首先要在电脑上安
装JDK,
其下载地址为http://www.oracle.com/technetwork/java/javase/downloads/inde
x.html。其下载页面如图1-4所示。now
download
this
software.Product/File
DescriptionFile
SizeDownloadLinux
ARM
32Hard
Float
ABI77.92
MB量jdk-8u161-linux-arm32-vfp-hflt.tar.gzLinux
ARM64Hard
Float
ABI74.88
MB豆jdk-8u161-linux-arm64-vfp-hflt.tar.gzLinux
x86168.96
MBjdk-8u161-linux-i586.rpmLinux
x86183.76
MB三jdk-8u161-linux-i586.tar.gzLinux
x64166.09
MB量jdk-8u161-linux-x64.rpmLinux
x64180.97
MB量jdk-8u161-linux-x64.tar.gzmacOS247.12MBjdk-8u161-macoSX-x64.dmgSolarisSPARC64-bit(SVR4
package)139.99
MBjdk-8u161-solaris-sparcv9.tar.ZSolarisSPARC64-bit99.29MBjdk-8u161-solaris-sparcv9.tar.gzSolarisx64140.57MBjdk-8u161-solaris-x64.tar.ZSolarisx6497.02MB量jdk-8u161-solaris-x64.tar.gzWindowsx86198.54
MB三jdk-8u161-windows-i586.exeWindowsx64206.51MB三jdk-8u161-windows-x64.exeJava
SE
Development
Kit
8u161Youmust
accept
theOracleBinaryCode
LicenseAgreementforJavaSEto
downloadthissoftware.ThankyouforacceptingtheOracle
BinaryCode
LicenseAgreementforJavaSE;youmay图1-4JDK
下载示意图JDK的安装方法和一般的软件安装一样,跟随软件安装的向导界面,按照默认的安装设置进行即可。安装完后可以
在开始菜单中查看,也可以在控制面板中查看是否安装成功,
如图1-5所示。回文件(F)编辑(E)查看(M)工具(1)帮助(H)调整计算机的设置360强力卸载(32位
)Internet
选项RemoteApp
和桌面连接Windows
防
火
墙程序和功能搜索座制面板查看方式:大图标A
Flash
Player(32位
)Realtek
高清晰音频管理器Windows
Update操作中心电源选项BitLocker
驱动器加密JavaWindows
Cardspace备份和还原电话和调制解调器图1-5检查JDK是否安装成功PJava版本8更新161(工作版本1
.
8
.
0
_
161
-b12)版权所有
(
c)20
17,Oracle
和/或其子公司。
保留所有权利.如需关于
Java
技术的更多资料以及查找重要的
Java
应用程序,请访问http://www.双击Java
图标,然后在弹出的界面中点击“关于”,可以查看Java
的版本号,如图1-6所示。ORACLE图1-6查看JDK版本关于JavaX1.5.2环境变量设置安装好JDK后需要进行环境变量的设置,具体流程如图1-
7所示。(1)右键点击“计算机”
→“属性”,在弹出的系统属
性对话框中点击“高级系统设置"
→
“高级”
→
“环境变量
(N)...”。(2)在“环境变量”窗口中的“系统变量(S)”下点击
“新建(W).….”,
新
建
“JAVA_HOME”变量,变量值为JDK的安装目录名,默认安装目录为C:\ProgramFiles\Java\jdk1.8.0_
161。文件月编塌(E)
查看(N工具(T)
帮助(H)控制面板主页
系
统
国性计算机名
硬件高级保护
远程要进行大多数更改,您必须作为管理员登录。,性能视觉效果,处理器计划,内存使用,以及虚拟内存高级系统设置设置CS).用户配置文件与您登录有关的桌面设置设置②)..白动和故障恢复系统启动、系统失败和调试信息设
置(T).环境变里00)..环
境变量应用(A)Adninistrater的用户变量0)变里
值B0Z_FLNGIS_PATHC:VProgrFires(x86)VFoxitSo...TEMFUSEKPBOPTLtxAppData\LoeallTeapTWP
NSEKPDFILEWAppData\Loeal\Tep新
建
0
0
.
.
编辑(D)
除
D)系统安里S)值C:Nwindevs\systes32\endxe1APrnm
Filee\Tavalilkl
R₀161新
建
0
)…
编
辑C)…
刷除L)摄作中确
定
取
消Winde图1-7
Java环境变量设置流程安里ConSpeeDEVNRSHDW
PP_0JuSTCso
TAVAHMR●设备管理器●
远
程
设
置系统保护另请X(3)在“系统变量(S)”栏找到Path变量,双击进行编辑,在变量值后输入“%JAVA
HOME%\bin;%JAVA
HOME%\jre\bin;”,
如图1-8所
示
。环境变量Administrator的用户变量(U)变
量MOZ_PLUGIN_PATHC:\ProgramFiles(x86)\FoxitSo...%USERPROFILEX\AppData\Local\Temp
%USERPROFILEX\AppData\Local\Temp新建ON)...
编
辑(E)...
删除D)系统变量(S)值NUMBER_0F_PR...4Windows_NTC:\ProgramData\Oracle\Java\java...CNM·FXF·RAT·CMN·VRS·VRF
·XPathStatieXJAVA_HOMEX\bin;XJAVA_HOMEX\确定
取
消图1-8编辑环境变量编辑系统变量变量名0N):
变量值(V):osIPathPATHRX
下、TEMPTMe变量值X4)再次在“系统变量(s)”栏点击“新建(W)..”,输
入
CLASSPATH,
变量值后输入“
.%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar”(
注
意最前面有一个点),如图1-9所示。变
量
名(N):
CLASSPATH变
量
值(V):
|XJAVA_HOMEX\lib;XJAVA_HOMEX\lib'to确定取
消图1-9输入环境变量(5)检验是否配置成功,运行cmd,在黑色窗口中输入“java-version”(java和-version之间有空格)。若如图1-10所示,显示Java
的版本信息,则说明安装配置成功。C:Wsers
Administrator>java
-version
java
version
"1.8.0
161"Java(TM)SE
Runtime
Env
ironment(build1
80
161-b12)Java
HotSpot<TM)64-Bit
Server
UM(build25.161-b12,mixed
mode)图1-
10环境变量设置是否成功C:Wsers
Administrator>管理员:C:\windows\system32\cmd.exeX1.5.3集成开发环境Java的IDE很多,较为常用的有Eclipse、NetBeans、IntelliJ
IDEA等,如表1-2所示,但是这些IDE
对于初学者来
说过于庞大,功能过于复杂,且大多是以项目的方式组织程
序的
。EclipseIrtelliJ
IDEANetBeansJCreatoreclipseNetBeansJCreatora
m
u
用
,
m
E
L
N
t
s
s表1-2常用的Java
IDEJCreator
Le
5.0软件可以在JCreator
官
网(/)下载,也可以在很多常用的软件下
载网站上搜索下载,下载完按照安装向导提示进行安装即可。
安装完毕后打开软件,JCreator
的主界面如图1-11所示。·
日四
-C-
的C
JCreator◎Installation图1-11
JCreator主界面如果在使用JCreator
过程中出现图1-12所示的提示,表示后台的Java
JDK还没有和我们之前安装的JCreator关联起
来,解决方法如下:在JCreator菜单Configure中选择Options→JDK
Profiles,检查是否有JDK;
如果为空,就点
击New按钮,然后找到JDK安装的目录,如图1-13所示。JavaDevelopment
Kit
Home
Path The
JDK
home
path
has
not
been
set.Do
you
want
to
make
a
new
JDK
Profile
or
continue?For
more
information,please
refer
to
the
help
files.□Don't
ask
me
again
Set
up
JDK
Help
Continue图1-12
JDK
设置问题田-Workspacec:Program
FlesJavaljdk1.8.0_161W三图1-13设置JDKProfilesOptionsGeneralEditor田-Jsp田-Antpavalidk1.8.0_Help1.6第一个Java
程序点击JCreator
中的菜单项File→New→File,出现新建文
件向导,如图1-14所示,选择Java
Classes→Java
Class,点击Next按钮。MainClassJava
ClassCreatesanew
Java
class.BackNext
Einish
Cancel图1-14新建Java类File
WizardFile
TypeSpecifythe
document
templateXHelpApplet
ClassJEmptyJavaFileException
Class
11lava
CassAntBuldJavaClasses
OtherWebServices
XML◎File
Type
FilePath源文件需要放置的路径,如"D:\JavaCode\",
然
后
点
击Finish按钮,即可进入到程序编辑界面。在图1-15所示的窗口中输入文件名"HelloJava",选
择File
PathSpecifythe
name
and
pathFileTypeFilePathName:HelloJavaLocation:D:JavaCode\☑Set
as
defaultpageBackNextFinishCancelHelp图1-15输入类名及所在目录FileWizardX在程序编辑区域会看到下列程序代码:程序示例1-1第一个Java
程序(空程序)。程序段(HelloJava.java)/***@(#)HelloWordjava**@author*@version1.002017/3/27这里生成了
一个与文件名相同的类--HelloJava,里面有
一
个构造函数(第五章内
容),目前暂时没用到,可以删掉。绿色的这段代码表示注释,以“/**”开头,
以“*/”结束,注释代码不被编译运行,单
行注释还可以使用“//”。*/public
class
public
}}HelloJava{HelloJavaO{程序分析:(1)Java
是使用类(class)来组织程序的,在一个文件中可以有多个类,每个类有自己的区域{…},其中只能有一个
类的类名与文件名相同,并且带public公共修饰符,该类是
作为该文件运行的主类,该类的main方法将是运行该文件的入口函数。(2)在本书的前四章,我们都在一个文件中定义一个同
名的主类,然后在该类中输入一个main函数,作为程序的入
口,类似于C
语言,在main函数中编写程序语句或者调用其
它函数。(3)main
函数的写法:(可以使用JCreator的代码提示:输
入main,
出现提示后回车,即可自动完成main
函数代码。)(4)main函数中输入的第一条Java语句“System.out.println("HelloJava!");”中,System.out.println(是一个输出函数,将字符串或各种数据类型放入该函数的括
号里面,能够输出相应形式的字符到显示器上;点击国
按
钮进行编译,如果有语法错误会在Build
Output窗口中显示
出来,如果没有语法错误将显示“Processcompleted.”,这
时点击按钮运行程序。程序示例1-2
第一个Java
程序:输出字符串到显示器上。程序段:(HelloJava.java)publicclassHelloJava
{public
static
void
main(String[]args){System.out.println("HelloJava!");}}General
OutputHello
Java!Process
completed.-Configuration:<Default>--程序结果:上面的结构可以改造为函数调用的方式,这将是我们前几章用的比较多的结构,由于main函数是直接调用fun函数,
fun
函
数需
要
使
用static
修
饰
。Systemoutprintln("Hello
Java!");}public
staticvoidmain(String[]args){funO:..
…}}publicclass
HelloJava{pubic
static
void
fin0{.------…
自定义函数-函数调用
1.7
Java编程规范1.7.1初识Java
编程规范Java编程规范或者说编程风格,是指Java
语言经历了二
十多年的发展之后,程序员们对于如何写出规范的程序已经有了一些共同的认识。程序示例1-3Java编程风格示例。程序段(JavaStyleTest1.java)publicstaticintfin(int[]a){intm=a[0];for(inti=1;i<alength;i++)if(m<a[i])m=a[1];retumm;}程序段(JavaStyleTest2.java)publicstaticintgetMaxFromAray(int[]a){//
对一个整数数组求最大值int
i;intn=alength;int
max=a[0];//遍历int数组//如果a[]
比max大,就把a[i]赋值给max//返回maxfor(i=1;i<n;i++){if(max<a[1]){max=a[i];
}}retum
max;}从上述两个程序的差别可以看出Java
编程规范的优点:(1)好的编码规范可以改善软件的可读性,让开发人员
更快更好地理解新的代码。(2)好的编码规范可以减少软件代码的维护成本。(3)好的编码规范可以有效提高团队开发的合作效率。(4)规范性编码可以让开发人员养成良好的编码习惯,
思维更加严谨。上述两个程序运行后的结果一样,但是哪个可读性强呢?1.7.2
Java编程规范归纳1
.命名规范语言的各种元素命名应该正确并且具有一定含义,如对
类、变量、函数名等的命名,应该使用完整的英文单词,要
能望文知意,如上述程序的getMaxFromArray函数的命名就
比fun函数的命名有意义。2.驼峰式命名规则变量名、函数名、参数名等宜以lowerCamelCase
风格编写:首字母小写,之后每个单词首字母大写。3.正确的代码缩进格式一个排版良好的程序必定有正确的缩进形式,而代码的
正确缩进能有效增强程序的可读性,并且还能有效避免逻辑
错误。应使用Tab
键进行代码缩进,而不要使用空格键,且
缩进必须要有正确的层次,如下面的程序段:程序示例
正确的缩进形式。public
static
int
getMaxFromAray(int[]a){对
一个整数数组求最大值int
i;int
n=a.length;int
max=a[0];for(i=1;i<n;i++){
/
int
数组if(max<a[i]){//如果a[i
比max
大,就把a[i]
赋值给maxmax=a[i];}}retun
max;//返回max1
2
3
4该程序共有4个缩进层次:(1)getMaxFromArray
函数:该函数的函数体在一对“{}”之间,左花括号“{”写在函数头部之后,右花括号
“}”对齐函数头部第一个字符,该函数体内的所有语句缩
进一个层次。(2)for
循环语句:for
语句的一对“{}”之间是循环体语
句,所以循环体里的所有语句缩进一个层次。(3)if
分支语句:if
语句作为for
循环体内部语句,所以
缩进一个层次。(4)"max=a[i];"语句:该语句是if的分支语句,如果
条件成立,执行分支语句;如果条件不成立,该语句不被执
行。4.进行适当的程序注释程序的注释能帮助阅读程序的人更快理解程序的含义。
注释包括对类、函数、变量、算法、代码等的注释。Java的
注释形式主要有以下几种:(1)块注释,以“/*”开头,以“*/”结束,在“/*”和
“*/”之间的代码都是注释代码,为多行注释,注释内容为
绿色显示。(2)行注释,以“//”开头。例如:int
n=a.length;
//n表示a
数组的长度for(i=1;i<n;i++){//
从第二个元素开始遍历int数组(3)文档注释,以“/**”开头,以“*/”结束,
一般一
个类或接口对应一个文档注释。本章小结1.Java
程序设计语言于1995年诞生,已经发展了20多
年,是目前最为流行的面向对象编程语言之一,课程地位和
市场地位都很重要,具有很高的学习价值。2.Java
环境搭建主要有以下几个步骤:(1)下载并安装JDK(Java
Development
Kit)软件;(2)设置环境变量;(3)安装集成开发环境软件,本书使用的是JCreator。3.Java
程序的新建,新建一个Java类文件,该文件中有一个与文件相同的类,而将该类中的main函数作为运行该文件入口函数,在该函数中编写Java语句。4.Java
程序的运行,首先要将源文件(.java文件)通过编译器编译为与平台无关的字节码文件(.class文件),然后通过
解释器来解释执行字节码文件。5
.良
好
的Java
编程风格能够增加程序的可读性,有利于程序的维护。编程风格主要包括以下几点:(1)有意义的命名;(2)驼峰式命名规则;(3)正确的代码缩进形式;(4)适当的程序注释等。第二章
Java语言基础2.1Java标识符与关键字2.2Java数据类型2.3Java运算符2.4Java数据类型转换2.5Java的标准输入/输出语句本章小结BACK2.1
Java标识符与关键字2.1.1Java标识符标识符即在程序中给类、函数、变量等取的名字,它是
能被编译器识别而在程序中不会冲突的名字。标识符的定义
需要遵守以下规则:(1)标识符是由字母、“_"、“$”和数字组成的。(2)标识符以字母、“_”、“$”开头。(3)标识符不能与关键字同名。(4)标识符区分大小写,如student
和Student
是不同的标
识
符
。2.1.2
Java关键字关键字即Java
语言本身提供的一种特殊的标识符,又称
Java保留字,是被Java
已经使用了的名字,在编程时不能使
用这些名字。Java语言的关键字有50个,如表2-1所示。abstractassertbooleanbreakbytecasecatchcharclassconstcortinuedefaultdodoubleelseenumextendsfinalfinallyfloatforgotoifimplementsimportinstanceofintinterfacelongnativenewpackageprivateprotectedpublicretumstrictfpshortstaticsuperswitchsynchronizedthisthrowthrowstransienttryvoidvolatilewhile表2-1
Java语言的关键字2.2
Java数据类型Java基本数据类型源于C语言,与C语言有相同之处,
同时也有很多差别。Java
共有八种基本数据类型,如表2-2
所
示
。数据类型类型名类
型
描
述byte字节型分配1个字节存储整数short短整型分配2个字节存储整数int基本整型分配4个字节存储整数long长整型分配8个字节存储整数char字符型分配2个字节保存一个字符boolean布尔型保存逻辑真true、逻辑假falsefloat单精度小数保留8位有效数字的小数,分配4个字节double双精度小数保留16位有效数字的小数,分配8个字节表2-2
Java基本数据类型2.2.1
整数类型★与C
语言的比较:(1)Java的整数类型有四种,即byte、short、int、long,
各类型在内存中分别占1、2、4、8个字节;C语言只有short、
int和long三种。(2)Java的各种整数类型均可保存正整数、负整数和0。不同于C
语言有unsigned的无符号的整数类型,Java
的整数都是有正、负数的,在Java中不能写成“unsigned
int
a=5;”
的形式
。整数类型变量定义与赋值:程序示例2-
1
整数数据类型的变量定义与赋值。程序段(BasicTypel.java)byte
a=28,b=-34;short
c=1444,d=-454;int
x=-1,y=1,z=0;long
m=123L,n=-123456789L…
long
型常量整数后面加工或1int
al=123,a2=0173,a3=0x7B;long
a4=0X7BL;println("al="+al);println("a2="+a2);println("a3="+a3);println("a4="+a4);SystemoutSystemout
System
outSystemoutGeneral
Output--Configuration:al
=123a2
=123a3
=123a4
=123Process
Completed.程序结果:2.2.2字符类型★与C语言的比较:(1)C
语言的char
类型,占1字节,采用ASCII
编码方式,
存放的字符个数为256个,不能存放中文字符;而Java的char
类型,占2字节,采用的是Unicode编码,兼容ASCII
码,并
可以保存中文字符集。(2)C
语言的一个转义字符如'\xhh',其单引号中以“\x”
开头,后面接1~2位的十六进制数,而在Java中则不可用C语言的这种形式“char
c='\x61';",应改成“char
c5='\u0061';"的形式,以“\u"开头,后面接1~4位的十六进
制
数
。程序示例2
-
2
字符类型数据的定义与赋值。程序段(BasicType2.java)charcl=国
;char
c2='a';charc3=97:十进制数,表示字符的ASCII
码,不建议这样写char
c4=\141
…char
c5="u0061:.//char
c6='x61;System
out.println("c1="+c1);
System
out
println("c2="+c2);
SystemoutprintIn("c3="+c3);三位的八进制数表示的字符四位的十六进制数表示的字符
//不兼容C
语言这样的写法Systemout.println("c4="+c4);Systemout.println("c5="+c5);..General
Output-Configuration:<Default>c1=
国c2
=ac3=ac4
=ac5=aProcess
completed.程序结果:转义字符意
义ASCII码值(十进制)\b退格(BS),将当前位置移到前一列008\f换页(FF),将当前位置移到下页开头012n换行(LF),将当前位置移到下一行开头010\r回车(CR),将当前位置移到本行开头013\t水平制表(HT)(跳到下一个Tab位置)009\v垂直制表(VT)011IN代表一个反斜线字符()092代表一个单引号(撇号)字符039\"代表一个双引号字符03410空字符(NULL)000ddd1到3位八进制数所代表的任意字符1~3位八进制uhhhh1到6位十六进制所代表的任意字符1~4位十六进制Java中的转义字符基本和C
语言的相同,如表2-3所示。注:区分斜杠(/)与反斜杠(\),此处不可互换。表2-3Java的转义字符2.2.3小数类型小数类型(浮点类型)分为float单精度和double双精度两
种。float类型保留8位有效数字的小数,在内存中分配4个字
节
;double
类型保留16位有效数字的小数,在内存中分配8
个字节。Java
和C
语言一样都是近似地表示小数,精度越高
越接近小数字面值,所以一般对于小数处理大多使用double
类
型
。程序示例2
-
3
小数类型数据的定义、赋值与使用。程序段(BasicType3.java)float
fl=3.1415f;float
f2=-1.4567e2f.…科学计数法:-1.4567×10的2次方Systemout.println("f1="+fl);Systemout.println("f2="+f2);float
f3=1.2fdouble
d1=1.2;if(f3>d1)
条件判断,分支语句Systemoutprintln("f3="+f3);elseSystemout
println("d1="+d1);General
Output-Configuration:f1
=3.1415f2
=-145.67f3
=1.2Process
COmpleted.程序结果:2.2.4布尔类型★与C语言的比较:(1)C
语言中没有布尔类型变量,使用0和非0来代表逻
辑假和逻辑真,所以任何合法的表达式都可以作为条件来使
用。比如if(a+b)是合法的:如果a+b的值等于0,则条件为
假,如果a+b的值为非0,则条件为真。(2)Java
可以定义布尔变量来保存true、false,即"boolean
b=true;",并且不允许使用数字来代表逻辑真或
逻辑假,如if(a+b)
就是非法的,必须写成
if(a+b!=0),作为if的条件只能是boolean变量、条件表达式或逻辑表达式。
2.2.5引用变量Java的变量主要分为两类:基本数据类型变量和引用变
量。基本数据类型在上面几节已经做了说明,Java
定义的变
量除了基本数据类型之外,其它的都可以称为引用变量,例
如Java预定义类变量、数组类型变量、用户自定义类变量等
等。例如:基本数据类型变量如
“int
a;"“charc;"“double
d;"“boolean
b;”等,引用变量如
“Strings;"“int[]a;"“Students;"“Animalan;"等
。★与C
语言的比较:(1)C
语言中有个很重要的概念——指针,由指针带来
的各种运算和操作使得C
语言的程序灵活,效率高,但同时
也会让程序变得复杂,可读性降低,容易出错。(2)Java中没有了指针这个概念,舍弃了指针的相关运
算和操作,程序变得简洁易读,安全可靠。Java的引用变量源于C
语言的指针变量,同样是保存内存地址,都是通过地址完成对内存数据的操作,但是二者之
间有
一
定区别:(1)变量长度:C
语言的指针变量用于保存内存地址编
号,长度为int的4个字节;Java
引用变量也用于保存内存地
址,但Java封装了地址,可以转换成字符串查看,不必考虑
其长度。(2)初始值:Java
引用变量的初始值为Java的关键字null,
表示该指针变量为空;C
语言的指针变量是int,
如不初始化
指针,那它的值就是不固定的,没有初始化就进行指针操作
是很危险的。(3)计算:Java引用变量不可以进行内存地址的计算,使用更加安全可靠;C
语言的指针变量是int,可以计算,如
++、--以及地址变化等,使用较为灵活,但也容易出问题。(4)内存溢出:Java
引用变量的使用权限比较小,不容易产生内存溢出;C语言的指针变量是容易产生内存溢出的,所以程序员要小心使用,及时回收。2.3
Java运算符Java的运算符来源于C
语言,和C
语言的运算符大体相
同,略有区别。Java
的运算符如表2-4所示。优先级运算符运算符名称结合性100括号,下标运算,成员运算2-自增,自减自右向左3~!按位取反,逻辑非,负号自右向左4(类型)强制类型转换自右向左5*/%算术乘、除、取余自左向右6+算术加、减自左向右7<<>>>>>移位运算符自左向右8<=>>=
instanceof关系运算,判断实例类型自左向右9!=
=关系运算,相等性判断自左向右10&按位与自左向右11A按位异或自左向右12I按位或自左向右13&&逻辑与自左向右14ll逻辑或自左向右15?:条件运算自左向右16=
+
=
二
*
=
等赋值运算自左向右表2-4
Java运算符★与C
语言的比较:(1)Java
取消了C
语言的sizeof()
运算符。sizeof()用于求括
号中的内容在内存中所占字节数。(2)Java
新增了一个instanceof
的运算,
一般形式为
对象名instanceof
类名;用以判断左边的对象是否是右边类的实例,运算返回true或
false。(3)Java的关系运算和逻辑运算的结果为boolean,即逻
辑真或逻辑假,而C语言的关系运算或逻辑运算得到的结果
是用整数1和0代表真和假。"-
-1--」,-程序示例2
-
4
instanceof
运算符。
程序段(Operatorl.java)booleanb="abc"instanceof
String;Systemout.printIn(b);2.4
Java数据类型转换2.4.1
自动类型转换Java中的自动类型转换与C
语言中的类似,系统支持某
个基本数据类型直接赋值给另外一种数据类型,即称为自动
类型转换。Java
的自动类型转换按照图2-1所示,当有两种不同数据类型运算时,左边的数据类型将会自动向右边的数
据类型转换,然后进行运算。int
long自动类型转换方向图2-1基本数据类型自动转换doublebyteshortfloatchar程序示例2-5
基本类型数据的自动类型转换。程
序
段(TypeCast1.java)char
c='a';int
a=10;double
d=1.5;booleanb=true;Systemoutprintln(c+a);Systemout
println(a+d);//
System
out
println(a+b);
//运算类型不一致General
OutputConfiguration:10711.5Process
completed.程序结果:2.4.2强制类型转换可以使用强制类型转换运算符即(类型名)来强制进行类
型转换,以便进行同类型数据运算,但是要注意Java
对类型
要求较为严格,进行强制类型转换时一定要考虑是否可以转
换,一旦转换失败就会导致程序异常终止。Systemoutprintln("b1="+b1):…int
a2=477byte
b2=(byte)a2;Systemout.println("b2="±b2):double
a3=97.153;intb3=(int)a3;charc=(char)a3;Systemout.printIn("b3="+b3);Systemout.printIn("c="+c);程序示例2-6
对基本类型数据进行强制类型转换。程序段(TypeCast2.java)二
进
制
:01011101二进制:111011101二进制:11011101...
二进制:101011101byte
b1=(byte)a1;al=349.…intGeneral
Output-Configuration:b1=93b2=-35b3=97c=aProcess
completed.程序结果:程序分析:(1)在语句"intal=349;"中
,a1
是int
类型,在内存中占4个字节32bit,二进制表示形式为101011101,左边补0补
足32bit;将a1强制类型转换为byte类型赋值给b1,b1
在内存
中只占1个字节8bit,所以a1左边的24bit被丢掉了,剩下后
面8个bit(01011101),转换为十进制为93,如图2-2所示。(2)在语句
“int
a2=477;”中,二进制形式为(111011101)2,进行强制类型转换(byteb2=(byte)a2;),取
低位的8bit赋值给b2,即(11011101)2,最高位为1,所以b2为
负数,按照补码的规则,11011101减1取反得到00100011→-
35,如图2-2所示。(3)a3
是小数97.
153,(int)a3
强制转换为整数则丢掉小数部分得到97;(char)a3强制转换为char类型,先丢掉小数部分得到int的97,再强制转换为char,
得到字符'a'。0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
11
0
10
1
0
1
11
0
1(349)10
→
(101011101)₂被截断为8位
→
(01011101)₂
→
(93)108
bit000
000000000000000000001
110111011
10
1
1
10
1(477)10→
(111011101)2被截断为8位→
(11011101)₂
→
(-35)108
bit图2-2基本数据类型强制转换2.5
Java的标准输入/输出语句2.5.1
Java标准输出语句Java标准输出指的是将程序中的数据输出到显示器。在
JCreator
IDE中进行操作指的是将数据输出到JCreator软件的
控制台(console),该输出操作使用函数System.out.println()来
完
成
。程序示例2-7
输出各种基本类型数据到控制台。程序段(Output1.java)short
a=47;int
b=14;floatc=3.14f,double
d=-14.154;chare='中';booleanf=true;System
out
println(a);System
out
println(b);Systemout
println(a+b);Systemout
println(c);System
out
println(d);Systemout
println(e);System
outprintln(f);System
outprintln("end!");General
Output--Configuration:-4714-333.14-14.154中trueend!Process
completed.程序结果:int
a=11;int
b=22;double
c=3.1415;booleand=true;chare=*";System
out
println("a="+a+",b="+b);
Systemout.println("a+b="+a+b);Systemout
println("a+b="+(a+b));Systemout.println("output:"+a+b+c+d+e);程
序
示
例
2
-
8
System.out.printlnO函
数
的
字
符
串
拼
接
运
算
。程
序
段(Output2.java)
适当位置加括号,保证运算顺序Configuration:a=11,b=22a
+b
=1122a+b=33output:11223.1415true*Process
completed.GeneralOutput程
序结果:2.5.2Java标准输入语句Java标准输入指的是从键盘将数据输入到程序中。Java
中用System.out
来表示标准输出设备,如显示器;用System.in
来表示标准输入设备,如键盘。可以使用Scanner类完成输入操作,使用该类对象联合System.in能够较为方便
地完成从键盘输入数据到程序中。首先,我们要创建一个Scanner的对象sc:Scanner
sc=new
Scanner(System.in);之后,可以通过sc的相关函数完成从键盘输入各类数据
的
操
作
,Scanner
类的常用方法如表2-5所示。使用这些方法
从键盘输入数据的时候,要注意数据类型与方法的匹配,类
型要一致,否则会有异常发生。方
法描
述方法描
述nextByteO输入一个byte类型整数nextFloat0输入一个float类型小数nextShort0输入一个short类型整数nextDoubleO输入一个double类型小数nextInt0输入一个int类型整数next(输入字符串,以空格结束nextLong0输入一个long类型整数nextLineO输入字符串,以回车结束nextBoolean0输入true或false逻辑值表2-5Scanner类常用方法程序示例2
-
9
从键盘输入各类数据给程序相应的变量,并显示到控制台。程序段(Iutput1.java)importjava.util.Scarmer;public
class
Irput1{public
static
void
main(String[]args){int
a;double
b;booleanc;char
d;Stringe;Scarmersc=new
Scarmer(Systemin):使用标准输入设备生成Scarmer的对象a=scnextInt0:
…
…
使
用Scanner
对象的成员方法完成键盘输入操作b=scnextDoubleO;c=scnextBoolean0;d=scnext0.charAt(Q):…
.…
从
键盘输入字符类型数据e=sc
nextLineQ:
从键盘输入一行字符串System
out
println("a="+a);Systemout.println("b="+b);Systemout.println("c="+c);Systemout.println("d="+d);Systemout.println("e="+e);}General
Output-213.1415true*abcdefa=-21b=3.1415c=trued=*e=abcdefProcess
completed.Configuration:程序结果:★与C
语言的比较:(1)C
语言的基本程序组织单位是函数,将不同函数分
类放在各个头文件中,如数学函数math.h、字符串处理函数
string.h
、常用函数stdio.h等,然后使用包含语句,如#include<string.h>包含了string.h头文件,之后的程序就可以
使用该文件里的字符串处理函数。(2)Java
基本的程序组织单位是类,在一个类中有多个
成员函数,将多个类文件分类放在不同的包(文件夹)中,通过导包语句
“import
java.util.Scanner;"或者“importjava.util.*;"就可以使用包中的类和类里的成员函数。程
序
示
例
2
-
1
0
从
键
盘
输
入
一
个
圆
柱
体
的
半
径
和
高
,
求
其
面
积
和
体
积
。程序段(Iutput2
.
java)importjava.util*;publicclassIrput2{publicstatic
void
main(Stringl
args){double
pi=3.1415926;Scannersc=newScanner(Systemin);double
rh;Systemout
println("请输入圆柱体的半径(cm):");r=sc
nextDoubleO;Systemout
printn("请输入圆柱体的高(cm):");h=scnextDoubleO;S
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年光伏电站运维管理培训试题实战演练指南
- 2026年妇联文员知识考试试题及答案
- 母猪产后护理的标准化流程
- 2026体育旅游公司面试题及答案
- 2026铁路转运面试题及答案
- 个人自查自纠思想报告(3篇)
- 团课思想报告2026(3篇)
- 2026托儿所面试题库及答案
- 2026网工应聘面试题及答案
- 2026网鱼绘画面试题目及答案
- 贵州省贵阳市2024-2025学年八年级下学期期末考试数学试卷(含答案)
- 无人机航拍测绘成果保密协议
- 工程钢筋工管理制度
- 重大火灾隐患判定方法安全试题及答案
- 2024江苏食品药品职业技术学院招聘笔试真题附答案详解
- 新浙教版数学八年级上册讲义(共15讲)
- 第11课 依法从事民事活动
- 沈阳建筑大学城市建设学院教学楼施工组织设计
- 酒店住宿服务合同三篇
- DB11∕T 1774-2020 建筑新能源应用设计规范
- HG+20231-2014化学工业建设项目试车规范
评论
0/150
提交评论