语言程序设计教案_第1页
语言程序设计教案_第2页
语言程序设计教案_第3页
语言程序设计教案_第4页
语言程序设计教案_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、这样:没讲;这样:有待增加Java 语言教案(javahc :javajava )(本教案参考 10 年上课教案修改而成)erjiao916123456很高兴,大家和我一起学习一种现在比较流行的编程语言java 语言。我叫侯畅,办公室, 在信息学院 214。课前介绍:用途(为什么要学习此本科,它的应用价值):现在用的多的是网络编程,基于 web 的开发,开发大的企业级应用程序。是 JSP,J2EE 程序设计的基础。用处广泛小到的开发,大到美国登陆火星的火星车。学习目标:(学好此门课,是一个长期学习和练习的过程)初步掌握 java 语言和面向对象程序设计的基本思想和思路,能够编写简单的 java

2、 程序。为以后的应用起到抛砖引玉的用作。如何学时分配:4016(计算机专业学时);理学院信息与计算工程 32+16 学时进度一直(较新的类书。近三年?)参考书:不指定参考书,要和课程整体介绍:概述;语言基础及流程、数组、异常处理;面向对象程序设计(类、对象、继承、多态等);常用类使用(String 等);GUI 设计下面开始学习第一章 概述 主要内容Java 语言的发展历史(产生);Java 语言的主要特性 (特点);Java 程序相关问题;Java 程序的开发环境;Java 程序的开发过程第一章 概述(2 学时)一、Java 语言的发展历史1、 1991 年初, sun 公司(当时的 sun

3、,2009 年 sun 被 oracle 公司兼并 74 亿)的 James Gosling的 Green 小组开发了面向数字家电的 Oak 语言开发一个面向家用电器市场的软件Oak 是 java 语言的前身;有心栽花花不开,无心插柳柳成荫(面向家用电器市场的软件竞争激烈的市场中失败,而 java 语言风靡全球)2、1993 年 出现早期的浏览器,www 页面,需要静态-动态(有需求)(没讲)在3、1995 年 成为网络的编程语言Internet 迅猛发展,Java 语言正式问世。被美国著名杂志 PC Magazine 评为 1995 年十大优秀科技之一。寓意,向世人献上一杯热咖啡。到 201

4、0 年 15 年,发展多么迅速,java 语言为性的编程语言是其具有跨平台性。4、1996 年 sun 成了 Javasoft 分公司来发展 javajavaone 成为全世界 java 开发者的盛会。(没讲)5、1998 推出了 Java2 平台(1.2 版本)。性能上有所提高(成熟),而且对 Java 的基本模式进行了完善(功能更完善),并提供了更为丰富的 APIJava 版本变化:1.0;1.1;1.2;1.3;1.4 ;1.5(5.0);6.0Java 的版本划分:JavaJavaSE:java platform standard edition 标准版或标准平台,是其它两个的基础。开

5、发部署桌面、服务器等 java 应用程序。JavaEE: java platform enterprise edition 企业版JavaME: java platform micro edition 微小版,移动设备和设备二、Java 语言的主要特性lll面向对象:一切都是对象简单:易学好用可移植性(平台无关性):程序可在任一安装 JVM 的上运行。(os 变化,处理器升级及系统的变化,均可使系统出现错误,无法运行)ll多线程:支持多线程可靠和安全,分布式三、Java 程序相关问题 Java 程序的运行机制1、计算机的高级编程语言类型:u 编译型:c 语言就是。u 解释型:java 语言有解

6、释部分。以中文与法文的翻译为例:编译型直接翻译;解释型先转为世界语英文。nnJava 语言是两种类型的结合;Java 源程序、字节码文件,码指令。Java 程序相关问题Java 虚拟机llJava 虚拟机在真实中用软件模拟实现的一种抽象的。(Java 虚拟机规范) 区、碎片回收区Java 虚拟机主要由五个部分组成:指令系统、寄存器、栈、Java程序Java APIJava虚拟机操作系统硬件平台l解释和执行 Java 程序编译后产生的字节码Java 程序相关问题Java APIlJava API 是 Java 系统提供的预先定义好的软件组件的集合,它们提供了许多可供程序员调用的常用功能丰富的 A

