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

下载本文档

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

文档简介

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

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

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

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

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

6、翻译;解释型先转为世界语英文。n Java语言是两种类型的结合;n Java源程序、字节码文件,机器码指令。 Java程序相关问题Java虚拟机l Java虚拟机在真实机器中用软件模拟实现的一种抽象的机器。(Java虚拟机规范) l Java虚拟机主要由五个部分组成:指令系统、寄存器、栈、存储区、碎片回收区 l 解释和执行Java程序编译后产生的字节码 Java程序相关问题Java APIl Java API是Java系统提供的预先定义好的软件组件的集合,它们提供了许多可供程序员调用的常用功能l 丰富的API为程序员提供了极大的方便,但也是学习的难点 l 要学会使用Java API手册(The

7、 Java2 Platform API Specification )l /j2se/1.5/docs/api/index.htmlJava程序相关问题Java程序类型 Java应用程序(Java Application) 是独立完整的程序 在命令行调用独立的解释器软件即可运行 主类必须有main方法,这也是程序的入口 Java小程序 Java Applet是指在客户端运行的Java小程序,一般来说客户端是指用户所使用的浏览器 Java Servlet是在服务器端执行的Java小程序,为了能够支持Servlet的运行,服务器端必须安装包含Java虚拟机的服务

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

9、DK1.02 JDK1.1.x JDK1.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的目录结构 bin目录中包

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

11、小程序浏览器):一种执行HTML文件上的Java小程序类的Java浏览器;javadoc:根据Java源代码及其说明语句生成的HTML文档;jdb:Java调试器,可以逐行地执行程序、设置断点和检查变量;javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件;javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。五 Java程序的开发过程 编辑源代码 一般情况下,我们可以使用系统平台下的任何文本编辑器进行源代码的编辑,在Windows平台下常用的是Window系统自带的“记事本”程序或“写字板”程序 Java源码大小写敏感Ja

12、va源码文件的扩展名:.javaJava源程序文件也不能随意命名,其文件名必须与程序中主类的类名完全相同,包括大小写在内 public class HelloWorldpublic static void main(String args)/Java应用程序入口方法System.out.println(Hello World!); /向控制台打印一条信息 编译源代码文件 使用JDK实用程序javac对源代码文件进行编译 C:MyJavajavac MyFirstJavaApp.java 如果系统提示符再次出现并且没有任何消息产生,那么编译便成功了 如果有系统报错消息产生,则表示程序编译出错,程

13、序员必须阅读报错信息,并根据这些信息对程序进行修改 程序成功编译后,在与源代码文件同一目录下会生成一个新的文件,其文件名与源代码文件名相同,扩展名为“.class”。这个文件就是源代码文件编译产生的程序字节码文件 MyFirstJava.class 运行程序 要执行一个Java程序非常简单,只需在字节码文件所在目录下输入下列命令就可以了: java 字节码文件名a) Applet:第一个Applet程序,开发Java小应用的基本步骤:i. 编写源代码ii. 编译源代码,生成 .class文件iii. 利用文本编辑器编写一个html文件iv. 运行该程序appletviewerimport ja

14、va.awt.*;import java.applet.*;public class ch1_2 extends Appletpublic void paint(Graphics g)g.setColor(Color.red);g.setFont(new Font(宋体,Font.BOLD,36);g.drawString(My first Applet!,25,25);Ch1_2.html/大写也可以用小写。Appletviewer a.html第二章 语言基础(2学时)主要内容:注释、关键字、标识符 数据类型、常量、变量、运算符、分割符、表达式1.注释用来说明程序段,增加程序的可读性。注释

15、的类型:/ 注释一行 /* . */ 注释若干行 /* . */ 注释若干行,并写入 javadoc 文档java文档注释:通常这种注释的多行写法如下:/* * . * . */javadoc -d 文档存放目录 -author -version 源文件名.java 这条命令编译一个名为 “源文件名.java”的 java 源文件,并将生成的文档存放在“文档存放目录”指定的目录下,生成的文档中 index.html 就是文档的首页。-author 和 -version 两个选项可以省略。例子:author LEI version 1.10 2005-09-01/*一个例子(文档注释)*/pub

16、lic class SampleDoc/*主方法(文档注释)*/public static void main(String args)System.out.pritnln(文档注释的例子);在命令提示符窗口,将当前路径设置到SampleDoc.java文件所在目录用如下命令javadoc SampleDoc.java 会生成很多HTML文件,打开index.html可以看到结果,由/*开头,*/结尾的为文档注释会显示到对应位置2.标识符是类、对象、方法、变量和用户定义的数据类型等名字,可任意长, 1)必须以字母、下划线_或美圆符号$开头。2)后面由字母、下划线_、美圆符号和数字组成的字符串。

