JAVA培训教程PPT.ppt

上传人:豆**** 文档编号:62812163 上传时间:2022-11-22 格式:PPT 页数:397 大小:2.78MB
返回 下载 相关 举报
JAVA培训教程PPT.ppt_第1页
第1页 / 共397页
JAVA培训教程PPT.ppt_第2页
第2页 / 共397页
点击查看更多>>
资源描述

《JAVA培训教程PPT.ppt》由会员分享,可在线阅读,更多相关《JAVA培训教程PPT.ppt(397页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、JavaJava1.语言基础2.面向对象3.类的应用4.图形组件5.线程及线程应用6.输入与输出7.Java小应用程序8.Java小游戏的实现9.网络编程10.数据结构1 语言基础本章是讲述Java语言的基础语法,要求学生一定掌握。课程内容:1.1 Java语言入门1.2 标识符、关键字和数据类型1.3 运算符,表达式和语句1.4 数组1.5 方法的封装2 面向对象本章是介绍Java面向对象的概念,讲解面向对象的封装性,多态性和继承性,以及抽象类、嵌套类。课程内容:2.1 面向对象的基本概念2.2 类与封装2.3 static关键字2.4 内部类2.5 类的继承2.6 final关键字2.7

2、抽象类与接口2.8 类的多态2.9 异常2.10 包3 类的应用本章是讲解各种常用类的使用课程内容:3.1 String类3.2 StringBuffer类3.3 Calendar类3.4 基本类型对象包装类4 图形组件本章是了解java的图形组件及事件响应课程内容:4.1 图形用户界面概述4.2 事件处理4.3 图形图像操作4.4常用组件5 线程及线程应用本章是了解线程的概念,掌握线程的控制,可以灵活运用线程课程内容:5.1 线程的概念5.2 线程的使用5.3 线程同步6 输入与输出本章是了解程序与文件系统的交互方式,可以直接对文件进行读写控制课程内容:6.1 File类6.2 字节流6.3

3、 字符流6.4 编码6.5 随机文件7 Java小应用程序本章是介绍java小应用程序的使用,以及动画的实现课程内容:7.1 小应用程序的简介7.2 小应用程序的执行过程7.3 在小应用程序中的图形和图像控制7.4 声音控制8 Java小游戏的实现本章是掌握对java小游戏的框架的了解,掌握游戏的编写课程内容:8.1 编写游戏9 网络编程本章是介绍通过类连接到www,然后讨论如何通过TCP/IP或UDP协议在网络上的两个程序间建立连接并交换数据课程内容:9.1 网络概述9.2 InetAddress 类9.3 UDP网络程序9.4 TCP网络程序10 数据结构本章是了解Java的数据结构,能够

4、灵活应用在游戏编程中课程内容10.1 链表10.2 堆栈10.3 队列10.4 递归10.5 排序1 语言基础1 语言基础本章是讲述java语言的基础语法,要求学生一定掌握。课程内容:1.1 Java语言入门1.2 标识符、关键字和数据类型1.3 运算符,表达式和语句1.4 数组1.5 方法的封装1.1 Java语言入门1.1.1 Java特点1.1.2 Java语言编程过程1.1.3 Java的开发环境1.1.4 Java程序开发基本过程1.1.5 Java虚拟机的运行过程1.1.1 Java特点简单面向对象 与平台无关健壮性(Java的强类型机制、异常处理、内存的自动收集等)1.1.2 J

5、ava语言编程过程Java源程序(*.java)Java字码文件(*.class)Java编译程序Java虚拟机(JVM)执行Window下的字节码解释程序Linux下的字节码解释程序Window操作系统Linux操作系统1.1.3 Java的开发环境 Java开发环境的搭建(1)什么是JDK(2)设置环境变量1.1.3 Java的开发环境什么是JDKsun公司将java的开发工具和运行环境所涉及到的应用程序和相关文件放在一起,称之为JDK(java development kit)JDK版本(1)J2EE(Java 2 Platform Enterprise Edition)(2)J2SE(

6、Java 2 Platform Standard Edition)(3)J2ME(Java 2 Platform Micro Edition)下载地址:Http:/1.1.3 Java的开发环境JDK的安装目录JDK的目录结构(1)bin目录javacjava(2)demo目录1.1.3 Java的开发环境何为环境变量:在操作系统中定义,可以被操作系统上运行的的应用程序访问的变量查看环境变量:在命令行窗口中直接键入set查看所有的环境变量:键入set+变量名查看该变量的值我的电脑属性高级环境变量:关于用户变量和系统变量中都进行设置的变量1.1.3 Java的开发环境设置环境变量在命令行窗口中键

7、入set 变量名=变量值 设置环境变量(不能键入空格),键入set 变量名=,取消环境变量(注:在命令行窗口中设置的环境变量只对该命令行窗口起作用)在我的电脑属性高级环境变量(注:在这里设置的环境变量对以后启动的所有应用程序和命令行窗口都起作用,但不会影响已启动的应用程序和命令行窗口,在用户窗口中设置的环境变量需要注销重新登陆后才起作用)1.1.3Java的开发环境环境变量path当我们执行某个命令时,操作系统首先会在当前目录下查找该命令,如果没有找到这个命令程序,操作系统则会沿着path中所指定的目录依次查找,以最先找到的为准查看当前使用的JDK版本:java version 1.1.4 J

8、ava程序开发基本过程Java编程基础编译Java程序运行Java程序Java注释使用Java文档1.1.4 Java程序开发基本过程Java编程基础Java的基本语法格式:所有的java程序都应该写在类中 class 类的修饰符:public和默认修饰符1.1.4 Java程序开发基本过程编译Java程序Javac运行Java程序Java1.1.4 Java程序开发基本过程Java注释单行注释/多行注释/*/文档注释/*/1.1.4 Java程序开发基本过程使用Java文档生成Java文档1.1.4 Java程序开发基本过程使用Java文档HTML网页:优点:更新速度快缺点:不支持模糊查询c

9、hm格式的文档优点:支持模糊查询缺点:更新速度稍慢生成Java文档1.1.5 Java虚拟机的运行过程:加载代码:类装载器(classloader)校验代码:字节码验证器(Byte Code Verifier)执行代码:解释器(Interpreter)1.2 标识符、关键字和数据类型1.2.1 标识符1.2.2 关键字1.2.3 数据类型1.2.4 常量1.2.5 变量1.2.6 类型转换1.2.1 标识符标识符命名规则定义:Java对各种变量,方法和类等要素命名时使用的字符序列称为标识符规则:标识符应以字母,下划线,美元符号开头标识符应以字母,下划线,美元符号或数字组成标识符对大小写敏感,长

10、度无限止合法的标识符:Indentifier、username、user_name、_userName、$username非法的标识符:class、98.3、Hello World 1.2.2 关键字abstractdoimplementprivatethisbooleandoubleimportprotectedthrowbreakelseinstanceof publicthrowsbyteextendintreturntransientcasefalseinterfaceshorttruecatchfinallongstatictrycharfianllynativestrictfpvo

11、idclassfloatnewsupervolatilecontinuefornullswitchwhiledefaultif package synchronized注:java 无sizeof,goto,const 关键字,但不能用goto const作为变量名1.2.3 数据类型数据类型基本数据类型引用数据类型类接口数组数值型字符型(char)布尔型(boolean)整数型(byteshortIntlong)浮点型(float,double)1.2.4 常量常量:就是持续不变的值常量类型:整型常量:十进制(12),十六进制(0 x12),八进制(012)长整型常量:13L浮点数常量:(1

12、)单精度浮点数 5.1f,.4f,2e3f,0f(2)双精度浮点数 5.1,.4,2e-3,0d布尔常量:true和false 1.2.4 常量字符常量:a,8,u0027 r表示接受键盘输入,相当于按下了回车键;n是换行;t是制表符,相当于table键;b是退格键,相当于Back Space;是单引号,而“是双引号;是一个斜杠“”。字符串常量:“Hello World“,”123”,Welcome nXXX“null常量:null常量只有一个值,用null表示,表示对象的引用为空 1.2.5 变量变量概念变量就是系统为程序分配的一块内存单元,用来存储各种类型的数据。先声明,再使用变量的元素

13、变量名,变量值,变量的作用范围变量定义int x=0,y;y=x+3;x和y就是变量1.2.5 变量变量字节大小及有效取值范围byte占用一个字节,数字大小为-2727-1short占用两个字节,数字大小为-215215-1 int占用四个字节,数字大小为-231231-1 long占用八个字节,数字大小为-263263-1 float占用四个字节,数字大小为1.4E-453.4E+38,-1.4E-45-3.4E+38。用二进制的指数形式表示一个浮点数的格式,如:101*22 ,101*2-3double占用八个字节,数字大小为4.9E-3241.7E+308,-4.9E-324-1.7E+

14、308。char占两个字节,数字大小为0216-1,是unicode编码。字符的本来面目,我们为什么可以直接将一个数字赋给字符变量。Boolean占一个字节,有两种取值,true和false。1.2.5 变量变量作用域变量要先定义,后使用,但不是在变量定义后的语句中一直都能使用前面定义的变量。比如:可以用大括号将多个语句包起来形成一个复合语句,则复合语句中定义的变量只能在定义它的复合语句中使用。局部变量在方法或方法中的代码块中定义的变量称为局部变量成员变量在方法外,在类内部定义的变量 1.2.5 变量局部变量的定义在方法或方法中的代码块中定义的变量称为局部变量,局部变量在方法或代码块被执行时创

15、建,在方法或代码块结束时被销毁。局部变量的初始化局部变量在进行取值操作前必须被初始化,否则会出现编译错误1.2.6 类型转换自动类型转换(也叫隐式类型转换)byte b=3;int x=b;/b被自动转换为int型强制类型转换(也叫显式类型转换)byte a;int b;a=(byte)b;/b被强制转换为byte型 1.3 运算符,表达式和语句1.3.1 运算符1.3.2 表达式1.3.3 控制语句1.3.1 运算符何为运算符运算符是一种特殊符号,用以表示数据的运算、赋值和比较,一般由一至三个字符组成。运算符类型算术运算符赋值运算符比较运算符逻辑运算符位运算符移位运算符1.3.1 运算符1.

16、3.1 运算符算术运算符的注意问题“+”除字符串相加功能外,还能把非字符串转换成字符串,如:“x”+123;的结果是“x123”。如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。但被模数是负数就另当别论了。对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。int x=3510;x=x/1000*1000;实际运行结果是3000,想想为什么?1.3.1 运算符赋值运算符1.3.1 运算符赋值运算符注意:注1:在JAVA里可以把赋值语句连在一起,如:x=y=z=5;在这个语句中,所有三个变量都得到同样的值5。注2:x+=3等效于x=x+3,等于

17、*=,-=,/=依此类推。1.3.1 运算符比较运算符1.3.1 运算符比较运算符注意:注1:比较运算符的结果都是boolean型,也就是要么是true,要么是false。注2:比较运算符“=”不能误写成“=”1.3.1 运算符逻辑运算符1.3.1 运算符逻辑运算符注意点注1:逻辑运算符用于对boolean型结果的表达式进行运算,运算的结果都是boolean型。注2:“&”和“&”的区别在于,如果使用前者连接,那么无论任何情况,“&”两边的表达式都会参与计算。如果使用后者连接,当“&”的左边为false,则将不会计算其右边的表达式。“|”和“|”的区别与“&”和“&”的区别一样。1.3.1 运

18、算符位运算符任何信息在计算机中都是以二进制的形式保存的,&,|,除了可以作为逻辑运算符,也可以做为位算符,它们对两个操作数中的每一个二进制位都进行运算。只有参加运算的两位都为1,&运算的结果才为1,否则就为0。只有参加运算的两位都为0,|运算的结果才为0,否则就为1。只有参加运算的两位不同,运算的结果才为1,否则就为0。1.3.1 运算符移位运算符 右移 无符号右移1.3.1 运算符移位运算的注意事项及小技巧移位运算符适用类型有byte、short、char、int、long对低于int型的操作数将先自动转换为int型再移位。对于int型整数移位ab,系统先将b对32取模,得到的结果才是真正移

19、位的位数。例如:a33和a1结果是一样的,a32的结果还是a原来的数字。对于long型整数移位时ab,则是先将移位位数b对64取模。移位不会改变变量本身的值。如a1;在一行语句中单独存在,毫无意义。x1的结果和x/2的结果是一样的,x2和x*4的结果也是一样的。总之,一个数左移n位,就是等于这个数乘以2的n次方,一个数右移n位,就是等于这个数除以2的n次方。请思考:如何用程序实现求2的x次方。答案:y=110&b10表达式的运算顺序先按照运算符的优先级优先级相同的,按照约定的结合方向表达值的值和类型1.3.3控制语句条件控制语句循环控制语句特殊的循环流程控制1.3.3控制语句条件控制语句If

20、else 语句的语法:If(布尔表达式)语句或语句块If(布尔表达式)语句或语句块else if(布尔表达式)语句或语句块else语句或语句块1.3.3控制语句switch语句的语法switch(表达式1)case 常量1:语句break;case 常量2:语句break;default:语句break;1.3.3控制语句switch选择语句:switch(x)/x只能为int、byte、char、shortcase 1:System.out.println(“Monday”);break;case 2:System.out.println(“Tuesday”);break;case 3:Sy

21、stem.out.println(“Wednesday”);break;default:System.out.println(“I dont know”);思考:无break的情况1.3.3控制语句for循环语句for(初始化表达式;布尔值测试表达式;更改表达式)语句或语句块;例:for(int i=0;i=10;i+)System.out.println(“i=”+i);1.3.3控制语句while循环while(布尔值)语句或语句块;注意:while表达式的括号后不能加“;”,否则会 造成不易察觉的无限循环1.3.3控制语句do while循环do语句或语句块;while(布尔测试)注意:

22、while表达式的括号后要加“;”1.3.3控制语句思考:while循环和do while循环的不同之处while循环先判断循环条件,再执行循环体do while循环先执行循环体,再判断循环条件1.3.3控制语句break与continue语句break:终止循环体中的执行语句和switch语句,跳转到当前循环的下一条语句continue:只能用于while、do while、for语句中,终止当前这次循环,执行下一次循环1.3.3控制语句特殊的循环流程控制break语句do语句;If(条件为真)break;语句while(布尔表达式);1.3.3控制语句特殊的循环流程控制continue语句

23、do语句;If(条件为真)continue;语句while(布尔表达式);1.4 数组1.4.1 声明数组1.4.2 创建数组1.4.3 数组初始化1.4.4 数组中注意的问题1.4.5 多维数组1.4.1声明数组声明数组:数组类型 数组名Int aaInt aa1.4.2创建数组创建数组:数组名=new 类型名数组大小aa=new int10;数组元素:aa0、aa1、aa2aa91.4.3数组初始化int ia=1,2,3,4;int ia=new int3,4,5;int a5;/声明数组时,不能指定其长度,编译时将出错 1.4.4数组中注意的问题空指针异常(数组未初始化就使用数组中的元

24、素)数组越界异常 如何得到数组长度 所有的数组的索引均从0开始1.4.4数组中注意的问题不能改变数组大小可以使用相同的引用变量去引用另一个全新的数组1.4.5多维数组多维数组,类似棋盘。Java 中的多维数组,也就是数组的数组,1.4.5多维数组定义多维数组int xx;xx=new int3;xx0=new int3;xx1=new int2;1.4.5多维数组多维数组中元素的引用方式,如:x12。规则矩阵数组可以在一条语句中产生,如:int xx=new int23;多维数组的静态初始化,如:int xx=3,2,7,1,5,6;1.5方法的封装(功能的封装)1.5.1 方法的封装格式1.

25、5.2 方法调用的过程分析1.5.3 方法的调用1.5.4 方法的参数传递1.5.1方法的封装格式返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,.)程序代码 return 返回值;形式参数:在方法被调用时用于接收外部传入的数据的变量。参数类型:就是该形式参数的数据类型。返回值:方法在执行完毕后返还给调用它的程序的数据。返回值类型:函数要返回的结果的数据类型。实参:调用函数时实际传给函数形式参数的数据。如何理解函数返回值类型为void的情况1.5.2方法调用的过程分析1.5.3方法的调用方法调用的几种不通情况使用return提前返回 1.5.4方法的参数传递基本数据类型的参数传