7、PI 为程序员提供了极大的方便,但也是学习的难点ll 要学会使用 Java API 手册(The Java 2 Platform API Specification )lJava 程序相关问题Java 程序类型Java 应用程序(Java Application)是完整的程序在命令行调用的解释器软件即可运行主类必须有 main 方法,这也是程序的Java 小程序Java Applet是指在客户端运行的 Java 小程序,一般来说客户端是指用户所使用的浏览器Java Servlet是在服务器端执行的 Java 小程序,为了能够支持 Servlet 的运行,服务器端必须安装包含 Java 虚拟机的

8、服务器软件,这种能够支持服务端小程序的服务器一般被称为应用服务器四 Java 开发环境搭建从 Sun上;安装;(安装在 java 目录下)设置环境变量 :方法有三:lll开始运行输入 cmd 或者开始程序附件命令提示符开始设置面板系统高级环境变量电脑右键属性系统特性高级常用命令:javacjavaappletviewer 等Cmd 进入命令提示符:模拟 dos 命令:怎么学习上网搜常用的 dos 命令就可。Cls:清屏。e:;dir;cd;cd ./.;set path=%path%;v JDK/J2SDK(Java Developer Kit)§§§JDK1.0

9、2 JDK1.1.xJDK1.2/J2SDK1.3/J2SDK1.4/JDK5.0(J2SDK1.5)v Java 集成开发环境(IDE)§§§§NetBeans JBuilder Eclipse JCreatorJDK 的安装与设置从可以相关版 本的 JDK(本课程采用 J2SDK1.3 以上版本)在 Windows 平台上运行安装程序,以安装 JDK设置 PATH(文件路径)参数。由于 JDK 提供的实用程序都在安装目录下的子目录 bin 下,为了能在任何目录下直接使用文件名调用这些程序,必须设置操作系统的文件路径参数环境设置JDK 的目录结构

10、16;ØØØbin 目录中包含了所有 JDK5.0 提供的实用程序demo 目录中包含了 JDK5.0 自带的实例程序inculde 目录中包含了一些支持 Java native 方法的 CC+头文件jre 目录中包含了 Java 运行环境所需的所有文件,这个目录中所包含的 java 运行环境是 JDK私有的,它只为 JDK 的实用程序提供支持lib 目录中包含了 Java 开发环境所需的库文件,它们以 jar 文件的形式保存sample 目录中包含的是体现 JDK5.0 新特性的一些例程ØØJDK 实用程序简介javac:Java 编译器,将

11、 Java 源代码编译为字节码; java:Java 解释器,用来解释执行 Java 程序的字节码文件; appletviewer(小程序浏览器):一种执行 HTML 文件上的 Java 小程序类的 Java 浏览器;javadoc:根据 Java 源代码及其说明语句生成的 HTML 文档;jdb:Java 调试器,可以逐行地执行程序、设置断点和检查变量;javah:产生可以调用 Java 过程的 C 过程,或建立能被 Java 程序调用的 C 过程的头文件;javap:Java 反汇编器,显示编译类文件中的可功能和数据,同时显示字节代码含义。五 Java 程序的开发过程编辑源代码 一般情况下

12、,我们可以使用系统平台下的任何文本编辑器进行源代码的编辑,在 Windows 平台下常用的是 Window 系统自带的“记事本”程序或“写字板”程序Java 源码大小写敏感Java 源码文件的扩展名:.javaJava 源程序文件也不能随意命名,其文件名必须与程序中主类的类名完全相同,包括大小写在内public class HelloWorldpublic static void main(String args)/Java 应用程序方法System.out.println("Hello World!"); /向台打印一条信息编译源代码文件使用 JDK 实用程序 javac

13、 对源代码文件进行编译C:MyJava>javac MyFirstJavaApp.java如果系统提示符再次出现并且没有任何消息产生,那么编译便了如果有系统报错消息产生,则表示程序编译出错,程序员必须阅读报错信息,并根据这些信息对程序进行修改程序编译后,在与源代码文件同一目录下会生成一个新的文件,其文件名与源代码文件名相同,扩展名为“.class”。这个文件就是源代码文件编译产生的程序字节码文件MyFirstJava.class运行程序要执行一个 Java 程序非常简单,只需在字节码文件所在目录下输入下列命令就可以了:java 字节码文件名a)Applet:第一个 Applet 程序,开