17、3)使用uniocode字符集。既包括拉丁字母abc,也包括汉字日文韩文俄文等其它语言中的文字。4)不可为关键字。练习:合法标识符非法标识符TeStHello WorldA11A_booleanbooleanA$CACa#变量String3.关键字Java中一些赋以特定的含义、并用做专门用途的单词称为关键字。不能作标识符Class public static void extend abstractdoimplementprivatethisbooleandoubleimportprotectedthrowbreakelseinstanceof publicthrowsbyteextendin

18、treturntransientcasefalseinterfaceshorttruecatchfinallongstatictrycharfianllynativesupervoidclassfloatnewswitchvolatilecontinuefornullsynchronizedwhiledefaultif package 4.分隔符 (1)括号()用来隔开表达式、或表示方法调用。如:y=y*(x+2); abc.finc() main()(2)方括号 用来表示一维或多维数组的下标。如y=b5; int a=new int1010;(3)花括号 表示复合语句,即一个程序块的开始和结

19、束。在class后表示一个类程序块。(4)逗号,用来分隔方法参数中的参数、同一变量连续声明以及用于逗号表达式等。(5)分号;是句子的终止符,任何合法的Java语句后,必须有分号,花括号后没有。5java的数据类型 Java是一门强类型语言。即:所有的变量都必须显式声明类型。 分为两大类:基本数据类型(也称为简单类型)和引用数据类型。 简单类型指的是一个数、一个字符或者一个true/false值。它不提供任何与它们所持有的数据类型相关的行为。 Java有8种简单类型。整数类型:Java各整数类型有固定的表数范围和字段长度,而不受具体操作系统的影响,以保证Java程序的可移植性 。类 型占用存储空

20、间表数范围byte1字节 -27 27-1 (-128 127) short2字节 -215 215-1 (-3276832767)int 4字节 -231 231-1 (-21474836482147483647)long8字节 -263 263-1 Java语言的整型常量默认为int型,如:l int i =3; Java语言整型常量的表示形式: 进制前缀或后缀范例十进制数-25、-56八进制数0-0312、-032十六进制数0x-0x25、0x7f长整形-L12L、-34L Java浮点类型有固定的表数范围和字段长度。和整数类型一样,在java中,符点类型的范围与机器无关。表数形式组成十

21、进制数字和小数点 .科学记数数字e(E)整数 Java浮点型常量默认为double型,可以直接用数字表示或者在数字后面加d或D如要声明一个常量为float型,则需在数字后面加f或F,如: double d = 3.14或3.14d;float f = 3.14f;类 型占用存储空间表数范围float4字节 -3.403E383.403E38 double8字节 -1.798E3081.798E308 字符型数据用单引号括起来的单个字符(转义符)。 在Java中,字符类型不能用作整数,因为Java中没有无符号整数类型。变量只能为单字符。转义符表:转义符描述n换行f换页t水平制表b退格单引号”双引

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

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

24、为:x=3,y=5,b=falseBoolean b=xy&x+= =y- -结果为:x=4,y=4,b=false5.位运算运算符运算例功能位反xx按位取反右移xax各位右移a位左移x不带符号右移xa左边的空位添零十进制二进制补码x2x23000011110011110000000011100000111-17111011111011110011111011001110116 其他运算符+:表示连接符三目条件运算符?:如:x?y:z若x=true,则结果为y;若x=false,则结果为z。其他如:=,可为:= 如: x+=a x=x+a如何避免多个运算符带来的问题:l 不要在一行中编写太复杂