26、递class PassValuepublic static void main(String args)int x=5;change(x);System.out.println(x);public static void change(int x)x=3;1.5.4方法的参数传递方法的形式参数相当于方法中定义的局部变量方法的形式参数在方法调用结束时被释放,不会影响到主程序中同名的局部变量1.5.4方法的参数传递class PassRefint x;public static void main(String args)PassRef obj=new PassRef();obj.x=5;chan

27、ge(obj);System.out.println(obj.x);public static void change(PassRef obj)obj.x=3;课后练习编写程序:1.输入分数,判断分数的级别,大于等于85,输出结果”优秀”,大于等于75,输出结果”良好”,大于等于60,输出结果”及格”,否则不及格2.输入一个数,判断是否被6整除,被6整除,显示”被6整除”,否则显示”不能被6整除3.循环输入五个数,显示最大数小结1.1 Java语言入门1.2 标识符、关键字和数据类型1.3 运算符,表达式和语句1.4 数组1.5 方法的封装2 面向对象2 面向对象本章是介绍Java面向对象的概

28、念,讲解面向对象的封装性,多态性和继承性,以及抽象类、嵌套类。课程内容:2.1面向对象的基本概念2.2类与封装2.3static关键字2.4内部类2.5类的继承2.6final关键字2.7抽象类与接口2.8异常2.9包2.1 面向对象的基本概念2.1.1 面向对象2.1.2 对象2.1.3 类2.1.4 面向对象的定义2.1.4 OOP词汇表2.1.1面向对象 面向对象(Object Oriented,OO)是当前计算机界关心的重点,它是90年代软件开发方法的主流面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围。如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理