14、发 Java 小应用的基本步骤:i.ii.编写源代码编译源代码,生成 .class 文件iii. iv.利用文本编辑器编写一个 html 文件运行该程序 appletviewerimport java.awt.*; import java.applet.*;public class ch1_2 extends Applet public void paint(Graphics g) g.setColor(Color.red);g.setFont(new Font("宋体",Font.BOLD,36);g.drawString("My first Applet!&q

15、uot;,25,25);Ch1_2.html<APPLET CODE="Ch1_2.class" width=200 height=200></APPLET>/大写也可以用小写。Appletviewer a.html第二章 语言基础(2 学时)主要内容:注释、关键字、标识符 数据类型、常量、变量、运算符、分割符、表达式1.注释用来说明程序段,增加程序的可读性。 注释的类型:/ 注释一行/* . */ 注释若干行/* . */ 注释若干行,并写入 javadoc 文档java 文档注释:通常这种注释的多行写法如下:/* .* .*/javadoc -d

16、 文档存放目录 -author -version 源文件名.java这条命令编译一个名为 “源文件名.java”的 java 源文件,并将生成的文档存放在“文档存放目录”指定的目录下,生成的文档中 index.html 就是文档的首页。-author 和 -version 两个选项可以省略。例子:author LEIversion 1.10 2005-09-01/*一个例子(文档注释)*/public class SampleDoc/*主方法(文档注释)*/public staticvoid main(String args)System.out.pritnln("文档注释的例子&q

17、uot;);在命令提示符窗口,将当前路径设置到 SampleDoc.java 文件所在目录用如下命令javadoc SampleDoc.java 会生成很多 HTML 文件,打开 index.html 可以看到结果,由/*开头,*/ 结尾的为文档注释会显示到对应位置2.标识符是类、对象、方法、变量和用户定义的数据类型等名字,可任意长,1) 必须以字母、下划线_或美圆符号$开头。2) 后面由字母、下划线_、美圆符号和数字组成的字符串。3) 使用 uniocode 字符集。既包括拉丁字母 abc,也包括汉字日文韩文俄文等其它语言中的文字。4) 不可为关键字。练习:3.关键字Java 中一些赋以特定

18、的含义、并用做专门用途的单词称为关键字。不能作标识符Class public static void extend4.分隔符(1)括号()用来隔开表达式、或表示方法调用。如:y=y*(x+2);abc.finc() main()abstractdoimplementprivatethisbooleandoubleimportprotectedthrowbreakelseinstanceofpublicthrowsbyteextendintreturntransientcasefalseinterfaceshorttruecatchfinallongstatictrycharfianllynat

19、ivesupervoidclassfloatnewswitchvolatilecontinuefornullsynchronizedwhiledefaultifpackage合法标识符标识符TeStHello WorldA11A_booleanbooleanA$CACa#变量String(2) 方括号用来表示一维或数组的下标。如 y=b5; int a=new int1010;(3) 花括号表示复合语句,即一个程序块的开始和结束。在 class 后表示一个类程序块。(4)逗号,用来分隔方法参数中的参数、同一变量连续以及用于逗号表达式等。(5)分号;是句子的终止符,任何合法的 Java 语句后,

20、必须有分号,花括号后没有。5java 的数据类型¡¡Java 是一门强类型语言。即:所有的变量都必须显式类型。分为两大类:基本数据类型(也称为简单类型)和数据类型。¡简单类型指的是一个数、一个字符或者一个 true/false 值。它不提供任何与它们所持有的数据类型相关的行为。Java 有 8 种简单类型。¡整数类型:Java 各整数类型有固定的表数范围和字段长度,而不受具体操作系统的影响,以保证 Java 程序的可移植性 。¡ Java 语言的整型常量默认为 int 型,如:l int i =3;¡ Java 语言整型常量的表示形式