25、的表达式,也就是不要在一行中进行太多的运算,改成几条语句的运行l 对于优先级顺序,也不用刻意去记,有个印象就行如果你实在弄不清这些运算先后关系的话,就用括号或是分成多条语句来完成你想要的功能9 表达式表达式是由变量、常量、对象、方法调用和操作符组成的式子。表达式的值是它运算的结果。1.赋值和强制类型转换=;如:k=i+j+5; myString=Mydouble.toString();类型转换时,短数据转化为长数据时,可不做显式类型转换说明;长数据转化为短数据时,必须做显式类型转换说明。如:byte MyByte=10; int MyInteger =-1; MyInteger = MyByt

26、e; MyByte = (byte)MyInteger; 表达式是运算符和操作数的结合,它是任何一门编程语言的关键组成部分 表达式允许程序员进行数学计算、值的比较、逻辑操作以及进行对象的操作。 一些表达式的例子:l Xl X+10l Y=x+10l Arr10l student.getName()第三章 语句(2学时)语句的次序有四种:顺序;分支;循环;跳转 顺序结构语句按书写顺序依次执行。 分支结构根据表达式的值判断执行哪个分支。 循环结构在一定条件下反复执行一段语句。 跳转结构满足某个条件时,跳出循环每种语句:语法;流程;例子;注意事项。分支语句If语句 If语句的基本形式if(布尔表达式

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

28、算符来替代 一般形式: 布尔表达式1?表达式2 :表达式3 m=(xy)?x :y if (xy) m=x;else m=y; 例: a=1; b=2; x=(ab) ? a : b; Switch语句 解决if嵌套语句的问题:嵌套层次多时,可读性低 switch语句 处理多分支选择 格式: switch(表达式) case 值1:语句区块1;break; /分支1 case 值2:语句区块2;break; /分支2 case 值n:语句区块n;break; /分支n default : 语句区块n+1; /分支n+1 注意:表达式的值必须是整形(但不能是long型)或字符型。 例3-3循环语

29、句While语句: 语法格式:while(条件表达式)循环体语句 当表达式为真时,执行循环体,然后无条件转移到表达式进行判断;为假时,跳过循环体执行。 例3-4:水仙花数是一个三位数,各位数字的立方和就是这个数的本身。如371=33+73+13,371是水仙花数。其中。Math.pow(i,3)是计算i的三次方。Do。while语句 语法形式为:do循环体的若干语句while(条件表达式); do-while语句与while语句很类似,不同的是,首先执行循环体,然后对表达式进行判断, 当表达式为真时,再执行循环体,否则跳过循环体执行。循环体至少执行一次。 输出满足1+2+3+n8888的最大正

30、整数 例3-5For语句 语法形式为:for(表达式1;表达式2;表达式3)循环体语句 其中表达式1,设置初始化循环变量和其他变量;表达式2,是用来判断循环是否结束;表达式3,用来修改循环变量,改变行循条件。 首先由表达式1进行初始化,当表达式2为真时,执行循环体,然后转移到表达式3改变行循条件,再对表达式2进行判断;若为真,继续循环。否则,终止循环体执行。 例3-6:求5+55+555+55555+前十项 之和 例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

31、作业:输出乘法口诀表跳转语句Continue语句 必须用于循环结构中,有两种形式:1)无标号continue语句,终止当前循环,即略过循环中剩下的语句,重新开始新的循环2)有标号continue语句的形式为continue 标号名;标号一般在外层循环语句的前面,终止标记循环Break语句 作用是完全跳出循环。有带标号和无标号两种形式:1)无标号break语句,从switch分支或循环内部跳转出来,执行分支或循环后面的语句。2)有标号break语句的形式为 break标号名;从标号所标识的语句块中跳出来,执行该语句块后面的语句。例3-8 :求50以内的素数第四章 面向对象的编程概念(类 对象和接

32、口)(6学时)一 编程语言的发展客观事物(问题域)计算机(硬件)语言的鸿沟自然语言面向对象的语言非OO的高级语言汇编语言 机器语言 机器语言: 电流的通/断,或电位的高/低两种状态 整个语言只包含“0”和“1”两种符号 离计算机最近,机器能够直接执行它 没有丝毫的形象意义 效率最低,并且在编写程序时很容易发生错误汇编语言 易于理解和记忆的符号来代替二进制码, 用符号构成程序 仍然是一种与具体机器硬件有关的语言,是一种面向机器的语言,因此也称为符号化的机器语言。高级语言 以功能为组织单元 通过数据结构来描述具体的问题 数据在功能(函数)之间以参数的形式被传送 与具体机器指令系统无关、表达方式接近