29、结构、CAD技术、人工智能等领域。2.1.2对象(1)对象。对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。(2)对象的状态和行为。对象具有状态,一个对象用数据值来描述它的状态。对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为。对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中2.1.3类 类:具有相同或相似性质的对象的抽象就是类。因此,对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象。类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。类具有操作,它是对象的行为的抽象,用

30、操作名和实现该操作的方法来描述。2.1.3类类的结构。在客观世界中有若干类,这些类之间有一定的结构关系。通常有两种主要的结构关系,即一般-具体结构关系,整体-部分结构关系。一般具体结构称为分类结构,也可以说是“或”关系,或者是“is a”关系。整体部分结构称为组装结构,它们之间的关系是一种“与”关系,或者是“has a”关系。2.1.3类消息和方法 对象之间进行通信的结构叫做消息。在对象的操作中,当一个消息发送给某个对象时,消息包含接收对象去执行某种操作的信息。发送一条消息至少要包括说明接受消息的对象名、发送给该对象的消息名(即对象名、方法名)。一般还要对参数加以说明,参数可以是认识该消息的对

31、象所知道的变量名,或者是所有对象都知道的全局变量名。类中操作的实现过程叫做方法,一个方法有方法名、参数、方法体。2.1.4面向对象的定义 简单的说,面向对象设计是一种把重点放在数据(对象)和对象接口上的编程技术从根本上说,只要对象能够满足你的需求,就不必关心它的功能到底如何实现。在面向对象程序设计(OOP)中,唯一关心的就是对象的外在表现2.1.5OOP词汇表类:class实例:instance封装:encapsulation实例字段:instance field方法:method状态:state扩展:extend根超类:cosmic superclass继承:inheritance(通过扩展

32、一个类来获得新类)课后练习面向对象的定义?面向对象和面向过程的区别,请举例说明?面向对象的两个注意点?2.2类与封装2.2.1 类与对象2.2.2 对象的创建、使用,比较2.2.3 匿名对象2.2.4 类设计2.2.5 实现类的封装性2.2.6 构造方法2.2.7 This引用2.2.8 方法的重载2.2.1类与对象类:类就是对某一事务的描述,是抽象的、概念上的定义,如:汽车设计图对象:对象是实际存在的该类事务的个体,也称为实例(instance),如:按汽车设计图设计出来的每一辆汽车2.2.1类与对象类可以将数据和方法封装在一起,数据表示类的属性,方法表示类的行为Class 类名成员属性(成

33、员变量)成员方法2.2.1类与对象关于成员变量和局部变量同名的问题class Personint age;void shout()int age=60;System.out.println(“my age is”+age);2.2.2对象的创建、使用,比较对象的创建:类名 对象名=new 类名();例:Person p=new Person();变量p是person对象的一个应用,在栈内存中通过new关键字创建的person对象在堆内存中2.2.2对象的创、使用,比较对象的使用:对象.属性对象.方法()例:class TestPersonpublic static void main(Stri

34、ng args)Person p1=new Person();Person p2=new Person();p1.age=18;p1.shout();p2.shout();2.2.2对象的创建与使用对象只能在其有效的生命周期内被使用:当离开对象所在的代码块后,对象就会变成垃圾设置对象的引用为null,对象也会变成垃圾2.2.2对象的创建、使用,比较对象的比较有两种方式比较对象,即和equals()方法用于比较引用是否指向同一个对象equals()用于比较两个对象的内容是否一致2.2.3匿名对象未指定应用的对象即匿名对象Person p=new Person();p.shout();new Pe