21、:进制前缀或后缀范例十进制数-25、-56八进制数0-0312、-032十六进制数0x-0x25、0x7f长整形-L12L、-34L类型占用空间表数范围byte1 字节-27 27-1 (-128 127)short2 字节-215 215-1 (-3276832767)int4 字节-231 231-1 (-21474836482147483647)long8 字节-263 263-1¡Java 浮点类型有固定的表数范围和字段长度。和整数类型一样,在 java 中,符点类型的范围与无关。¡Java 浮点型常量默认为 double 型,可以直接用数字表示或者在数字后面加 d

22、 或 D 如要一f =个常量为 float 型,则需在数字后面加 f 或 F,如: doubled = 3.14 或 3.14d; 3.14f;float字符型数据用单引号括起来的单个字符(转义符)。在 Java 中,字符类型不能用作整数,因为 Java 中没有无符号整数类型。变量只能为单字符。转义符表:.布尔型数据只有 true(真)和 false(假),长度为 8 位。转义符描述n换行f换页t水平制表b退格单引号”双引号反斜杠r回车类型占用空间表数范围float4 字节-3.403E383.403E38double8 字节-1.798E3081.798E308表数形式组成十进制数字和小数点

23、 .科学记数数字 e(E)整数7.变量是 Java 语言运行中数值可变 的数据,通常<类型><变量名>=初值运算中间结果或保存数据。6.常量程序运行中不可改变的量。共有五种:整形、浮点、布尔、字符和字符串常量。 可使用 final 定义, 如final double PI=3.1415926vvv你可以在任意范围里将一个变量定义为最终变量(final) 最终变量的值一经初始化就不能改变类似于 C 语言中的常量(const)8. 运算符是用来对变量和其他对象进行运算操作的符号。分为四类:算术操作、位操作、关系操作和逻 辑操作。2.算术运算(1)双目运算符注意:1.只有整形

24、数据才能进行取余运算。2.整形除法的结果只截取整数部分。(2) 单目运算符注意,a+和+a 的区别:a+是先进行其他运算后进行单目运算, int x=2;+a 是先进行单目运算。int y=(+x)*3;结果为 x=3,y=9。运算符运算例功能+自增a+或+aa=a+1-自减a-或-aa=a-1-求反-aa=-a运算符运算例功能+加a+b求 a 与 b 相加的和-减a-b求 a 与 b 相减的差*乘a*b求 a 与 b 相乘的积/除A/b求 a 除以 b 的商%取余a%b求 a 除以 b 所得的余数int y=(x+)*3;3.关系运算结果为 x=3,y=6。关系运算的运算结果为步尔型的量:“

25、真”或“假” 3.逻辑运算非简洁运算与简洁运算的区别是:当能够都计算。出表达式结果时,简洁运算运算符右边表达式忽略不执行。非简洁运算运算符两边如:int x=3,y=5;Boolean b=x>y&&x+= =y- - 结果为:x=3,y=5,b=false Boolean b=x>y&x+= =y- -结果为:x=4,y=4,b=false 5.位运算运算符运算例功能位反xx 按位取反>>右移x>>ax 各位右移 a 位<<左移x<<ax 各位左移 a 位>>>不带符号右移x>>

26、>a左边的空位添零运算符运算例功能&非简洁与x&yx,y 为真时结果为真|非简洁或x | yx,y 为假时结果为假!取反!x与 x 相反异或xyx,y 为真时结果为假&&简洁与x&&yx,y 为真时结果为真| |简洁或x| |yx,y 为真时结果为假运算符功能= =等于!=不等于>大于<小于>=大于等于<=小于等于6 其他运算符+:表示连接符三目条件运算符?: 如:x?y:z若 x=true,则结果为 y;若 x=false,则结果为 z。其他如:<变量 1><运算符>=<变量 2>

27、;,可为:<变量 1>= <变量 1> <运算符> <变量 2>如: x+=ax=x+a如何避免多个运算符带来的问题:l不要在一行中编写太复杂的表达式,也就是不要在一行中进行太多的运算,改成几条语句的 运行对于优先级顺序,也不用刻意去记,有个印象就行如果你实在弄不清这些运算先后关系的话, 就用括号或是分成多条语句来完成你想要的功能l9 表达式表达式是由变量、常量、对象、方法调用和操作符组成的式子。表达式的值是它运算的结果。1.赋值和强制类型转换<对象或变量>=<表达式>;如:k=i+j+5;myString=Mydoubl