33、自然语言的计算机语言 具有一定涵义的数据命名和人们容易理解的执行语句,屏蔽了机器细节,使得人们在书写和阅读程序时可以联系到程序所描述的具体事物。 结构化程序设计中,把程序概括为如下的公式:程序=数据结构+算法面向对象的语言 用类class封装数据以及与数据相关的操作 用类的继承性来实现类的重用性 多态性 面向“对象”,由对象提供服务 直接地描述问题域中客观存在的事物(即对象)以及它们之间的关系。 程序描述为公式:程序=对象+消息 能够比较直接地反映客观世界的本来面目,并且使软件开发人员能够运用人类认识事物所采用的一般思维方法来进行软件开发 与自然语言之间的差距最小人们在认识世界的过程中,运用分

34、类、抽象、封装、继承等原则对客观世界产生了正确、扼要的认识 面向对象之所以有这么大的生命力就是运用了这些原则,把它们加到程序设计中,让人用另一种眼光对待编程。OOP力图使对计算机语言中对事物的的描述与现实世界中该事物的本来面目尽可能的一致Java语言是面向对象语言下面看一下现实世界和计算机世界实体和类与对象的对应关系本节内容:类和对象的概念;定义类;创建对象;数据成员;成员方法。下面看一下二 类和对象的概念1 类是对一类事物描述,是抽象定义;定义:类是具有相同属性和服务的一组对象的集合,它为属于该类的所有对象提供了统一的抽象的、概念上的描述。 在面向对象的编程语言中,类是一个独立的程序单位,它

35、应该有一个类名并包括属性说明(数据)和服务说明(行为特征)两个主要部分 2 对象是实际存在的该类事物的每个个体,是类中的一个成员,因而也称实例(instance)。v 现实世界是由对象构成的v 现实世界中任何实体都可以看作是对象 v 现实世界中的对象有两个共同特征: 状态 行为 3 类和对象的关系: 类是对象的抽象和概括,对象是类的实例4 例子抽象实例化对象:张三静态特征:张三 女 200732 会计1班动态特征:上课 选课数据值执行的操作方法名数据结构类:学生属性:姓名 性别 学号 班级服务:上课 选课 三Java类的定义 语法格式:修饰符 class 属性声明构造方法声明方法声明 举例:p

36、ublic class Student/定义属性String name;String sex;String grade;int id;void xuanke(String kechenming)输出我选了“”课void shangke(String kechenming)1)属性的声明:即声明变量 语法格式: 修饰符 type(类型) =初值 ; 数据成员类型可以是java的任何一种数据类型,包括所有基本数据类型和引用数据类型2)方法的声明 语法格式: () 方法体内容 返回值类型及形式参数可以是任何一种数据类型,若不需要返回数据时,类型写void ,需要返回值,通过return语句返回,方法