35、rson().shout();用匿名对象改写刚才的程序2.2.3匿名对象使用匿名对象的两种情况如果一个对象只需要进行一次方法调用,那么可以使用匿名对象将匿名对象作为一个参数传递给一个方法,如:public void getPerson(Person p);getPerson(new Person();2.2.4类设计识别类的一个简单经验就是寻找问题分析中的名词比如:在订单处理系统中有这样一些名词:订单(order)、送货地址(address)、货款(payment)、帐户(account)根据这些名词,我们就可以创建order、address、payment、account等类2.2.4类设计

36、确定类中的方法(函数)通过寻找和名词相关的动词来确定方法比如:物品被添加进订单,订单被运送或取消货款被支付课后练习设计一教学管理系统,要求实现学生信息的管理和课程的管理,请列出所需的类,类的属性及方法2.2.5实现类的封装性封装的定义封装的目的2.2.5实现类的封装性封装的定义将类的成员变量声明为private,再提供一个或多个public方法实现对该成员变量的修改或访问,这种方式称为封装2.2.5实现类的封装性封装的目的隐藏类的实现细节通过定制好的方法访问数据,可以方便地加入控制逻辑,限制对属性的不合理操作(如对数据进行检查)便于修改,增强代码的可维护性2.2.6构造方法构造方法(构造函数、

37、构造器)的定义构造方法特征构造方法为什么类同名构造方法的细节2.2.6构造方法构造方法的定义:是类的一种特殊方法,java中每个类都有构造方法,它的功能是类的实例初始化状态2.2.6构造方法构造方法的特征它具有和类相同的名称它不包含返回值它不能在方法中用return语句返回一个值2.2.6构造方法构造方法为什么和类同名?因为构造方法有java编译器负责调用,编译器必须知道哪个是构造方法,采用与类同名的方式是最简单合理的Person p3=new Person(“Tom”,18);都干了什么1.定义一个Person类型的引用变量p3和一个Person类的实例对象2.调用构造方法,在构造方法内的代

38、码执行前,先对成员变量进行显式初始化,即执行 private String name=unknown;private int age=-1;3.执行构造方法中的代码4.把新创建的Person对象赋给p3引用变量2.2.6构造方法构造方法的几个细节每个java类中至少有一个构造方法关于默认构造方法private修饰的构造方法2.2.7This引用this在类内部表示被构造的类对象本身使用this引用的几种情况2.2.8方法的重载(overload)何为方法重载构造器重载成员方法重载2.2.8方法的重载(overload)方法的重载就是在同一个类中允许同时存在一个以上的同名函数,只要它们的参数个数

39、或类型不同即可。1)方法名相同2)参数必须不同3)返回类型可以相同,可以不相同2.2.8方法的重载(overload)构造方法的重载成员方法的重载课后练习定义一个Person类,在类中定义三个构造器,默认构造器、带name参数的构造器和带name、age参数的构造器(需使用this来调用构造器)编程输出*2.3 static关键字2.3.1 静态属性2.3.2 静态方法2.3.3 static方法的注意点2.3.4 静态代码块2.3.5 单态设计模式2.3.6 理解main方法的语法2.3.1静态属性静态成员变量static String country=“China”;静态成员变量也称作类成

