




已阅读5页,还剩49页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
授课:何其锟qikun_heqikun_he,CoreJava,课程代码:CY4201.0版,授课:何其锟qikun_heqikun_he,第1单元,Java概述,授课:何其锟qikun_he,学习目标,了解Java的历史Java概览学习Java面向对象编程技术的基本原理讨论Java的特色讨论Java与C/C+的不同了解Java平台讨论Java平台的独立性了解Java对万维网的影响理解Java程序的基本结构,授课:何其锟qikun_he,Java的历史,在1990年12月,SunMicrosystems的PatrickNaughton、JamesGosling和MikeSheridan组成一个小组从事称为“绿色项目”的项目该小组于1991年4月决定使用嵌入式系统软件生成智能消费类设备,这种消费类设备可用作该项目的传递平台JamesGosling是“Oak”编译器的开发者,后来其他小组成员继该编译器之后开发了解释程序,这个解释程序后来成为Java语言它在1995年更名为Java(今天SUN公司已经被甲骨文(Oracle)公司收购),授课:何其锟qikun_he,什么是Java?,按Sun关于Java的白皮书的话说,“Java是一种简单的、面向对象的、分布式的、解释的、健壮的、安全的、结构中立的、可移植的、高性能的、多线程的及动态的语言”Java不仅是一种编程语言,而且也是一种平台,在该平台上可以开发应用程序并在因特网上或在企业内部网环境中运行Java的大多数基本特征都从C和C+派生而来Java编程语言用于开发两类程序应用程序Applet,授课:何其锟qikun_he,什么是Java?续,应用程序是单独运行的程序,可以在计算机、该计算机的操作系统中运行Applet是小型Java程序,它可以使用Applet标志嵌入HTML页面中Applet设计成在因特网上传输并由Java兼容的Web浏览器执行Applet是一种智能程序,它响应用户输入并动态更改Java开发工具箱(JDK)是开发者编译、调试和运行Java程序以及Applet所需的工具,授课:何其锟qikun_he,Java面向对象编程技术的基本原理,Java语言通过定义面向对象的关键特征:封装(encapsulation)、继承(inheritance)和多态性(polymorphism)来实现面向对象模型封装继承多态性封装是面向对象设计的关键它使我们能够将对象中的代码和数据进行分组,其中对象作为封装器它保护代码和数据不被其它代码恶意访问对象提供一个接口,外部代码可以使用该接口访问封装的代码,授课:何其锟qikun_he,Java面向对象编程技术的基本原理续,授课:何其锟qikun_he,Java面向对象编程技术的基本原理续,当希望已创建的新类使用现有类中已有的功能时使用继承机制现有类称为超类,而我们创建的新类称为子类,授课:何其锟qikun_he,Java面向对象编程技术的基本原理续,多态性使接口可用于一般的类操作实际情况决定特定的操作,交通工具,2轮车,4轮车,自行车,踏板车,机器脚踏车,小汽车,公共汽车,卡车,授课:何其锟qikun_he,类和对象,类用作定义对象的模板用于操作这些变量的变量名、变量类型和方法在类中进行定义我们可以比较对象与变量以及变量类型与类可以创建一个类的多个对象,就像可以在程序中声明相同类型的多个变量一样,授课:何其锟qikun_he,Java特色,简单安全可移植面向对象健壮多线程结构中立解释性高性能分布式动态,授课:何其锟qikun_he,Java与C/C+,Java被视为比C+更纯的面向对象语言,因为Java程序必须使用对象在C+中,面向对象是可选的没有全局变量或函数Java被设计成源代码和编译后的二进制形式的代码都是跨平台的这是可能的,因为Java将其源代码编译成中间和平台独立的字节码在程序执行时,这种字节码是使用特定于平台的解释程序,即Java虚拟机(JVM)进行解释的考虑其内存管理技术,Java是健壮的Java自动管理内存分配和取消分配,授课:何其锟qikun_he,Java与C/C+续,Java支持多线程编程技术,它允许您编写同时执行许多事情的程序Java不支持运算符重载和自动类型转换Java不支持多重继承,至少不像C+中的那样直接支持Java应用程序可以跨网络经由URL打开并访问对象,程序员在访问本地文件系统时也利用这种便利Java允许执行下标检查在Java中,不可能通过强制类型转换将任意整数转换成指针,授课:何其锟qikun_he,Java平台,Java平台与其它平台有很大不同它只是一个软件平台,并在其它基于硬件的平台上运行它与其它平台不同,其它平台基本上都是硬件和操作系统的组合,这与该平台不同Java平台主要有两个组件Java虚拟机或JVMJava应用程序编程接口或API,授课:何其锟qikun_he,Java虚拟机,JVM被称为“虚拟”的。这是因为它是用说明定义的抽象计算机我们需要集中实现运行Java程序的计算机的此抽象说明要运行Java程序,需要集中实现抽象说明抽象说明本质上是一个概念集中实现存在于许多平台上,且来自许多供应商一个Java应用程序在一个运行时实例中运行每个Java应用程序都在Java虚拟机抽象说明的某些具体实现的运行时实例内部运行,授课:何其锟qikun_he,Java虚拟机的生命期,Java虚拟机运行时实例的目的是运行一个Java应用程序运行时实例随Java应用程序的启动而诞生,随Java应用程序的结束而死亡JVM通过调用某些初始类的main()方法开始执行其唯一的应用程序main()方法必须是公有静态方法它必须返回void,并接受一个String数组形式的参数必须向Java虚拟机提供具有main()方法的初始类的名称,该方法将以机器无关的方式启动整个应用程序,授课:何其锟qikun_he,Java虚拟机的生命续,该应用程序以其初始类的main()方法启动,该方法接着调用其它线程Java虚拟机中有两类线程守护程序非守护程序守护程序线程是由虚拟机自已使用的线程,例如,执行垃圾回收的线程Java应用程序可以将其自己创建的任何线程呈现为守护程序线程另一方面,非守护线程是应用程序的初始线程,它从main()启动,授课:何其锟qikun_he,JavaAPI,API代表应用程序编程接口Java提供以下API基本语言相关的类抽象的窗口工具箱类文本相关的类Applet相关的类用于联网的类用于输入输出的类基本的实用程序数据库连接类用于远程方法调用的类安全性相关的类,授课:何其锟qikun_he,Java的平台独立性,Java使创建不用更改就可以运行在多种平台上的二进制可执行文件成为可能Java源代码经历两个步骤的过程Java源程序存储在扩展名为.java的文件中,就像我们将所有C源代码存储在扩展名为.c的文件中一样然后,.java文件作为命令行参数传递给javac(Java编译器),它将ASCII文本转换成字节码编译器创建扩展名为.class的文件.class文件被传递给Java解释程序,它解释该字节码这些字节码可以在Java虚拟机(字节码解释程序)上执行字节码是与机器无关的,因此可以在任何机器上运行,授课:何其锟qikun_he,一个简单的Java程序,publicclassSimpleProgrampublicstaticvoidmain(Stringargs)System.out.println(“AJavaProgram”);Java确实是面向对象的编程语言,因为使用Java开发的所有应用程序都将具有类上面的程序打印一个字符串“ASimpleJavaProgram”。所有这些代码都封装在类中Java应用程序必须具有类似于C+应用程序main函数的main方法,该main方法是要执行的第一个例程,授课:何其锟qikun_he,Java中的常量,Java中的常量整型浮点型字符型布尔型字符型,授课:何其锟qikun_he,小结,学习了Java的历史学习了面向对象编程语言的基本原理学习了Java程序的基本结构学习了编写简单的Java程序讨论了Java的特色比较了Java和C/C+了解了Java平台讨论了Java的平台独立性讨论了Java对万维网的影响讨论了Java程序的基本结构,授课:何其锟qikun_heqikun_he,第2单元,运算符、表达式和控制流,授课:何其锟qikun_he,学习目标,学习Java的基本元素:数据类型和变量了解Java中不同类型的运算符了解运算符的优先级理解类型转换讨论Java中的控制结构,授课:何其锟qikun_he,简单数据类型和声明,整型Java支持整型变量类型的范围这些变量类型的区别在于它们需要的位数和表示的整数大小不同浮点型Java支持两种类型的浮点数,即浮点型和双精度型双精度型变量使用浮点型变量所使用位数的两倍来存储给定的值它可以比浮点型变量容纳更精确且范围更广的数字字符型在Java中,字符占用16位并以Unicode进行编码而实现布尔型Java提供可用于容纳逻辑运算结果的变量类型,授课:何其锟qikun_he,标识符,Java允许我们为将在程序中使用的各种元素指定名称(标识符)在Java中使用的这些标识符遵守标准规则它们以字母开始,并且只能包含字母、数字、下划线(_)字符以及美元($)字符Java标识符没有长度限制,且标识符名称中不得出现空格Java标识符是区分大小写的,并支持大写和小写字符Java使用某些单词作为编程关键字,这些单词不能用作标识符(例如,while、for、class等等),授课:何其锟qikun_he,命名约定,出于可读性考虑,大多数Java程序员都使用简单的命名约定来命名程序中使用的不同变量通常,变量名称或方法名中的第一个字母通常是小写字母,而类名中的第一个字母通常是大写字母通常,标识是由单词组合构成的(例如,perimeterOfRectangle)在这种情况下,如果标识符用作变量或方法的名称,则第一个单词以小写字母开始,后续单词以大写字母开始如果标识符用作类名,则标识符部分的所有单词都以大写字母开始,授课:何其锟qikun_he,声明,在Java中,声明变量的方法是先给出类型名称,然后给出该类型的变量名列表变量名使用逗号分隔所有Java语句都使用分号终止变量可以在Java声明语句中进行初始化,授课:何其锟qikun_he,初始化,正如在C+中发生的那样,Java也允许在程序代码的任何地方声明变量但与C+中不同,Java编译器不允许我们在变量初始化之前使用该变量如果在C+中发生这种情况,则生成一条警告消息,而在Java中则生成一个编译错误这说明了Java对确保可移植性所作的尝试,因为一些平台允许使用未初始化的变量,而一些平台则不允许,授课:何其锟qikun_he,作用域和程序块,与在C和C+中相似,Java也使用“”和“”字符标记语句块的开始和结束这些块对于将一组条件语句、循环语句等等组成块是很有用的在块中声明的变量只能在该块中或嵌套在该块中的任何块中使用一旦控制离开声明变量的块,则该变量不再可用,授课:何其锟qikun_he,Java中的运算符,运算符用于执行一个、两个或三个操作数的一些特殊运算只需要一个操作数就能完成运算的运算符称为一元运算符“-”是用于使操作数的值减1的一元运算符需要两个操作数才能完成运算的运算符称为二元运算符“=”是一个用于将右侧操作数的值赋予左侧操作数的二元运算符二元运算符使用中缀表示法,其中运算符位于两个操作数之间(例如,a=b+c)完成运算之后,运算符返回一个值,返回值的类型取决于操作数的类型例如,当我们加或减两个整型数时,得到的结果也是整型,授课:何其锟qikun_he,Java中的运算符分类,算术运算符关系和条件运算符位运算符赋值运算符,授课:何其锟qikun_he,算术运算符,运算符用法描述+op1+op2使op1和op2相加-op1-op2从op1减去op2*op1*op2将op1和op2相乘/op1/op2用op2去除op1%op1%op2计算op2除op1的余数,授课:何其锟qikun_he,算术运算符续,“+”号是Java的重载运算符之一它不仅用于加运算,而且还用于字符串串联,即将字符串连接在一起Stringone=Thisisthefirststring-;Stringtwo=andthisisthesecondstring.;如果执行以下语句:System.out.println(one+two);则结果输出将是:Thisisthefirststring-andthisisthesecondstring.也可以将非字符串与字符串组合以输出数值,如下所示:Stringone=Thisisastring:;intnum=1234;,授课:何其锟qikun_he,关系和条件运算符,运算符用法返回真的条件opaopbopa大于opb=opa=opbopa大于或等于opbopaopbopa小于opb=opbopa=opaopb=opa=opbopa=opaopb,授课:何其锟qikun_he,运算符的优先级,()+-!*/%+-=int-long-float-double此处使用的-符号等价于使用单词“到”例如,byte变量可以赋给short变量,而short变量也可以赋给int变量,依此类推,授课:何其锟qikun_he,类型转换续,显式转换我们无法自动将long转换成int,因为第一种类型需要的存储区多于第二种类型,转换的结果将导致信息的丢失要强制进行这种转换,必须执行显式转换(假设将长整型转换成标准整型)这是使用名为类型强制转换的过程完成的myByte=(byte)myShort以上代码告诉Java编译器当处理该语句时,myShort的类型临时更改为类型byte因此,强制类型转换只存在于赋值过程中,授课:何其锟qikun_he,控制结构,块用于按顺序执行一组语句if语句用于决定要执行许多组语句中的哪一些for循环用于重复执行一组语句Breaks用于终止循环的执行,授课:何其锟qikun_he,If语句,Java支持三类if语句简单ifif/else级联if或级联if/else下面是所有if语句的一般形式if(expression)statement;elsestatement;,授课:何其锟qikun_he,If语句续,if(test1)statement1elseif(test2)statement2elseif(test3)statement3else.elseif(testN)statementN,授课:何其锟qikun_he,For循环,for(initialization-expression;condition-expression;iteration-expression)/循环体当循环第一次开始时,执行循环的初始化表达式这是一个设置循环控制变量的值的表达式,循环控制变量是控制循环的计数器该表达式只执行一次接着判断条件表达式它必须是布尔表达式它通常测试循环控制变量是否是目标值如果该表达式为真,则执行循环体如果为假,则终止循环接下来执行循环的迭代表达式它通常是使循环控制变量加1或减1的表达式然后迭代循环,每次循环都首先判断条件表达式,然后执行循环体,然后再执行条件表达式,授课:何其锟qikun_he,While循环,while(condition)/循环体while循环是可在程序中使用的循环类型之一,它一直运行,直到其控制表达式判断为假这种情况中使用的控制表达式类似于if语句中使用的表达式,也返回布尔值,授课:何其锟qikun_he,Do-While循环,do/循环体while(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论