28、e.toString();类型转换时,短数据转化为长数据时,可不做显式类型转换说明;长数据转化为短数据时,必须做 显式类型转换说明。如:byte MyByte=10;intMyInteger =-1; MyInteger = MyByte;MyByte = (byte)MyInteger;十进制二进制补码x<<2x>>2x>>>23000011110011110000000011100000111-1711101111101111001111101100111011¡¡¡表达式是运算符和操作数的结合,它是任何一门编程语言的

29、关键组成部分表达式程序员进行数学计算、值的比较、逻辑操作以及进行对象的操作。一些表达式的例子:lllllX X+10Y=x+10 Arr10student.getName()第三章 语句(2 学时)语句的次序有四种:顺序;分支;循环;跳转¡¡¡¡顺序结构语句按书写顺序依次执行。分支结构根据表达式的值执行哪个分支。循环结构在一定条件下反复执行一段语句。跳转结构满足某个条件时,跳出循环每种语句:语法;流程;例子;注意事项。分支语句If 语句¡ If 语句的基本形式if(布尔表达式)语句区块 1 else语句区块 2¡¡¡

30、;其中 else 分支可选执行流程注意事项:表达式(值只能为 true 或 false);语句(单个语句或复合语句)给出的一个成绩,输出 “通过”或“不及格” If 语句的嵌套¡ 形式:if(布尔表达式 1)if(布尔表达式 2)语句区块 2 elseif(布尔表达式 3)语句区块 3.else语句区块 n+1elseif(布尔表达式 2)语句区块 2 elseif(布尔表达式 3)语句区块 3.else语句区块 n+1¡ 注意事项: else 的匹配(与和它最近的 if 进行匹配,除非用进行强制匹配方式);语句区块条件运算符¡ 一些简单的 if/else 语句,

31、可用条件运算符来替代¡ 一般形式:布尔表达式 1?表达式 2 :表达式 3¡¡else¡m=(x>y)?x :yif (x>y) m=y;m=x;例: a=1; b=2; x=(a>b) ? a : b;Switch 语句¡¡¡解决 if 嵌套语句的问题:嵌套层次多时,可读性低switch 语句 处理多分支选择格式:switch(表达式)case case case值 1:语句区块 1;break; /分支 1值 2:语句区块 2;break; /分支 2值 n:语句区块 n;break; /分支 n de

32、fault :语句区块 n+1;/分支 n+1¡¡注意:表达式的值必须是整形(但不能是 long 型)或字符型。例 3-3循环语句While 语句:¡ 语法格式:while(条件表达式)循环体语句¡ 当表达式为真时,执行循环体,然后无条件转移到表达式进行行。;为假时,跳过循环体执¡ 例 3-4:水仙花数是一个三位数,各位数字的立方和就是这个数的本身。如 371=33+73+13, 371 是水仙花数。其中。Math.pow(i,3)是计算i 的三次方。Do。while 语句¡ 语法形式为:do循环体的若干语句 while(条件表达式)

33、;¡ do-while 语句与 while 语句很类似,不同的是,首先执行循环体,然后对表达式进行¡ 当表达式为真时,再执行循环体,否则跳过循环体执行。循环体至少执行一次。,¡ 输出满足 1+2+3+n<8888 的最大正整数 例 3-5 For 语句¡ 语法形式为:for(表达式 1;表达式 2;表达式 3)循环体语句¡其中表达式 1,设置初始化循环变量和其他变量;表达式 2,是用来达式 3,用来修改循环变量,改变行循条件。首先由表达式 1 进行初始化,当表达式 2 为真时,执行循环体,然后转移到表达式 3 改变行循环是否结束;表