40、员静态成员变量的两种访问方式 类名.成员对象名.成员2.3.1静态属性不能把方法体内的变量声明为staticfun()static int I=0;上诉声明是错误的2.3.1静态属性static变量在类被载入时就存在,被所有的对象实例共享统计产生了多少类的实例对象:class Aprivate static int count=0;public A()count=count+1;2.3.2静态方法静态成员方法也称作类方法使用类名就可以直接调用static方法,不必创建类的实例对象2.3.3static方法的注意点static方法中只能调用同类中的其他static成员(变量或方法),不能访问类中

41、的非静态成员static成员不能以任何方式引用this和super关键字main方法是static的2.3.4静态代码块类中可以使用不包含在任何方法体中的静态代码块,当类被载入时,静态代码块自动被执行,且只执行一次,静态代码块常用来进行类属性的初始化2.3.4静态代码块class StaticCodestatic String coutry;coutry=China;System.out.println(staiccode is loading);2.3.5单态设计模式单态设计模式:采取一定的方式保证在整个软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法2.3.

42、5单态设计模式public class TestSingleprivate static final TestSingle onlyOne=new TestSingle();public static TestSingle getTestSingle()return onlyOne;private TestSingle();2.3.6理解main方法的语法由于Java虚拟机需要调用类的main方法,所以是public的Java虚拟机在执行main方法是不必创建对象,所以该方法是static的Main方法有一个String类型的数组参数,用来保存执行Java命令时传递给所运行的类的参数2.3.6