37、中return语句后的语句不再执行。 参数:多个参数用 ,隔开 包括局部变量的定义和合法的java语句。举例:定义类名位“梯形”的类:4个float的成员变量:上底,下底,高和面积,一个成员方法,计算面积。3)构造器(Constructor)的声明 语法: ( ) 一种特殊方法,它的特殊性主要体现在以下几个方面 (1) 构造方法的方法名与类名相同。 (2) 用来创建对象。 (3) 不能对构造方法指定返回类型。 (4) 构造方法一般不能由编程人员显式地直接调用,由系统自动调用。 (5) 构造方法可以重载,即可定义多个具有不同参数的构造方法。 (6) 构造方法可以继承,即子类可以继承父类的构造方法

38、。(7) 如果用户在一个定义类中未定义构造方法,系统将为它定义一个缺省的空构造方法。如果用户自己定义构造方法,系统就不再提供默认的作用:减少对数据成员的赋值操作。方法的重载 指一个类中具有相同方法名的方法 这些方法的参数必须不同; 参数不同指参数的数据类型不同或者参数的个数不同 四 对象创建、使用及回收步骤: 声明对象; 建立对象; 初始化对象1声明对象 格式:类名 对象名列表;此时系统只为该引用变量分配引用的空间,值为null,并未创建具体的对象; 对象名表有多个对象名时,用逗号隔开; 确定对象的名称和它所属的类2建立对象为对象分配存储空间内存,并获得一个引用,使该对象成为类的实例v new

39、操作符通过为新对象分配内存来实例化一个类v new操作符需要一个后缀参数,即构造器的一个调用v new操作符返回一个对它所创建对象的引用,通常该引用被赋值给具有适当类型的引用变量v 如果new操作符返回的引用没有被赋给任何变量,那么当new操作符所在的语句执行完后,将无法访问该对象格式:对象名=new 构造方法( ) 例如: object_one=new class_name( );此时,类的成员变量被分配内存空间,然后执行构造方法中的语句。没有给初值时,为默认值。对应内存空间由对象名操作管理。返回内存首地址(引用)给对象名。如果你想象力丰富,就可以想象在计算机内存中,有一个叫张三的学生。1

40、2 可以何为一条语句。 3 初始化对象 为对象确定初始状态,即为它的数据成员赋初值 通过赋值语句实现4-1 通过构造方法实现4-2 使用默认值当一个对象被创建时,会对其中各种类型的成员变量自动进行初始化赋值。4使用对象v 对象的使用有两种方式 操作或者检查它的变量 调用它的方法v 要使用对象的实例成员,首先需要得到该对象的引用首先内存总体分为了4个部分,包括 stack segment 、heap segment、code segment 、data segment ; 其中我们程序中用关键字new出来的东西都是存放在heap segment; 程序中的局部变量存放在stack segment

41、,这些局部变量是在具体方法执行结束之后,系统自动释放内存资源(而heap segment中的资源需要java垃圾回收机制来处理); 程序中的方法,是内存中的code segment中的,而且是多个对象 共享一个代码空间区域; static静态变量,需要放在内存中的data segment中, 栈(stack):是自动分配变量,以及函数调用所使用的一些空间(所谓的局部变量),地址由高向低减少;堆(heap):由malloc,new等分配的空间的地址,地址由低向高增长。 使用(引用、操作)对象的属性和方法 格式:对象名.数据成员名 对象名.成员方法名(参数表) 参数传递 形式参数;实际参数 实参变

42、量是基本数据类型时,对形参变量的数据传递是值传递:只能由实参传递给形参,而不能由形参传递给实参 实参变量是引用类型时,对形参变量的数据传递是双向地址传递:此时形参和实参的对象引用指向同一个对象,对形参数据成员的修改会使实参对象的数据成员发生同样的变化class PassValuepublic static void main(String args)int x = 5;change(x);System.out.println(x);public static void change(int x)x = 3;class PassRefint x ;public static void main(

43、String args)PassRef obj = new PassRef();obj.x = 5;change(obj);System.out.println(obj.x);public static void change(PassRef obj)obj.x=3;5 对象的回收-Java的垃圾回收机制垃圾的形成;t2=t1;t2原来分配的内存空间没有引用成为垃圾。(与c语言中申请释放不同)自动垃圾收集机制原理:提供一个后台系统级的线程,记录对象内存分配情况,统计对象内存被引用的次数,次数为0时,就被认为是垃圾。但是收集的时候不会立即收集, jvm认为该收集的时候会去收集。比如内存比较少了,