34、61;循条件,再对表达式 2 进行例 3-6:求 5+55+555例 3-7:输出图形;若为真,继续循环。否则,终止循环体执行。¡¡+前十项 之和11 21 2 31 2 3 41 2 3 4 51 2 3 4 5 61 2 3 4 5 6 71 2 3 4 5 6 7 81 2 3 4 5 6 7 8 9¡ 作业:输出乘法口诀表跳转语句Continue 语句¡ 必须用于循环结构中,有两种形式:1) 无标号 continue 语句,终止当前循环,即略过循环中剩下的语句,重新开始新的循环2) 有标号 continue 语句的形式为continue标号名;标

35、号一般在外层循环语句的前面,终止标记循环Break 语句¡ 作用是完全跳出循环。有带标号和无标号两种形式:1) 无标号 break 语句,从 switch 分支或循环内部跳转出来,执行分支或循环后面的语句。2) 有标号 break 语句的形式为break 标号名;从标号所标识的语句块中跳出来,执行该语句块后面的语句。例 3-8 :求 50 以内的素数第四章 面向对象的编程概念(类 对象和接口)(6 学时) 编程语言的发展自然语言面向对象的语言非OO的高级语言汇编语言语言 语言:电流的通/断,或电位的高/低两种状态整个语言只包含“0”和“1”两种符号离计算机最近,能够直接执行它没有丝毫

36、的形象意义效率最低,并且在编写程序时很容易发生错误汇编语言易于理解和记忆的符号来代替二进制码,用符号程序仍然是一种与具体语言。硬件有关的语言,是一种面向的语言,因此也称为符号化的高级语言§§§以功能为组织单元通过数据结构来描述具体的问题数据在功能(函数)之间以参数的形式被传送与具体指令系统无关、表达方式接近自然语言的计算机语言具有一定涵义的数据命名和人们容易理解的执行语句,了细节,使得人们在书写和阅读程序时可以到程序所描述的具体事物。结构化程序设计中,把程序概括为如下的公式:程序=数据结构+算法面向对象的语言§§§§用类 c

37、lass 封装数据以及与数据相关的操作用类的继承性来实现类的重用性多态性面向“对象”,由对象提供服务 直接地描述问题域中客观存在的事物(即对象)以及它们之间的关系。客观事物(问题域)计算机(硬件)语言的鸿沟 程序描述为公式:程序=对象+消息 能够比较直接地反映客观世界的本来面目,并且使软件开发用的一般思维方法来进行软件开发 与自然语言之间的差距最小能够运用人类认识事物所采人们在认识世界的过程中,运用分类、抽象、封装、继承等原则对客观世界产生了正确、扼要的认识面向对象之所以有这么大的生命力就是运用了这些原则,把它们加到程序设计中,让人用另一种眼光对待编程。OOP 力图使对计算机语言中对事物的的描

38、述与现实世界中该事物的本来面目尽可能的一致Java 语言是面向对象语言下面看一下现实世界和计算机世界实体和类与对象的对应关系本节内容:类和对象的概念;定义类;创建对象;数据成员;成员方法。下面看一下二 类和对象的概念1类是对一类事物描述,是抽象定义;定义:类是具有相同属性和服务的一组对象的集合,它为属于该类的所有对象提供了统一的抽象的、概念上的描述。 在面向对象的编程语言中,类是一个的程序,它应该有一个类名并包括属性说明(数据)和服务说明(行为特征)两个主要部分2对象是实际存在的该类事物的每个,是类中的一个成员,因而也称实例(instance)。v 现实世界是由对象的v 现实世界中任何实体都可

39、以看作是对象 v 现实世界中的对象有两个共同特征:§ 状态§ 行为 3 类和对象的关系: 类是对象的抽象和概括,对象是类的实例4 例子类:学生抽象属性:数据结构数据值学号班级实例化服务:上课方法名选课执行的操作三 Java 类的定义¡ 语法格式:修饰符 class < class_name(标识符)> <attribute_declarations>属性<constructor_declarations>构造方法<method_declarations>方法¡ 举例:public class Student

40、/定义属性String name; String sex;String grade;int id;void xuanke(String kechenming)输出我选了“”课void shangke(String kechenming)1)属性的:即变量¡ 语法格式:¡ 修饰符type(类型)< 属性名字> =初值 ;¡ 数据成员类型可以是 java 的任何一种数据类型,包括所有基本数据类型和2)方法的数据类型¡语法格式:< 修饰符> <返回类型> <方法名字>(<参数列表>) 方法体内容返回值