43、理解main方法的语法public class TestMainpublic static void main(String args)for(int i=0;iargs.length;i+)System.out.println(argsi);使用java TestMain 1 2 3“11 22”运行课后练习写一个程序,统计产生了多少类的实例对象2.4内部类2.4.1 内部类的定义2.4.2 内部类2.4.3 内部类的注意点2.4.4 关于static内部类2.4.5 内部类中的变量名2.4.6 内部类如何被外部类引用2.4.7 方法中的内部类2.4.1 内部类的定义在一个类内部定义的类就是

44、嵌套类,也叫内部类或内置类内部类可以访问嵌套他的类的成员,包括private的成员,但内部类的成员却不能被嵌套它的类直接访问2.4.1 内部类的定义内部类的定义和普通类没什么区别内部类可以被声明为private或protected的2.4.2 内部类class Outerint outer_i=100;void test()Inner in=new Inner();in.display();class Inner/int outer_i=90;void display()System.out.println(display:outer_i+outer_i);2.4.2 内部类class Inn

45、erClassDemopublic static void main(String args)Outer outer=new Outer();outer.test();2.4.2 内部类class Outerint outer_i=100;void test()Inner in=new Inner();in.display();class Innerint y=10;void display()System.out.println(display:outer_i+outer_i);2.4.2 内部类void showy()System.out.println(y);2.4.3内部类的注意点内部

