JAVA基础知识学习(零基础)ppt课件.ppt
在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确JAVA基础基础在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确教师自我介绍v教师姓名:教师姓名:(请进行自我介绍请进行自我介绍 )字体黑体、字号24、色白字体华文中宋、字号根据内容20-32均可、色黑在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确课程概述课程概述vJava开发环境介绍及编程入门v标示符、关键字及数据类型v表达式及流程控制v数组v常用数据结构及算法v面向对象编程OOPv封装、继承、多态v异常处理Exception在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确课程目标课程目标v掌握程序设计语言开发的一般步骤v编译并运行Java应用程序v理解并使用Java的在线帮助文档v理解Java语言的语法元素和结构特点v理解面向对象程序设计的一般特性,并且能使用这些特性v理解并使用Java异常处理机制在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确程序语言发展历程程序语言发展历程v机器语言二进制机器代码,不便理解,不好记忆,与硬件平台相关,不具有可移植性。v汇编语言用助记符号来描述,与机器代码一一对应,能够理解,但同样不可移植。v高级语言按自然语言的语法风格书写程序,方便理解,在原代码的层次上可以实现跨平台移植。1000100111100101movdptr,#2000if(ab)max=a;elsemax=b;在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确高级语言开发过程高级语言开发过程编辑原代码编译执行在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确JAVA起源起源vStanfordUniversityNetworkvJAVA名称的起源v官网:http:/ 1Java开发环境介绍及编程入门开发环境介绍及编程入门在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确本章目标本章目标了解高级语言开发的一般步骤了解高级语言开发的一般步骤正确安装及配置正确安装及配置Java开发和运行环境开发和运行环境理解理解JVM的运行机制的运行机制了解了解java语言的垃圾回收机制语言的垃圾回收机制编写并运行第一个编写并运行第一个java代码代码在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确下载并安装下载并安装JDK1.从以下网站可下载从以下网站可下载JDKhttp:/根据开发机器的不同,请下载相应平台下的根据开发机器的不同,请下载相应平台下的JDK2.InstallJDKWindows:runtheexecutableUnix:runtheshell在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确JDK下载页面下载页面Win32平台JDK下载Linux平台JDK下载在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确配置配置Java环境变量环境变量3.设置如下三个环境变量设置如下三个环境变量:JAVA_HOME,CLASSPATH,PATHWindows2000/NT/XP系统:系统:开始开始设置设置控制面板控制面板系统系统高级高级环境变量环境变量在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确Windows环境下的安装配置环境下的安装配置v安装安装JDK软件包软件包v设置环境变量设置环境变量点击我的电脑右键点击我的电脑右键-属性属性-高级高级-环境变量环境变量-新建新建JAVA_HOME=JDK安装目录编辑安装目录编辑:path=在原来的在原来的path路径前增加路径前增加JDK安装目录安装目录/bin 注意注意windows平台中是以分号分隔平台中是以分号分隔v测试测试运行运行cmdjavajavacjava-version如果以上三个命令都能运行的话,说明安装成功如果以上三个命令都能运行的话,说明安装成功在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确JDK安装目录介绍安装目录介绍vBin编译器和工具编译器和工具vDemo演示演示vDocsHTML格式的类库文档格式的类库文档vInclude用于编译本地方法的文件用于编译本地方法的文件vJrejava运行环境文件运行环境文件vLib类库文件类库文件vSrc类库源文件类库源文件在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确Java虚拟机虚拟机(JVM)提供字节码(提供字节码(bytecode)的运行环境)的运行环境屏蔽底层平台的差异屏蔽底层平台的差异在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确JVM的作用的作用在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确Java垃圾收集的概念垃圾收集的概念vJava语言使用语言使用new运算符来分配内存空间,运算符来分配内存空间,没有动态内存分配的概念。没有动态内存分配的概念。vJava系统线程自动处理无用内存空间的垃圾系统线程自动处理无用内存空间的垃圾收集收集vJava程序员只能建议,但不能强制程序员只能建议,但不能强制JVM去执去执行垃圾收集程序,使用下面的代码行垃圾收集程序,使用下面的代码:java.lang.System.gc()java.lang.Runtime.gc()在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确Java程序的运行过程程序的运行过程HelloWorldApp.javaHelloWorldApp.classjavacjava跨平台不跨平台在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确第一个第一个Java程序程序HelloWorld.javapublicclassHelloWorldpublicstaticvoidmain(Stringargs)System.out.println(“HelloWorld!”);在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确要点要点(1)一个源文件中至多只能有一个一个源文件中至多只能有一个public的的class源文件名必须和它中定义的源文件名必须和它中定义的public的类名相同的类名相同一个文件中可以同时写多个类,但是只能有一个公开一个文件中可以同时写多个类,但是只能有一个公开的类的类Main方法方法java程序的入口程序的入口在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确要点要点(2)v编写源代码编写源代码,生成生成.java文件文件v编译源代码编译源代码,生成生成.class文件文件javacHelloWorld.javav运行该程序运行该程序javaHelloWorld在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确Jvm加载字节码文件加载字节码文件v加载代码加载代码(类加载器类加载器)将将class字节码文件读入内存字节码文件读入内存,并放在数据的方法区并放在数据的方法区,在堆区中创建在堆区中创建java.lang.Class对象对象,用于封装类在方法区内的数据结构用于封装类在方法区内的数据结构v连接连接把已经读入内存的类的二进制数据合并到把已经读入内存的类的二进制数据合并到jvm运行环境中去运行环境中去v验证代码验证代码(字节码校验器字节码校验器)保证加载类有正确的内部结构保证加载类有正确的内部结构,并与其他类协调一致辞主要有以下几个方并与其他类协调一致辞主要有以下几个方面面:文件结构检查文件结构检查,语义检查语义检查,字节码验证字节码验证,二进制兼容的验证二进制兼容的验证v准备准备Jvm为类的静态变量分配内存为类的静态变量分配内存,并调置默认的初始值并调置默认的初始值v解析解析Jvm把类的二进制数据中的符号引用替换为直接引用把类的二进制数据中的符号引用替换为直接引用v执行代码执行代码(解释器解释器)Jvm执行类初始化语句执行类初始化语句,为类静态变量赋以初值为类静态变量赋以初值在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确练习练习:Information.java1.开发一个开发一个Java程序打印出下列信息程序打印出下列信息:姓名姓名性别性别年龄年龄毕业学校毕业学校户籍户籍在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确Package包结构包结构Packagea.b.c;publicclassHelloWorldpublicstaticvoidmain(Stringargs)System.out.println(“HelloWorld!”);将生成的字节码文件以包结构形式来存放,用于方便管理类文件将生成的字节码文件以包结构形式来存放,用于方便管理类文件Package必须要写在源文件第一行,注释除外必须要写在源文件第一行,注释除外在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确Package包结构包结构带有包结构的程序在编译是需要加参数:带有包结构的程序在编译是需要加参数:vJavac-d.HelloWorld.java运行带包结构的程序时,要指定类全名运行带包结构的程序时,要指定类全名vJavaa.b.c.HelloWorld在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确Import导入机制导入机制Packagea.b.c;Importjava.util.*;publicclassHelloWorldpublicstaticvoidmain(Stringargs)System.out.println(“HelloWorld!”);System.out.println(newDate();在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确生成生成javadoc文档文档/*此种注释存在于源代码中时,编译时使用此种注释存在于源代码中时,编译时使用javadoc命令命令可以生成可以生成doc文档文档*/用法:用法:Javadoc-d.HelloWorld.java在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确生成生成javadoc文档文档vauthorvversion标注在标注在javadoc中的使用中的使用使用以上标记时要增加使用以上标记时要增加author-version参数参数进行注释文档的抽取进行注释文档的抽取,默认情况下会忽略默认情况下会忽略在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确压缩成压缩成jar文件文件在在java中可以将生成的字节码文件按照生成目录的结构中可以将生成的字节码文件按照生成目录的结构压缩成压缩成jar文件方便使用文件方便使用压缩命令:压缩命令:Jar-cvffirst.jara解压命令:解压命令:Jar-xvffirst.jar运行运行jar文件中的程序文件中的程序:java-classpathfirst.jara.b.c.HelloWorld在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确Jar命令参数命令参数x解压解压u更新更新d列表列表v显示压缩过程显示压缩过程c创建压缩文件创建压缩文件f压缩文件名压缩文件名m按照清单指定的系统进行压缩按照清单指定的系统进行压缩在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确命令行参数命令行参数Echo.javapublicclassEchopublicstaticvoidmain(Stringargs)System.out.println(args0);运行命令:运行命令:JavaEchoxubin在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确要点:要点:v可执行程序必需要可执行程序必需要main方法方法v只能只能public和和static调换位置调换位置vargs可以是任意的名字可以是任意的名字vargs0代表第一个命令行参数代表第一个命令行参数v注意注意:运行时一定要有命令行参数输入运行时一定要有命令行参数输入,否则会有数组否则会有数组下标越界异常出现下标越界异常出现在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确练练习习编程打印出所有命令行的参数。编程打印出所有命令行的参数。从命令参数中接收姓名,在程序打印从命令参数中接收姓名,在程序打印Helloxxxxx在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确JavaAPI文档文档Downloaditfromhttp:/在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确本章本章总结总结v在在这这一章里,我一章里,我们讨论们讨论了以下了以下问题问题:怎怎样样建立建立Java开开发环发环境境Java语语言的关言的关键键特性特性Java虚虚拟拟机机(JVM)的功能的功能Java的垃圾收集机制的垃圾收集机制常用常用Java开开发发命令和开命令和开发发工具包工具包编编写并运行一个写并运行一个Java应应用程序用程序在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确Module 2标示符、关键字和数据类型标示符、关键字和数据类型在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确本章目标本章目标q程序注释程序注释q标示符标示符q关键字关键字q基本数据类型基本数据类型在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确注注释释v三种类型的注释三种类型的注释/单行注释单行注释/*这是一段多行注释,它跨越了多个行这是一段多行注释,它跨越了多个行*/*这是一个文档注释,可以使用这是一个文档注释,可以使用JDK的的javadoc工具工具从原文件中抽取这种注释形成程序的帮助文档。从原文件中抽取这种注释形成程序的帮助文档。*/v使用使用javadoc命令建立命令建立HTML格式的程序文档格式的程序文档javadocoptionspackagenamessourcefilesfiles在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确Java的标示符的标示符1,什么是标示符?,什么是标示符?在在java语言中用来给一个类、变量或方法命名的符号语言中用来给一个类、变量或方法命名的符号2,标示符的命名规则:,标示符的命名规则:以字母以字母,“_”或或“$”符号开头符号开头可以包含字母、可以包含字母、“_”、“$”和数字符号和数字符号大小写敏感大小写敏感不能与保留关键字冲突不能与保留关键字冲突没有长度限制没有长度限制例如:例如:identifier_sys_var1$charuserNameuser_name在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确Java的标示符(续)的标示符(续)3,命名,命名约定:类名类名,接口名接口名:每个单词的首字母应该大写:每个单词的首字母应该大写classMyFirstClassinterfaceWeapon字段、方法以及对象:第一个单词首字母应小写,其他单词首字母大写字段、方法以及对象:第一个单词首字母应小写,其他单词首字母大写booleanisWomanvoidsetName(Stringname)常量:全部用大写字母表示。常量:全部用大写字母表示。publicfinalintGREENpublicfinalintHEAD_COUNTJava包(包(Package):它们全都字母小写。):它们全都字母小写。packagejava.awt.event在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确Java中的关键字中的关键字关键字列表:关键字列表:abstractbooleanbreakbytecasecatchcharclasscontinuedefaultdodoubleelseextendsenumfalsefinalfinallyfloatforifimplementsimportinstanceofintinterfacelongnativenewnullpackageprivateprotectedpublicreturnshortstaticsuperswitchsynchronizedthisthrowthrowstransienttruetryvoidvolatilewhileJava中中truefalse不是关键字不是关键字,而是而是boolean类型的字面量类型的字面量保留字:保留字:const,goto所有的关键字都是小写,所有的关键字都是小写,friendly,sizeof不是不是java的关键字的关键字在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确数据类型数据类型v基本数据类型(基本数据类型(primitivetype)vbyteshortintlongvfloatdoublecharbooleanv引用数据类型(引用数据类型(referencetype)在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确Java的基本数据类型的基本数据类型boolean布尔值(布尔值(true或或false)byte8-bit整形值整形值short16-bit整形值整形值int32-bit整形值整形值long64-bit整形值整形值char16-bitunicode编码的字符编码的字符double64-bit浮点数值浮点数值float32-bit浮点数值浮点数值在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确布尔类型布尔类型-boolean一个一个boolean类型的变量用来表示一个或真或假的关系类型的变量用来表示一个或真或假的关系一个一个boolean类型变量的值必须是类型变量的值必须是true或或false二者二者之一之一booleanisCorrect=true;在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确文本数据类型文本数据类型char和和Stringvchar其实就是一个无符号的其实就是一个无符号的16位整形,其范围为位整形,其范围为065535,用来存储该字符用来存储该字符的的Unicode编码值,因为编码值,因为Unicode编码中包含汉字的编码,所以一个编码中包含汉字的编码,所以一个char类型的变量也可以存储一个汉字字符。类型的变量也可以存储一个汉字字符。在代码中直接给出的一个字符值必须用单引号括起来。在代码中直接给出的一个字符值必须用单引号括起来。charzhChar=中中;charenChar=a;charucChar=u0060;对某些不方便直接书写或直接书写有歧义的字符,对某些不方便直接书写或直接书写有歧义的字符,java语言规定用语言规定用转义字符给出。转义字符给出。可以把可以把char类类型数据当作整数数据来操作。例如:型数据当作整数数据来操作。例如:intthree=3;charone=1;intfour=three+one;在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确转义字符转义字符转义字符转义字符描述描述ddd1到到3位位8进制数所表示的字符进制数所表示的字符(ddd)uxxxx1到到4位位16进制数所表示的字符进制数所表示的字符(xxxx)单引号字符单引号字符双引号字符双引号字符反斜杠字符反斜杠字符r回车回车n换行换行f走纸换页走纸换页t横向跳格横向跳格b退格退格Java语言中转义字符都以语言中转义字符都以给出常用转义字符列表:给出常用转义字符列表:在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确字符串类型字符串类型-StringvString是是JDK中定义的一个类,不是基本数据类型中定义的一个类,不是基本数据类型一个一个String对象可以用来存储多个字符,在程序中直接给出一个对象可以用来存储多个字符,在程序中直接给出一个String值要用双引号括起来值要用双引号括起来StringmyName=“Blues”;可以使用可以使用+运算符把多个运算符把多个String数据连接起来,并且还可连接其他类数据连接起来,并且还可连接其他类型的数据型的数据v例如:例如:intcount=7;System.out.println(Counted+count+chars.);在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确整形数据(整形数据(byte,short,intandlong)v三种形式给一个整形变量直接赋值三种形式给一个整形变量直接赋值:十进制、八进制和十六进制十进制、八进制和十六进制v直接给出的值默认是直接给出的值默认是int类型。类型。v长整形值应该在数字后面跟上长整形值应该在数字后面跟上l或或L标示标示publicvoidtestIntType()intia=0 x55;/十六进制十六进制intib=011;/八进制八进制bytebb=0 x771;byteba=(byte)0 x771;longla=1234567L;/十进制十进制在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确整形数据在计算机内的存储方整形数据在计算机内的存储方式式v计算机能存储的值都是二进制值计算机能存储的值都是二进制值,整形数据在计算机中的存储方式分两整形数据在计算机中的存储方式分两种情况讨论:种情况讨论:shorta=57;000000000011100111111111110001111,正整数,存储该数字的二进制原码。,正整数,存储该数字的二进制原码。shorta=-57;2,负整数,存储该数字的二进制补码。,负整数,存储该数字的二进制补码。inta=57;00000000000000000000000000111001inta=-57;11111111111111111111111111000111高字节位高字节位低字节位低字节位在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确浮点数据类型浮点数据类型float和和doublev直接在程序中书写的浮点数默认为直接在程序中书写的浮点数默认为dobule类型。类型。vfloat类型的数据占类型的数据占32位长度(位长度(4Bytes)vdouble类型的数据占类型的数据占64位长度(位长度(8Bytes)v直接表示一个直接表示一个float类型的值必须在数字后跟类型的值必须在数字后跟f或或Fv直接表示一个直接表示一个double类型的值可以在数字后跟类型的值可以在数字后跟d或或Dv可以用科学可以用科学计计数法表示,如:数法表示,如:123.456e3或或123.456E3publicvoidtestFloatType()floatfa=123.4f;floatfb=12.5E300F;floatfc=(float)12.5E300;doubleda=123D;doubledb=123.456D;doubledc=123.45e301;在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确基本数据类型的取值范围基本数据类型的取值范围TypeBitsBytesMinimumRangeMaximumRangeboolean81Onlytwovalues:trueorfalsebyte81-2727-1short162-215215-1char1620216-1int324-231231-1long648-263263-1float324NotneededNotneededdouble648NotneededNotneeded在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确变量的声明和赋值变量的声明和赋值packagesample;publicclassAssignpublicstaticvoidmain(Stringargs)intx,y;/声明声明int类型变量类型变量x和和yfloatz=3.414f;/声明声明float类型变量并赋值类型变量并赋值doublew=3.1415;/声明声明double类型变量并赋值类型变量并赋值booleantruth=true;/声明声明boolean类型变量并赋值类型变量并赋值charc;/声明声明char类型变量类型变量cStringstr;/声明声明String类型的引用类型的引用Stringstr1=“bye”;/声明声明String类型的引用并且实例化类型的引用并且实例化c=A;/给给c变量赋值变量赋值str=“Hioutthere!”;/给给str实例化实例化x=6;y=1000;在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确引用数据类型(引用数据类型(referencetype)v数组数组Array,类,类classe,接口,接口interface属于属于reference类型。类型。vreference类型的变量是所引用的对象的内存地址类型的变量是所引用的对象的内存地址。v例子:例子:classMyDateprivateintday=1;privateintmonth=1;privateintyear=2000;publicMyDate(intday,intmonth,intyear).publicvoidprint().publicclassTestMyDatepublicstaticvoidmain(Stringargs)MyDatemy_birth=newMyDate(22,7,1964);在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确引用数据类型(引用数据类型(referencetype)v创建一个类对象:创建一个类对象:vMyDatemy_birth=newMyDate(22,7,1964);在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确引用数据类型(引用数据类型(referencetype)两个引用变量的赋值将会产生如下结果:两个引用变量的赋值将会产生如下结果:intx=7;inty=x;MyDates=newMyDate(22,7,1964);MyDatet=s;t=newMyDate(22,12,1964);两个变量指向同一个对象:两个变量指向同一个对象:在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确对象气球对象气球引用对象对象引用对象对象就像一个充满氢气的气球,我们没有办法直接去得到它,要想对它的使用都必须通过一根对象就像一个充满氢气的气球,我们没有办法直接去得到它,要想对它的使用都必须通过一根连着它的绳子来访问,这根绳子就是对象的引用。一根绳子同时只能连着一个气球,就像一个连着它的绳子来访问,这根绳子就是对象的引用。一根绳子同时只能连着一个气球,就像一个引用同时只能指向一个对象;可以用多根绳子同时连接一个气球,也就是可以有多个引用同时引用同时只能指向一个对象;可以用多根绳子同时连接一个气球,也就是可以有多个引用同时指向同一个对象;如果某个气球没有任何绳子连着它,那它就会飞走,同样,某个对象如果没指向同一个对象;如果某个气球没有任何绳子连着它,那它就会飞走,同样,某个对象如果没有引用连接它,它就会成为垃圾,等着被有引用连接它,它就会成为垃圾,等着被java的垃圾收集器回收;如果某根绳子没有连接任何的垃圾收集器回收;如果某根绳子没有连接任何气球,那么它就是一个空引用,对它的访问没有意义。同样,某个引用如果没有指向对象,那气球,那么它就是一个空引用,对它的访问没有意义。同样,某个引用如果没有指向对象,那么对它的访问将会抛出么对它的访问将会抛出NullPointerException引用null在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确本章本章总结总结在这一章中,我们讨论了以下问题在这一章中,我们讨论了以下问题:不同不同类类型的注型的注释释标标示符和关示符和关键键字字基本数据基本数据类类型型引用引用类类型型对对象的概念象的概念在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确练练习习1,写一个程序,要求定义出boolean,int,char,double,float,String类型的变量并赋初值,然后将这些值输出出来。2,程序中定义有如下语句,画出这些整形值在内存空间中的存储状态。inta=74;intb=-132;intc=0 x2B8F;3,下列哪些赋值语句是错误的:(1)byteb=0 x175;(2)inti=0 x27f;(3)charc=123;(4)inta=真;(5)floatf=12.345E2;(6)booleanf=0;在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确练练习习4,判断下列语句中的a和b的值是否相等:(1)inta=0;intb=0;(2)inta=0;charb=u0000;(3)inta=123;charb=u007B;(4)inta=0 x123;charb=123;(5)inta=3+5;charb=8;(6)inta=3+5;charb=8;(7)chara=u0000;charb=0;在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确Module 3表达式及流程控制语句表达式及流程控制语句在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确本章目本章目标标vJava的运算符的运算符v基本数据类型的赋值基本数据类型的赋值v布尔表达式布尔表达式v选择结构选择结构(ifelse,switch)v循环结构(循环结构(while,dowhile,for)v使用使用continue和和break进行循环控制进行循环控制在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确常用运算符列表常用运算符列表序号描述运算符结合性1括号和引用()。左右2单目运算符+-!右左3算术运算符*/%+-左右4关系运算符 =!=左右5逻辑运算符&|&|左右6位运算符&|左右7条件运算符?:/8赋值运算符=+=-=*=/=%=&=|=右左在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确算算术术运算符运算符v说明:说明:Java对对“+”运算符进行了扩展,使它能够进行字运算符进行了扩展,使它能够进行字符串的连接,符串的连接,如如“abc”+“de”,得到串,得到串“abcde”+i,-i在使用在使用i前,先使前,先使i的值改变的值改变i+,i-在使用在使用i后,再改变后,再改变i的值的值在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确关系运算符关系运算符v说明:说明:Java中,任何数据类型的数据(包括基本类型和引用类中,任何数据类型的数据(包括基本类型和引用类型)都可以通过型)都可以通过=或或!=来比较是否相等来比较是否相等(这与这与C、C+不不同同)。关系运算的结果返回关系运算的结果返回true或或false,而不是,而不是C、C+中中的的1或或0。在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确布布尔尔逻辑逻辑运算符运算符q逻辑运算符逻辑运算符AND(&)、)、OR(|)以及)以及NOT(!)能生成一个布尔值)能生成一个布尔值(true或或false)q说明:说明:只可将只可将AND,OR或或NOT应用于布尔值。不可将一个非布尔值当作布尔应用于布尔值。不可将一个非布尔值当作布尔值在逻辑表达式中使用值在逻辑表达式中使用例如:以下是非法的。例如:以下是非法的。inti=1,j=2;i&ji|j!i在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确布布尔尔逻辑逻辑运算符运算符q说明:说明:对浮点数字的比较是非常严格的。对浮点数字的比较是非常严格的。短路运算:短路运算:1、a&b&c2、a|b|c3、x=y=1a=5,b=3,c=2,d=1(x=ab)&(y=cop1 op2op1右移op2位op1 op1 op2op1无符号右移op2位在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确位运算符(位运算符(,&,|,)在整堂课的教学中,刘教师总是让学生带着问题来学习,而问题的设置具有一定的梯度,由浅入深,所提出的问题也很明确位运算符(位运算符(,:将一个数的各二进制位全部右移若干位:将一个数的各二进制位全部右移若干位,移到右端的低位被移到右端的低位被舍弃,最高位则移入原来高位的值舍弃,最高位则移入原来高位的值例如例如:a=00110111,则,则a2=00001101b=11010011,则,则b2=11110100右移一位相当于除右移一位相当于除2取商取商例如:例如:1281returns128/2=642564returns256/16=16-2564