41、类型及形式参数可以是任何一种数据类型,若不需要返回数据时,类型写 void ,需要返回值,通过 return 语句返回,方法中 return 语句后的语句不再执行。参数:多个参数用 ,隔开包括局部变量的定义和合法的 java 语句。¡¡¡举例:定义类名位“梯形”的类:4 个 float 的成员变量:上底,下底,高和面积,一个成员方法,计算面积。3) 构造器(Constructor)的¡ 语法:对象:张三静 态 特 征 : 张 三女 200732会计1班动态特征:上课选课<修饰符><类名>( <参数列表> ) <s

42、tatements>¡ 一种特殊方法,它的特殊性主要体现在以下几个方面(1)(3)(4)构造方法的方法名与类名相同。不能对构造方法指定返回类型。(2) 用来创建对象。构造方法一般不能由编程显式地直接调用,由系统自动调用。(5) 构造方法可以重载,即可定义多个具有不同参数的构造方法。(6) 构造方法可以继承,即子类可以继承父类的构造方法。(7) 如果用户在一个定义类中未定义构造方法,系统将为它定义一个缺省的空构造方法。如果用户定义构造方法,系统就不再提供默认的作用:减少对数据成员的赋值操作。方法的重载¡ 指一个类中具有相同方法名的方法¡这些方法的参数必须不同;

43、参数不同指参数的数据类型不同或者参数的个数不同四 对象创建、使用及回收步骤:对象;建立对象;初始化对象1对象格式:类名对象名列表;此时系统只为该变量分配的空间,值为 null,并未创建具体的对象; 对象名表有多个对象名时,用逗号隔开; 确定对象的名称和它所属的类2 建立对象为对象分配空间内存,并获得一个,使该对象成为类的实例vvvnew 操作符通过为新对象分配内存来实例化一个类new 操作符需要一个后缀参数,即构造器的一个调用new 操作符返回一个对它所创建对象的,通常该被赋值给具有适当类型的变量v 如果 new 操作符返回的没有被赋给任何变量,那么当 new 操作符所在的语句执行完后,将无法

44、该对象格式:对象名=new 构造方法( )例如: object_one=new class_name( );此时,类的成员变量被分配内存空间,然后执行构造方法中的语句。没有给初值时,为默认值。对应内存空间由对象名操作管理。返回内存首地址( 象在计算机内存中,有一个叫张三的学生。1 2 可以何为一条语句。3 初始化对象)给对象名。如果你想象力丰富,就可以想¡¡¡¡为对象确定初始状态,即为它的数据成员赋初值通过赋值语句实现 4-1通过构造方法实现 4-2使用默认值当一个对象被创建时,会对其中各种类型的成员变量自动进行初始化赋值。4 使用对象v 对象的使用有两

45、种方式§§操作或者检查它的变量调用它的方法v 要使用对象的实例成员,首先需要得到该对象的首先内存总体分为了 4 个部分,包括 stack segment segment ;、heap segment、code segment 、data其中我们程序中用关键字 new 出来的东西都是存放在 heap segment;程序中的局部变量存放在 stack segment,这些局部变量是在具体方法执行结束之后,系统自动内存(而 heap segment 中的需要 java回收机制来处理);程序中的方法,是内存中的 code segment 中的,而且是多个对象 共享一个代码空间区域

46、;static 静态变量,需要放在内存中的 data segment 中,栈(stack):是自动分配变量,以及函数调用所使用的一些空间(所谓的局部变量),地址由高向低减少;堆(heap):由malloc,new 等分配的空间的地址,地址由低向高增长。¡ 使用(、操作)对象的属性和方法¡格式:对象名.数据成员名对象名.成员方法名(参数表)参数传递¡¡形式参数;实际参数实参变量是基本数据类型时,对形参变量的数据传递是值传递:只能由实参传递给形参,而不能由形参传递给实参¡实参变量是类型时,对形参变量的数据传递是双向地址传递:此时形参和实参的对象引用

