Java全部课件.ppt

上传人:豆**** 文档编号:27179879 上传时间:2022-07-22 格式:PPT 页数:354 大小:1.90MB
返回 下载 相关 举报
Java全部课件.ppt_第1页
第1页 / 共354页
Java全部课件.ppt_第2页
第2页 / 共354页
点击查看更多>>
资源描述

《Java全部课件.ppt》由会员分享,可在线阅读,更多相关《Java全部课件.ppt(354页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、The Java Programming Language BasicsGetting StartedGetting StartedIdentifiers,Keywords, and TypesIdentifiers,Keywords, and TypesExpressions andFlow ControlExpressions andFlow ControlArraysArraysObject-Oriented ProgrammingObjectsand ClassesObjectsand ClassesAdvancedLanguage FeaturesAdvancedLanguage F

2、eaturesException HandlingExceptionsExceptionsDeveloping Graphical User lnterfacesBuilding GUIsBuilding GUIsThe AWTEvent ModelThe AWTEvent ModelThe AWTComponent LibraryThe AWTComponent LibraryJava FoundationClassesJava FoundationClassesAppletsIntroductionto Java AppletsIntroductionto Java AppletsMult

3、ithreadingThreadsThreadsCommunicationsStream I/Oand FilesStream I/Oand FilesNetworkingNetworkingJavaJava语言的知识体系结构图语言的知识体系结构图java语法基础Day01-Day03Day01 了解java的产生与发展 理解java语言的特性理解java虚拟机jvm的特性和功能理解字节码和垃圾收集的概念列举出在java平台上实现代码安全的方法知道在java中定义类,包,applets和applications 掌握编码,编译,运行java应用程序的步骤安装,搭建java开发运行环境第一个ja

4、va程序带包的java程序JVM搜索类的顺序和类加载CLASSPATH的应用常用的java命令Java的产生与发展Java的产生Sun公司的Green项目基于c+开发的Oak语言 Mosaic和Netscape到JavaHot浏览器Internet的蓬勃发展推动了java的发展(Applet)Java(爪哇) 名字的由来Java的发展Java的现状纯面向对象的语言平台无关性,一次编写,到处运行适合于基于Internet应用程序开发Java的地位确立IT产业很多大公司购买了java的许可证众多软件开发商已支持java软件产品Intranet是企业信息系统最佳的解决方案,java发挥了不可替代的作

5、用Java的发展与其分支95.5.23 Oak改名为java98.12. java1.2,后来改名为java2陆续出现了java1.3,java1.42004.12 java1.5版本推出 命名为java5.0后来陆续出现java6.0,java7.0Java的产生与发展Java的发展与其分支java在今天已形成了庞大的体系,经过十年发展,已有了3个平台标准三大技术平台都提供了相应的开发工具包(SDK:SoftWare Development Kits)java SE -标准版应用平台java EE-企业级应用平台java ME微型版应用平台:应用在存储,运算很小的受限的平台Java语言的特性

6、什么是java?程序设计语言;开发环境;应用环境;部署环境Java的特性提供更简单的方式写程序无指针,无需做内存管理提供庞大的类库,纯粹面向对象设计支持静态和动态的代码继承和重用提供一个可解释执行的环境支持任何开发平台只写一次,到处使用支持多线程支持动态升级以上特性如何实现Java虚拟机:JVM垃圾收集:Garbage Collection代码安全:Code Security字节码文件:VerifyingJava语言的特性JVM与跨平台性:一次编写,到处运行:不同操作系统,不同数据库,不同的服务器数据类型也可以实现跨平台Java虚拟机的作用程序的开发及运行方式Java的工作方式:先编译后解释C

7、PUJava语言的特性nJava源文件先通过编译生成一个字节码文件bytecoden字节码不与当前OS相关,结构中立的,是二进制文件。任何平台编译生成的字节码都是一样的。n字节码文件不能直接执行,必须需要JVM的支撑才能运行nJVM是sun开发的,字节码的结构也是sun定义的,他们之间有很好的接口nJVM存在的意义实际上就是屏蔽掉底层平台的差异,为上层结构中立的字节码统一运行的环境,而JVM会将字节码转化成相应的底层平台的机器码执行njava解释器功能是用JVM来实现的,java的解释器是在jvm中运行的nJVM的作用:n对下是屏蔽掉了底层平台的差异,对于上层的字节码而言不需要关心它运行在什么

8、平台上,由JVM去把底层平台的差异屏蔽掉n对上为结构中立的字节码提供了统一的运行环境,实现了字节码的跨平台JVMBytecodeJava语言的特性Java的垃圾收集器Java的垃圾收集解除了程序员分配存储器的责任,它提供了一种系统级线程以便跟踪每一存储器的分配情况。在Java虚拟机的空闲周期,垃圾收集线程检查并释放那些可被释放的存储器。内存泄漏垃圾收集线程垃圾收集调用的方法:java.lang.System.gc()/java.lang.Runtime.gc()Java代码的安全性Java语言的特性字节码的作用字节码的结构是JVM特定指定的字节码不会破坏,篡改系统禁止运行时堆栈溢出 防止蠕虫病

9、毒袭击参数类型正确类型转换正确安装,搭建java开发运行环境官方网站下载JDK官方网站:http:/不同系统平台,JDK不一样,选择适合于自己平台的JDKJDK的安装Windows直接安装运行jdk的可执行exe文件Linux系统将JDK文件压缩包解压后放入opt目录,配置初始化文件的环境变量Windows下JDK安装后,会有2个文件夹生成JDK:java开发工具软件包,它包含了java的编译,调试,运行整个环境和包含了整个类库的软件包JRE:java运行环境JDK,JRE和JVM安装,搭建java开发运行环境JDK,JRE和JVMjre是jdk的子集,在一套完整的jdk中就包含了jrejre

10、只负责运行一个编译好的java程序(字节码文件bytecode)jdk它可以去编译,调试,运行整个操作过程都支持在jre内部有一个软件组件jvm就是java虚拟机JDK的结构简介bin目录:java开发调试的命令, exe文件,连接库文件,编译器等等编译一个java文件:javac;运行一个字节码文件:javajre目录:jdk中自带的jresrc压缩文件:放置的是jdk类库的源码文件,按包结构组织的demo::java代码的演示实例文件include:用于编译本地方法的文件docs:html格式的类库文档lib:类库文件Java程序开发环境配置在windows平台:autoexec.bat文

11、件;使用对话框(右击我的电脑属性高级环境变量系统或用户的环境变量)操作Unix平台需要分shell:csh $HOME/.cshrc bsh/ksh $HOME/.profile环境变量:JAVA_HOME:保存jdk的安装目录 windows : set JAVA_HOME=c:programfilesjavajdk1.5.0_09Java程序开发环境配置 csh: setenv JAVA_HOME /opt/jdk1.5.0_09 bsh/ksh: JAVA_HOME=/opt/jdk1.5.0_09CLASSPATH:系统搜索字节码(类文件.class)文件的搜索路径。设置系统在查找字节

12、码文件时,它的搜索路径。 windows: set CLASSPATH=.; %JAVA_HOME%jrelibrt.jar; csh: setenv CLASSPATH .:$JAVA_HOME/jre/lib/rt.jar bsh/ksh: CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jarPATH:设置命令的搜索路径,在执行命令时,操作系统就会在PATH设置的路径去查找命令的可执行文件。 设置path不能覆盖原有的,可以使用特殊符号windows:%PATH%; Linux:$PATH: windows: set PATH=%PATH%;%JAVA_HOME%bi

13、n; csh: setenv PATH $PATH:$JAVA_HOME/bin bsh/ksh: PATH=$PATH:$JAVA_HOME/bin Linux系统使用系统使用bsh/ksh时则需要时则需要export JAVA_HOME CLASSPATH PATH 将环境变量设置为全局的将环境变量设置为全局的编辑,编译,调试,运行一个java程序写第一个java程序:HelloWorld.javapublic class HelloWorldpublic static void main(String args)String str=“Hello World!”; 编辑,编译,调试,运行

14、一个java程序System.out.println(“The String is::”+str);System.out.println(MyAge is: +age);通过这个程序掌握以下概念一个java源文件中可以定义多个类,但最多只能有一个类用public来修饰,而且该public修饰的类名要与java源文件名一样。一个java应用程序应该包含一个主方法,而且主方法的签名是固定不变的。主方法定义在哪个类中并不做固定安排。定义的所有的代码中,只看到类的定义。在类中去封装其他变量或方法。编译HelloWorld.java程序开始运行cmd进入dos,修改当前目录为d:javacodeday0

15、1使用javac HelloWorld.java命令编译编译成功后,到day01程序目录下查看,发现有2个.class文件得出有效结论编译报错则根据错误提示找出错误位置然后修改程序重新编译 举例来演示学习错误提示假如将String的S写为小写 :string str=“HelloWorld!;假如将out写为out:System.otu.println(“The String is: +str);再次编译一下,查看错误提示,必须要会读错误提示分析错误提示,排除错误是基本的能力包的概念,含义和使用运行HelloWorld程序:包含有主方法的程序才可以运行,没有包含主方法的类是不能运行的开始运行c

16、md进入dos;使用cd d:javacodeday01进入程序目录使用 java HelloWorld(包含有主方法的类的类名)来运行使用java Student就会报告错误提示没有主方法要求学员做HelloWorld程序并操作演示几种错误情况和调错带包的java程序包的声明:package day01 package是关键字 day01是包名包的概念和含义包名的命名符合标识符命名规则即可企业项目开发中,包的命名也有企业规范的如:com.shunshi.abs.model.来隔开每一部分,每一部分都是包结构com.shunshi这个是软件公司网址的url,可以区分确认哪个公司开发的软件产品

17、com.sun/com.ibm,这样包名不会产生冲突abs是项目名,model是项目中的模块/子模块名写MySecondJava.java程序使用包结构 package com.shunshi.corejava.day01使用包后,如何编译写MySecondJava.java,使用包声明: package corejava.day01;编译程序:javac d . MySecondJava.javaJVM搜索类的顺序与类加载-d选项的作用: 把编译好的字节码放在你指定的目录下,所以需要指定目录 如果源文件声明了包结构,那么在给定的目录位置下会按照包结构自动创建目录结构,编译好的字节码文件是放在

18、最终的子目录下为什么使用包? 企业项目开发中方便管理不同的类 用包来分门别类地组织不同模块功能的类 使用包的好处:举例:航班机票预定项目JVM搜索类的顺序与类加载使用包结构编译后,如何运行?使用java,注意:java corejava.day01.MySecondJava如何运行?类加载演示错误情况的发生 直接使用 java MySecondJava 则报告找不到这个类的定义的错误提示 为什么找不到?从系统如何去找类来说,与jvm在查找类时的搜索顺序有关系 直接进入包结构目录cd corejavaday01,使用java MySecondJava运行,则报告找不到类的定义同时给出错误原因(找

19、到的类与要运行的类不一致)Java 常用命令 为什么不一致呢?找到的是带包的,运行的是不带包的CLASSPATH的应用深刻理解java技术体系如何使用第三方的java技术常用命令javac 选项 源文件名 编译java 源文件-d 查看javac命令到底有哪些选项,直接使用javac/javac -help命令回车java 选项 类名 参数 运行java程序jdb 选项 类名 参数 进行debug调试的命令javadoc 选项 包名 源文件名 生成jdk的api形式的程序文档在java源文件中允许使用文档形式的注释单行注释 /注释内容多行注释 /*注释内容*/ 多行注释不能嵌套,但可以嵌套单行

20、注释文档注释 /*注释内容*/ 出现在类的定义,方法的定义,属性的定义之前,用来说明类的含义,方法的含义,属性的含义使用javadoc命令给MySecondJava.java生成文档注释在MySecondJava.java中,类前,主方法前写一些文档注释使用javadoc命令将文件MySecondJava.java中的文档注释抽取出来生成程序文档。javadoc d .doc MySecondJava.javaJava 常用命令分析程序文档结构和理解jdk的API文档jar ctxuvfm0Mi jar-file manifest-file -C directory files 创建/展开/更

21、新一个jar文件jar文件:sun公司定义的一种文件格式,与zip格式相同,可以用普通的解压缩工具解开。jar文件压缩的一般是java的字节码文件,按照包结构组织好的.class文件。创建jar文件: 将d:corejavaday01中的1个.class文件打包成一个jar文件jar -cvf first.jar .corejava 不与源文件放在一起 c 代表创建jar文件v 是可视化即可以看见创建过程和创建详细清单 f 代表可在后面指定jar文件名解压生成后jar文件,有corejava和META-INF2个文件夹jar文件有什么作用?将开发的类打包jar文件给客户,客户得到后只需要设置c

22、lasspath后就可以用了开发一个中间件,将中间件的程序打包成jar打包day01.jar(corejavaday01中的.class)给第三个程序MyThirdJava使用。写MyThirdJava.java程序Jar文件和import的使用将day01.jar路径设置给CLASSPATH将day01包下的MySecondJava.class移走将javacodeday01下的MySecondJava.java移走编译运行MyThirdJava来演示自定义jar文件的使用思考问题 找不到MySecondJava,没有给包结构名修改为corejava.day01.MySecondJava m

23、sj=new corejava.day01.MySecondJava(); String的使用不需要rt.jar路径给CLASSPATH,也不需要使用包结构名+类名因为它是lang包下的类 若在MyThirdJava.java中自定义一个String class String则会报错与JVM搜索类的顺序有关,先搜索当前包下的String,它无构造方法 简便引入某包下的类 直接使用包名+类名的形式,程序太烦琐了 在程序的开头使用import 包结构名包结构名.类名类名来引入使用的类 要引入某包下的所有类则 import 包结构名包结构名.*;JDK的常用包 java.lang:JAVA语言包,核

24、心的类和接口,无需导入可直接使用。如String、Math、Integer和Thread。 java.awt/javax.swing/java.awt.event:做java的图形开发使用的包,包含有图形组件,用来构建和管理应用程序的图形用户界面。 java.applet:用来开发java小程序的类和接口,包含了可执行applet特殊行为的类。 java.io:包含了java所有做输入输出的类和接口,包含处理I/O文件的类 :用来做网络开发的类和接口 java.util:java工具包,包含java开发常用的工具类,java的时间日期,java的数据结构,随机数发生等。 知道java的特殊符号

25、 熟悉java的标识符 掌握java的关键字的使用 理解java各数据类型的存储和使用原始数据类型基本数据类型的转换 定义类,对象,成员变量和引用变量类的声明类变量与类成员变量创建类的对象实例和使用默认值描述引用变量与类对象的关系 掌握表达式和运算符的使用Day02Java中的特殊符号 注释单行注释:/多行注释:/*.*/这两种注释只能通过打开源文件来查看,写程序一定要写注释。注释与程序应是2:1多行注释:/*/这个注释可以不打开源文件来查看,java中有一个javadoc工具,它的作用是将源文件中的/*.*/注释单独抽出来放在另一个文件中。例如: javadoc d . Hello.java

26、,执行后,会在当前目录下生成一个doc目录,里面文件就可查看注释了。 其他符号; 一个语句的结束 一个语句块空白字符 空格,tab,回车,换行等Java标识符标识符:程序中的组件名字,包括类名,方法的参数名,变量名,方法名,包名等定义标识符的规则:以以_ ,$,字母开头;字母开头;只含有只含有_,$,字母,数字字母,数字;没有长度限制,不能有空格;没有长度限制,不能有空格;不能使用不能使用java的关键字或保留字的关键字或保留字大小写敏感大小写敏感例如:_abc , $ABC ,2A ,A# ,For,顺时 Java开发的命名习惯开发的命名习惯所有的命名要望文生义,这样才具有良好的可读性Tot

27、al,Sum,ShunshiStudent,类名,接口名:每个单词的首字母大写,其他字母小写 如类MyFirstJava,Player,Teacher属性,方法,,局部变量名:第一个单词全小写,从第二个单词开始以后每个单词首字母大写,其他字母小写 如方法 getName() setDoctorBirthday()常量:每个单词所有字母全部大写,单词之间用_来连接 java中使用final修饰 final int MARK_GREED=22;包名:所有字母全部小写 如package com.shunshi.corejava.day01Java关键字关键字:对Java技术编译器有特殊的含义,可以被

28、编译器识别执行abstract do implements private throw boolean double import protected throws break else instanceof public transient byte extends int return true case false interface short try catch final long static void char finally native super volatile class float new switch while continue for null synchro

29、nized default if package thisJava关键字特点java关键字与c+很多相似,只要与c+一样的,它的含义都与c+中的相同有些关键字c+有,而java没有sizeof求出某种类型的变量的占内存的大小为什么c+有sizeof?因为不同机器内存占用空间大小不一样 16,32,64位,取决于操作系统平台。为什么Java不需要?因为有JVM。java中的关键字都是小写的true、false和null为小写,而不是象在C+语言中那样为大写。严格地讲,它们不是关键字。Java关键字有些关键字java没有取消保留下来,但它自己也不用它也不给程序员用goto和const不是Java编

30、程语言中使用的关键字,而是保留字。什么是保留字?为什么保留下来但不能用?在java中final替代constgoto在c+代表无条件跳转,功能很好,但不能经常用,要谨慎。很多建议去掉goto关键字,没有理解goto真正含义。为什么c+到现在都没有删除掉goto?它有一个特殊使命Java中使用break代替goto 跳出一层循环 :break 跳出多层循环:break outout是一个标号,可以跳到out标识处 break避免滥用goto,把goto功能削弱了,只能跳到外层循环java中加入新的关键字enum assertenum:枚举assert:断言Java的原始数据类型 boolean

31、true/false byte 8位整型 1个字节 short 16位整型 2个字节 int 32位整型 4个字节 long 64位整型 8个字节 char 16位 unicode 字符 2个字节 double 64位浮点数字型 8个字节 float 32位浮点数字型 4个字节boolean类型Java中定义boolean类型boolean b=true;Java中的boolean类型的取值只能是true,falseJava中的boolean类型不能与int通用,而在c+中可以C+中,0代表false,非0代表trueboolean与int通用好还是不好呢?不好举例说明 c+中的boolean

32、与int通用 int a=1;if(0a2) coutaendl;Integer 数据类型byte,short,int,longJava中的4种整型类型Integerbyte: 1个字节 128(-27)-127(27-1)short: 2个字节 32768(-215)-32767(215-1)int: 4个字节 2147483648 (-231) -2147483647 (-231-1)long: 8个字节 263-263-1n Java的不同整型占用内存空间的大小不一样n Java中整型的存储规则与c+一样, 但java整型没有无符号和有符号的区分,这与c+不一样。Java中所有整型都是有

33、符号的,这样就可以求出每个整型能表示的范围。n以byte为例说明nByte是8位整型 1个字节 最多可表示28=256个数 从(-27)-128到127(27-1)n为什么是-128-127而不是-127-128呢?与整型数据在内存的存储规则有关n整型数据在内存空间中的存储方式正整数(最高位为0)在内存中是存储原码负整数(最高位为1)在内存中是存储其补码 补码是不考虑符号情况下原码取反后末位加1。以-5来分析补码分析一些特殊数字:8位全为1则是数字-1,8位全为0则是数字0不考虑符号位最大的数是01111111表示数字127,最小的数10000000表示数字-128Integer 数据类型在内

34、存的存储方式为什么用补码存储负数?方便二进制计算,例如-128+127=-1其他类型的整型在内存的存储方式与byte相同,只是空间更大。其他类型的整型表示数的范围如前面 整型数据表示long类型使用 l或L来表示int的不同进制:十六进制用0 x或H表示 8进制用0或O表示 10进制用D或10表示默认类型为int整型定义short s1=10000; short s2=40000; 超出范围 long l=40000L;Long la=1234567l;int ia=0 x55; /十六进制int ib=011;/8进制byte bb=0 x771;/超出范围写TestIntBool.java

35、程序byte a=1, b=2; byte c=a+b; int d=a+b;byte e=2;e=e+2; e+=2; int ia=0 x2aff; byte bb=(byte)ia; System.out.println(bb);boolean bl1=false; if(bl1=false) System.out.println(bl1);boolean bl2=true; if(bl2=1) System.out.println(bl2);nchar类型n char 字符型为16位, 2个字节,与c+不一样,采用的是unicode编码,unicode编码是统一编码,可包含字母,数字,

36、符号,中文文字等nunicode码是采用16进制表示的 如u0061n2个字节的unicode编码可以表示216个字符,字符使用单引号来表示n127个ASCII码全可表示 英文字符,控制字符,数字,标点符 n表示其他语言的字符:中文,德语,法语,阿拉伯等n一个char类型本质上是一个整型nchar与short都是16位的,他们的差别?n通过查询unicode编码集可以获取一个整型值对应的unicode字符nunicode编码集包含了ASCII码集的n在0-127内unicode编码值与ASCII码值一样,表示的字符也一样n常见的ASCII码值 :A:65 a:97 0:48n通过unicode

37、码得到码值可以将16进制转换为10进制char zhchar=中; char enchar=a; char enchar1=97;在java中,int 与char 是可以互相转换的char ucchar=u0061; char uchar1=u61;因为unicode是16进制的,2个字节则需要16位,需要4个16进制数下面写一组char与int的定义,TestChar.javachar数据类型String类型简介Java中的转义字符 : 单引号 ” : “双引号 :顺斜杠 n:换行 t:tab制表符 b:退格 0:u0000 unicode码值为0的空字符String类型String类型:字

38、符串类型,它不是java的8种基本类型,是类的类型String是java的一个类,这个类的实例叫做String对象Java中字符串用”双引号来引用Java中的字符串类不是以0结尾String类是Java中使用最多的类,它有很多有用的方法,查看jdk的api文档获得String类的对象变量String str1=“Hello”; String str2=new String(“ World!”);String可做什么操作使用+号来连接字符串 String s1=“12”; int ia=3; int ib=4; System.out.println(s1+ia+ib); System.out.p

39、rintln(ia+ib+s1);char charAt(int):返回参数int指示位置上的字符 System.out.println(str1.charAt(0);String concat(String):将当前String与参数String连接起来返回新串 System.out.println(str1.concat(str2);String类型简介boolean contains(charSequence s):判断一个字符串中是否包含参数的子串String str3=“Hello World!”; System.out.println(str3.contains(str1);boo

40、lean equals(String):比较2个字符串内容是否相等,不忽略大小写String s2=“Hello”; String s3=“Hello”; System.out.println(s2.equals(s3);boolean equalsIgnoreCase(String):比较2个字符串内容是否相等,忽略大小写String s4=“heLLo”; System.out.println(s4.equals(s3); System.out.println(s4.equalsIgnoreCase(s3);int indexOf(String/char):获得参数字符/字符串在改字符串中

41、的第一次出现的位置索引,假如找不到则返回-1System.out.println(str3.indexOf(“Wor”); System.out.println(str3.indexOf(o);length():获得字符串的长度System.out.println(str3.length();写TestString.java,演示上面String的功能浮点型数据类型浮点数据类型:种float:单精度,位个字节使用f或者F表示double:双精度位个字节默认类型 使用d或者D表示浮点数举例float fa=123.4f; float fb=123.4; 默认是double double直接赋给f

42、loat精度丢失float fc=12.5E300F; float fd=(float)12.5E301; double da=123D; double db=123.456d; double dc=123.45e301;浮点数据类型的存储方式整型存储方式是精确存储浮点存储方式是近似存储:实数范围太大了,实数太多了,无法在内存中对应每一个实数的状态浮点数的近似存储在程序中的问题:写TestFloat.java实型值分母可为0,double d=0.0/0.0; System.out.println(d);编译正确double a=2.0,b=1.91,c=0.09; if(a-b=c) Sys

43、tem.out.println(“ok”);else System.out.pringln(“no ok”);结果输出”on ok”。实型数值直接比较相等不安全,不要直接比较相等,但可以比较大小。浮点型数据类型假如一定想要2个实型数值比较是否相等,可以考虑比较2个实型数的差是否在一个非常小的范围内想要输出“ok”,则if(Math.abs(a-b-c)(1e-6) System.out.println(“ok”);Math类lang包下的类,它里面定义了很多方法来实现常用的数学运算Math类中的方法都是静态的Math类中的方法:abs():求绝对值sqrt():求平方根pow():求乘方cos

44、(),sin(),tan(),ctan():数学的三角函数运算random():获得0-1之间的随机数在TestFloat.java中测试使用Math类中的方法Math.abs(-5)Math.sqrt(9)Math.pow(2,3)Math.random()*100:获得0-100之间的随机数数据类型之间的转换数据类型之间的转换分为2种自动类型转换a类型转换为b类型时,a的取值范围是b的取值范围的完全子集 这就是自动类型转换在java的8种基本类型中,除boolean以外,其他7种类型都是可以相互转换的。7种原始类型之间可自动转换结构图byteshortintlongfloatdouble

45、char顺着箭头方向可自动转换;逆着箭头方向则是强制转换强制类型转换:只要不能自动转换的,则只能是强制转换整型数据之间的强转:改变数据的符号;改变数值int a=0 x2aff; byte b=(byte)a; b为-1强制转换的原理:从最低位开始取到目标类型长度为止整型之间的强转是保留二进制低位,去掉高位,需要考虑在内存中如何存储实型强转整型是保留整数,去掉小数,不考虑实型在内存中的如何存储写一个DataTypeTest.java程序演示数据类型转换数据类型之间的转换byte+byte会自动提升为intbyte a1=1,a2=2;byte a3=a1+a2;(精度丢失)+=不进行类型提升b

46、yte c=3; c=c+3; c+=3;System.out.println(c);默认整型为int,int,long提升为float有精度丢失float fa=37; System.out.println(fa); int ia=(int)fa; System.out.println(ia);long la=0 xffffffffffL;float fb=la;System.out.println(fb);long lb=(long)fb; System.out.println(lb);整型之间的强转int a=0 x2aff; byte b=(byte)a; System.out.pri

47、ntln(b);float转换为double会有精度丢失float fe=1234.56f; double de=fe; System.out.println(de);float ff=(float)de; System.out.println(ff);整型除法System.out.println(5/2);System.out.println(float)5/2);char与int的转换char c1=A; int iic=c1;System.out.println(iic);char c2=99; System.out.println(c2);Java中的特殊类型对象n为什么会有对象?n早

48、些时候的编程语言和初级程序员将每个变量看作相互无关的实体。例如,如果一个程序需处理某个日期,则要声明三个单独的整数:int day, month, year;n尽管这种作法很容易理解,但它存在两个重大缺陷n名称太多,会引起混乱n忽略了各个变量之间的联系n例如:若程序需同时记录几个日期,则需要三个不同的声明,要记录两个生日, 则要使用int myBirthDay, myBirthMonth, myBirthYear;int yourBirthDay, yourBirthMonth, yourBirthYear;忽视了日、月和年之间的联系并把每个变量都作为一个独立的值,每个变量都是一个独立单元(在

49、本例中为date)的一部分并被相应地处理nJava的对象类型n为克服上述两种缺陷,Java编程语言使用类来表示这种新类型nJava除了中基本类型,还有一种类类型或者叫做对象类型(或是一个类,或是一个接口)nJava的类类型不是表达一个简单的数据,而是表达一个较复杂的数据(复合数据) Java中的特殊类型对象例如:描述一个学生,定义一个学生类,它包含学生的相关信息:姓名,性别,年龄,专业创建一个学生类class Studentprivate String name;private boolean sex;private int age;private String major;public St

50、udent(String name,boolean sex,int age,String major)this.name=name;this.sex=sex;this.age=age;this.major=major;public void setName(String name)this.year=year;public void setSex(boolean sex)this.sex=sex;Java中的特殊类型对象public void setAge(int age)this.age=age;public void setMajor(String major)this.major=maj

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com