44、或者现在cpu比较闲,或者其他的策略,跟jvm自身的实现有关系垃圾回收能自动释放内存空间,减轻编程的负担,提高编程效率练习:定义矩形类,三 包v 引入的原因: 容易找到和使用类 避免名称冲突 控制访问v 定义:包是一个相关的类和接口的集合,它可以提供访问保护和名称空间管理。v 包是一种松散的类的集合,通常把需要在一起工作的类(互相访问)放入一个包。v 在Java语言程序设计中,通常需要定义许多类;就像利用 “文件夹”把许多文件组织在一起,使硬盘管理的文件更清晰、更有条理一样;Java利用“包”把一些需要在一起操作的类组织在一起,以便程序员更好地管理操作这些类。v 系统自动建立“无名包”,也就是

45、默认包或缺省包v 在缺省情况下,系统会为每一个(.java)源文件创建一个无名(no name)包,这个源文件中定义的所有类都隶属于这个无名包, 它们之间可以相互引用非private(私有)的域或方法;v 无名包中的类不能被其它包中的类所引用或复用。v 缺省包一般只用于临时程序或测试程序.v 建议在实际系统开发中,为每个类指定有名的包。 v Java使用文件系统来存储包,包的名称必须和程序文件所在目录名完全一样(大小写敏感)。v 如果定义了一个多级结构的包,其结构也必须和文件系统的目录结构完全一致。 存放java源文件的目录。象文件夹那样把文件组织在一起,使其结构清晰、有条理。1创建包:使用关

46、键字package,且必须是.java的第一个语句。1)语法为:package . * ;通常为域名的倒写再加上项目名2)编译时用:javac d 路径名 class_name.java 3)包中类的引用:v 只有公共的包成员可以从定义它们的包外访问,要从包外访问公共的包成员,必须采用以下的方法: 用成员的限定名引用; 导入包成员; 导入成员所属的整个包。使用包名、类名前缀:在类名前加上包名前缀。如: p1.teacher t1=new p1.teacher ();加载需要使用的类import p1.teacher ;直接定义: teacher t1=new teacher ();加载整个包i

47、mport p1.*;import java.awt.*;v 在使用import语句的时候,可以使用通配符一次导入一个包中的所有类,如: import java.util.*;v 这样,我们在使用java.util包中的任何类时,就可以直接使用简单类名。需要注意的是,import语句要么导入一个类,要么导入一个完整包。不能使用通配符标记包的子集或多个包,下面三条语句均无法通过编译: import java.applet.A*; import java.*.*; import java.*.io;2 Java类库在Java系统中,定义好的类根据实现的功能不同,可以划分成不同的集合。每个集合称为一

48、个包,所有包合称为类库 Java的类库是系统提供的已实现的标准类的集合,它可以帮助开发者方便、快捷地开发Java程序 有了类库中的系统类,编写Java程序时就不必一切从头做起,避免了代码的重复和可能的错误,也提高了编程的效率。站在巨人的肩膀上。 一个用户程序中系统标准类使用得越多、越全面、越准确,这个程序的质量就越高Java类库中常用的包1. java.lang-包含一些Java语言的核心类,如String、Math、Integer、System和Thread,提供常用功能。2. java.awt-包含了构成抽象窗口工具集(abstract window toolkits)的多个类,这些类被用来构建和管理应用程序的图形用户界面(GUI)。3. java.applet-包含applet运行所需的一些类。4. -包含执行与网络相关的操作的类。5. java.io-包含能提供多种输入/输出功能的类。6. java.util-包含一些实用工具类,如定义系统特性、使用与日期日历相关的函数。四 Java源文件的基本结构及命名习惯1Java源文件的基本结构 +例如:package school;import java.util.List;import java.io.*;public clas

温馨提示

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

评论

0/150

提交评论