46、类可以访问它的外部类的成员,但内部类的成员只有在内部类的范围之内可知,不能被外部类使用2.4.4 关于static内部类如果用static修饰一个内部类,这个类就相当于一个外部定义的类static内部类中可声明static成员,非static内部类中不能声明static成员static内部类不能使用外部类的非static成员变量2.4.4 关于static内部类class Outerint outer_i=100;void test()Inner in=new Inner();in.display();static class Innervoid display()System.out.pri

47、ntln(display:outer_i+outer_i);2.4.5 内部类中的变量名方法的局部变量、内部类的成员变量和外部类的成员变量同名的情况public class Outerprivate int size;public class Innerprivate int size;2.4.5 内部类中的变量名void display(int size)size+;/display的形式参数this.size+;/Inner类的成员变量Outer.this.size+;/Outer类的成员变量2.4.6 内部类如何被外部类引用class Outerprivate int size=10;p

48、ublic class Innerpublic void display()System.out.println(+size);2.4.6 内部类如何被外部类引用public class TestInnerpublic static void main(String args)Outer outer=new Outer();Outer.Inner inner=outer.new Inner();inner.display();2.4.7方法中的内部类内部类并非只能在类里定义,也可以在几个程序块的范围之内定义内部类。如:在方法中,或在for循环体内2.4.7方法中的内部类class Outerp

49、rivate int outer_i=100;void test()for(int i=0;i1时Sn=110.4.3递归的实例10.5 排序10.5.1 排序的概念10.5.2 排序的实例10.5.1排序概念冒泡排序冒泡排序组要的思想是进行相邻的两个元素之间比较并且交换.有利于利用原有元素在集合中的位置优势.冒泡排序的原则是大的下沉小的上浮46537182第一轮的排序首先比较前两个元素,如果顺序与升序相反则交换,否则什么也不作然后,依次比较第二位与第三位,第三位与第四位,.46537182456371824653718210.5.2冒泡实例10.5.2冒泡实例4536718245367182453617824536178245361728此时,第一轮排序完毕,它能够使最大数沉到最底端.然后进行第二轮的排序.每一轮排序能够确保其最大数沉到相应位置.经过元素个数减一次的排序会生成有序数组.第一轮排序结果课后练习思考题1.在程序中如何灵活运用链表2.冒泡排序如何实现小结10.1 链表10.2 堆栈10.3 队列10.4 递归10.5 排序

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

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

本站为文档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