47、指向同一个对象,对形参数据成员的修改会使实参对象的数据成员发生同样的变化class PassValuepublic static void main(String args)System.out.println(x);int x = 5;change(x);public static void change(int x) x = 3;classPassRefint x ;public static void main(String args)PassRef obj = new PassRef();obj.x = 5;change(obj);System.out.println(obj.x);p

48、ublic static void change(PassRef obj) obj.x=3;5 对象的回收-Java 的回收机制的形成;t2=t1;t2 原来分配的内存空间没有成为。(与 c 语言中申请不同)自动收集机制原理:提供一个系统级的线程,。但是收集的时候对象内存分配情况,统计对象内存立即收集, jvm 认为该收集的被的次数,次数为 0 时,就被认为是时候会去收集。比如内存比较少了,或者现在 cpu 比较闲,或者其他的策略,跟 jvm 自身的实现有关系回收能自动内存空间,减轻编程的负担,提高编程效率练习:定义矩形类,三包v引入的§§§:容易找到和使用类避免

49、名称vvv定义:包是一个相关的类和接口的集合,它可以提供保护和名称空间管理。包是一种松散的类的集合,通常把需要在一起工作的类(互相)放入一个包。在 Java 语言程序设计中,通常需要定义许多类;就像利用 “文件夹”把许多文件组织在一起,使硬盘管理的文件更清晰、更有条理一样;Java 利用“包”把一些需要在一起操作的类组织在一起,以便程序员更好地管理操作这些类。vv系统自动建立“无名包”,也就是默认包或缺省包在缺省情况下,系统会为每一个(.java)源文件创建一个无名(no name)包,这个源文件中定义的所有类都隶属于这个无名包, 它们之间可以相互非 private(私有)的域或方法;无名包中

50、的类不能被其它包中的类所或复用。缺省包一般只用于临时程序或测试程序.建议在实际系统开发中,为每个类指定有名的包。vvvvvJava 使用文件系统来的名称必须和程序文件所在目录名完全一样(大小写敏感)。如果定义了一个多级结构的包,其结构也必须和文件系统的目录结构完全一致。存放 java 源文件的目录。象文件夹那样把文件组织在一起,使其结构清晰、有条理。1 创建包:使用关键字 package,且必须是.java 的第一个语句。1)语法为:package<top_pkg_name> .<sub_pkg_name> * ;通常为的倒写再加上项目名2)编译时用:javac d 路

51、径名 class_name.java3)包中类的:v 只有公共的包成员可以从定义它们的包外的方法:,要从包外公共的包成员,必须采用以下§§§用成员的限定名导入包成员;导入成员所属的整个包。使用包名、类名前缀:在类名前加上包名前缀。如: p1.teacher t1=new p1.teacher ();加载需要使用的类import p1.teacher ;直接定义: teacher t1=new teacher ();加载整个包 import p1.*;import java.awt.*;v 在使用 import 语句的时候,可以使用通配符一次导入一个包中的所有类,如

52、:import java.util.*;v 这样,我们在使用 java.util 包中的任何类时,就可以直接使用简单类名。需要注意的是,import语句要么导入一个类,要么导入一个完整包。不能使用通配符标记包的子集或多个包,下面 三条语句均无法通过编译:import java.applet.A*; import java.*.*; import java.*.io;2 Java 类库在 Java 系统中,定义好的类根据实现的功能不同,可以划分成不同的集合。每个集合称为一个包,所有包合称为类库¡Java 的类库是系统提供的已实现的标准类的集合,它可以帮助开发者方便、快捷地开发 Java程序有了类库中的系统类,编写 Java 程序时就不必一切从头做起,避免了代码的重复和可能的错误,也提高了编程的效率。站在巨人的肩膀上。一个用户程序中系统标准类使用得越多、越全面、越准确,这个程序的质量就越高¡¡Java 类库中常用的包1.java.lang包含一些 Java 语言的常用功能。类,如 String、Math、Integer、System 和 Thread,提供2.java.awt包含了抽象窗口工具集(abstract window toolkits)的多个类,这些类被用来构建和管理应用程序的图形用户界面

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论