收藏 分享(赏)

JAVA程序设计17964.doc

上传人:dreamzhangning 文档编号:2768864 上传时间:2018-09-27 格式:DOC 页数:24 大小:926KB
下载 相关 举报
JAVA程序设计17964.doc_第1页
第1页 / 共24页
JAVA程序设计17964.doc_第2页
第2页 / 共24页
JAVA程序设计17964.doc_第3页
第3页 / 共24页
JAVA程序设计17964.doc_第4页
第4页 / 共24页
JAVA程序设计17964.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

1、1江西先锋软件职业技术学院教教 案案院、部: 软件工程学院 教研室: 计算机应用 姓 名: 况嫦娥 职 称: 助教 课程名称: JAVA 程序设计 授课专业: 程序设计开发 学生人数: 授课时间: 2009、9 至 2010、2 学年度 第二 学期教材名称: JAVA 应用教程 编 者 夏文红 出版单位: 清华大学出版社 出版时间 2007.8 2第 1 章 Java 语言概述教学目的与要求:1、Java 语言发展历史2、java 运行机制3、java 程序的构成教学重点:1、java 运行机制2、环境变量的设置3、JAVA 程序的分类教学难点:Java 程序的运行教学课时:6 课时教学过程:

2、1.1 Java 语言的简述1.1.1 Java 语言的诞生1991 年,美国 sun microsystems 公司的 JAME GOSLING 等到人开发了一个名为 OAK 的软件, 1995.5.23 ,Sun 发布了 Java 1.0。1.1.2 Java 语言的主要特点 1. 简单性 2. 平台无关性3. 面向对象的技术4. 支持多线程 5. 动态性 6. 安全性 1.1.3 Java 程序的运行机制 1)Java 虚拟机(Java Virtual Machine)Java 虚拟机(JVM)读取并处理经编译过的平台无关的字节码 class 文件 。32)垃圾收集机制在 C/C+ 等语

3、言中,由程序员负责回收无用内存。Java 语言解除了程序员回收无用内存空间的责任。它提供一种系统级线程跟踪存储空间的分配情况。并在 JVM 的空闲时,检查并释放那些可被释放的存储器空间3)代码安全性检测1.4 Java 运行环境的安装配置 1.4.1 Java 开发工具包版本为 JDK1。5。0, 环境变量的设置在安装 Java 开发工具包 JDK 之后,为了保证 Java 源程序在不同目录下能够正常编译和运行,需要设置环境变量。classpath= .;c:program filesj2sdk1.5.0lib.path= c:program filesj2sdk1.5.0bin 1.5 Ja

4、va 程序的分类 Java 程序分成两类:Application(应用程序)Applet(小程序)1.5.1 Java 应用程序 案例名称:Java Application 程序程序 1-1:TestHelloWorld.javapublic class TestHelloWorld public static void main(String args) System.out.println(“Hello World!“);41)一个简单的 JAVA 应用程序的基本格式有以下几点规定:1.JAVA 程序是无格式的纯文本文件,可以用任何文本编辑器(例如:WORD,写字板)来编写 JAVA 程序

5、.2.JAVA 程序由类构成,一个 JAVA 程序可以有多个类,每个类可以有多个方法,但是最多只能有一个公共类.3.JAVA 程序要保存为以.java 为后缀的文件,文件名必须和公共类的类名相同.4.对于一个应用程序来说,还必须有一个 main()方法,且只能有一个.该方法标志着执行应用程序的起始点.其中关键字 public 表明所有的类都可以调用这个方法,static 表明这是个静态方法.void 表示无返回值.5.任何方法中可以有多条语句6.JAVA 程序中的每条语句都要以分号”;”结束.7. 注释 “/”用于单行注释。注释从“/”开始,终止于行尾。“/*/”用于多行注释。注释从“/*”开

6、始,到“*/”结束。 2)java 程序的编译由 javac 编译器编译源程序,产生字节码文件(.class 文件)。javac 源程序名3)运行程序由 java 解释器解释执行。java 主类名1.5.2 Java Applet 程序 java 程序的另一种形式是 java applet,applet 没有 main()方法,它必须嵌在超文本文件中,在浏览器中进行运行范例名称:Java Applet 程序程序 1-2: Welcome.Javaimport java.applet.*; import java.awt.*;public class Welcome extends Applet

7、 public void paint(Graphics g)g.setColor(Color.red); g.drawString(“欢迎你学习 Java 语言“,30,30);g.setColor(Color.blue);g.drawString(“Java 一定会给带来快乐!“,20,60); 1) java applet 的编译javac 源文件名2) java applet 的运行java applet 程序必须嵌入到 html 文件中才能够执行,因此必须编写相应的 html 文件,保存为 welcome.html5使用浏览器或 JDK 提供的 appletviewer 工具即可运行该

8、 Java 小应用程序 appletviewer welcome.html3)小程序的构成1、Applet 由类构成,且必须有一个是 Applet 的子类称为主类2、Applet 中没有实现 main()方法,可重写其所需方法1.6 Java 语言的面向对象特性 1)对象对象是由一组属性和对这组属性进行操作的一组服务组成2)类类是具有共同属性和行为的对象集合,其内部包括属性和服务两个部分3)类的定义类的定义包括两部分:类声明和类体。基本格式为:/ 语法格式: class 4)对象的声明类名 对象名本章小结本章主要介绍了 Java 语言的特点, Java 运行环境的配置 Java 程序的分类和

9、Java 语言的面向对象特性6第 2 章 Java 语法基础教学目的与要求:1、标识符、分隔符和关键字2、常量和变量3、条件语句循环语句跳转语句教学重点:条件,循环语句,用 if-else,for,while 编制程序教学难点:无教学课时:12 课时教学过程:2.1 标识符、分隔符和关键字 1)标识符2)关键字3)分隔符2.2 常量和变量 常量 :是指直接用于程序中的、不能被程序修改的、固定不变的量变量 :程序执行中数值可变的数据称为变量2.3 Java 的数据类型 1布尔类型-boolean布尔型数据只有两个值 true 和 false,且它们不对应于任何整数值。布尔型变量的定义如:bool

10、ean b=true; 2字符类型-char字符常量:字符常量是用单引号括起来的一个字符,如a,A;3整型数据byte,short, int, long4. 浮点型7float 4 个字节double 8 个字节常量的表示方法: 十进制数形式由数字和小数点组成,且必须有小数点,如 0.123, 1.23, 123.0 科学计数法形式如:123e3 或 123E3,其中 e 或 E 之前必须有数字,且 e 或 E 后面的指数必须为整数。2.4 运算符、表达式和语句 2.4.1 运算符1)算术运算符:+,*,/,%,+,例 2-6 TestArithmetic.java2)关系运算符: ,=,高b

11、yte,short,char- int - long - float - double2)强制类型转换高级数据要转换成低级数据,需用到强制类型转换。这种使用可能会导致溢出或精度的下降,最好不要使用。强制类型转换的格式为(type)变量;2.4.3 语句和块 语句以(;)号表示结束块是一组处在“”和“之间的零条或者多条语句2.4.4 控制流程语句 82.5 条件语句 例 2-9 ifTest.java(2)if 语句的嵌套形式在 if 语句中又包含一个或多个 if 语句称为 if 语句的嵌套。形式如下:if()if();else;elseif();else;例 2-10 ifElse.java2

12、) switch 语句它的一般形式如下:switch (表达式)case 值 1 : 语句 1;break;case 值 2 : 语句 2;break;case 值 N : 语句 n;break;default :缺省语句; 值 1值 N 是常量值,表达式的返回值和值 1N 的类型必须一致。 12.6 循环语句 表 达 式语 句 A F=T表 达 式语 句 表 达 式语 句 (1)if 语句的一般形式 if(条件表达式) 语句组 1; else 语句组 2;91. for 循环 for 语句的语法如下:for(表达式 1; 表达式 2; 表达式 3) 语句块例 2-12 ForLoop.jav

13、a2. while (表达式)语句块例 2-13 WhileLoop.java3. do-while 语句 do 语句块 while (表达式);例 2-14 DoWhileLoop.java2.7 跳转语句 1)break 语句:(1)直接中断当前正在执行的语句,如 switch 语句。(2)跳同它所在的块,主要用于循环语句中,强迫退出循环,使循环终止。如果有标号程序会转移到带有此标号的语句。例 2-15 BreakDemo.java2) continue 语句continue 语句主要用于循环体中,用来结束本次循环或跳转到外层循环中。无标号的 continue 语句结束本次循环,有标号的

14、continue 语句可以选择哪一层的循环被继续执行例 2-16 ContinueDemo.java3) return 语句 用来退出当前的方法return 本章小结 本章作为 Java 程序设计的语言基础,主要介绍了 Java 语言的标识符、分隔符和关键字,常量和变量,基本数据类型,运算符、表达式和语句,控制流程语句。习题 210第 3 章 Java 面向对象程序设计教学目的与要求:1、了解类的声明及构成2、掌握局部变量和成员变量的声明及两者区别3、掌握类的继承教学重点:1、变量,方法的修饰符2、方法的重载教学难点:类的继承教学课时: 教学过程:3.1 类的创建 1)类声明 class 类定

15、义修饰符有: public 和缺省修饰符 abstract :如果一个类被声明为 abstract,那么它是一个抽象的类,所谓抽象类是指此类不能被实例化生成自己的对象 final :如果一个类被声明为 final,意味着它是最终类,不能作为父类被继承,不能再派生出新的子类2)成员变量成员变量的声明方式如下:public | protected | private static final transient volatile type variableName;说明:1、public、protected、private 和缺省修饰符,都是用来限定变量的访问权限2、用 static 说明该变量是

16、一个静态变量,也称类变量,无 static 修饰的变量则称为实例变量113、用 final 说明的变量可以当作一个常量使用3)成员方法成员方法的格式为:方法修饰符 返回值类型 方法名(参数表)方法体 1成员方法修饰符主要有public、protected、private、static 、final、abstract 、 synchronized 这 7 种,前 3 种的访问权限、说明形式和含义已在成员变量中说明,下面仅说明后4 种2用 final 说明该方法是最终方法,指该方法不能被其所在类的子类重载3abstract 被声明为 abstract 的方法不需要实际的方法体,只要提供方法原型接口

17、,即给出方法的名称、返回值类型和参数表4static:用 static 说明方法为静态方法,也称为类方法。在使用这个方法时不需要初始化该方法所在的类。static 类型方法也不能被它的子类所重载。被声明为 static 的类方法在使用时有三点要特别注意:a、类方法的方法体中只能使用类中其它同样是 static 的变量或方法;b、在使用类方法时不需要初始化该方法所在的类;c、类方法不能被子类修改或重新定义。5. synchronized用 synchronized 说明方法是同步方法,主要用于多线程程序设计,控制多个并发线程的同步访问。用于保证在同一时刻只有一个线程访问该方法,以实现线程之间的同

18、步。同步方法是实现资源之间的协调共享的保证方式 例 3-1 public class Testvarible private int i=1;public void method1() int i=4, j=5;this.i = i + j;method2(7);public void method2(int i) int j=8;this.i = i + j;System.out.println(this.i);public static void main(String args) Testvarible t = new Testvarible ();t.method1(); 4)方法重载

19、 是指多个方法享有相同的名字,方法的参数列表必须不一样,这里的不一样可能是个数,类型不一样。重载和方法的返回值无关,返回值可以相同,也可以不同。在同一个类中可以定义多个同名方法。12 例 3-3 5)构造函数 构造函数是一种特殊的成员方法,用于创建这个类的一个新的对象。构造函数方法名与类名相同。除了构造方法,在类中不能出现与类名相同的方法。Java 语言中每个类都有构造函数,用来初始化该类的一个对象。如果一个类没有说明该类的构造方法,则系统将提供隐含的不带任何参数的缺省构造函数.特点:1重载经常用于构造函数2. 构造方法只能由 new 运算符调用3构造方法不能从父类中继承 例 3-4 作三件事

20、:(1) 为对象分配内存空间; (2) 初始化对象中的实例变量的值,初始值可以是缺省值,或者变量按指定的值初始化; (3) 调用该类的某个构造方法6)this 的用法 用于代表当前对象本身,如果局部变量和成员变量同名,用 this 来引用例 3-5class Collegeint a;public static void main(String args)int a=6;College bb=new College();System.out.println(“main().a=“+a);System.out.println(“bb.a=“+bb.call();int call()int a=9

21、;this.a=a+;System.out.println(“call().a=“+a);return this.a; 7)对象在 Java 语言中,一个 Java 对象是类的一个实例,创建一个对象就是创建类的一个实例,对象即类的实例化。一个对象的生命周期包括三个阶段:生成、使用和消除。1生成1)声明 :type objectName声明并不为对象分配内存空间,而只是分配一个引用空间;对象的引用类似于指针,是 32 位的地址空间2)实例化 :运算符 new 为对象分配内存空间,它调用对象的构造方法,返回引用;一个类的不同对象分别占据不同的内存空间。133) 生成 :执行构造方法,进行初始化;根

22、据参数不同调用相应的构造方法。2.对象的使用通过运算符“.” 可以实现对变量的访问和方法的调用。变量和方法可以通过设定访问权限来限制其它对象对它的访问。调用对象的变量格式:objectReference.variable 对象名.变量名objectReference 是一个已生成的对象,也可以是能生成对象的表达式。例: p.x= 10;tx=new Point( ).x;调用对象的方法格式:objectReference.methodName(paramlist);对象名.方法名(参数表);例如:p.move(30,20);new Point( ).move(30,20);3.对象的清除当不存

23、在对一个对象的引用时,该对象成为一个无用对象。Java 的垃圾收集器自动扫描对象的动态内存区,把没有引用的对象作为垃圾收集起来并释放。System.gc( ); 当系统内存用尽或调用 System.gc( )要求垃圾回收时,垃圾回收线程与系统同步运行。3.2 继承 1.概念:继承(inheritance)的思想就是重用其它类中的方法和属性来创建新类2创建子类:格式:class SubClass extends SuperClass 如果缺省 extends 子句,则该类为 java.lang.Object 的子类。子类可以继承父类中访问权限设定为 public、protected、defaul

24、t 的成员变量和方法。但是不能继承访问权限为 private 的成员变量和方法.3. 成员变量的隐藏和方法的重写我们在子类中定义的成员变量和父类中的成员变量同名时,此时称子类的成员变量隐藏了父类的成员变量。当子类中定义了一个方法,并且这个方法的名字,返回类型,参数个数以及类型和父类的某个方法完全相同时,父类的这个方法将被隐藏,这时我们说重写了父类的方法14例 3-6/父类 Personclass Person String name;int age;int getAge() return age;void setAge(int i)age = i;String getName() return

25、 name;void setName(String str)name=str;public String getInfo() return “Name: “+ name + “n“ +“age: “+ age;/子类 Studentclass Student extends PersonString Univ; /子类添加变量String getUniv() /子类添加方法return Univ;void setUniv(String str) /子类添加方法Univ=str;public String getInfo() /子类覆盖父类方法return “Name: “+ name + “n

26、age: “+ age + “nUniversity: “+ Univ;public class Testovermethodpublic static void main(String args)Student bini = new Student();bini.setAge(19); /调用父类变量和方法bini.setName(“doudou“);bini.setUniv(“Tshinghua University“);System.out.println(bini.getInfo(); /调用子类覆盖后方法153.2.4 关键字 static 1. 用 static 声明的变量为类变量

27、, 在生成每个类的实例对象时,Java 运行时系统为每个对象的实例变量分配一块内存,然后可以通过该对象来访问这些实例的变量。不同对象的实例变量是不同的。而对于类变量来说,在生成类的第一个实例对象时,Java 运行时系统对这个对象的每个类变量分配一块内存,以后再生成该类的实例对象时,这些实例对象将共享同一个类变量,每个实例对象对类变量的改变都会直接影响到其他实例对象.2. 实例变量由对象名调用3. 在类方法中不能引用实例变量,实例方法。 不能使用 super、this 关键字,不能被子类重写。 例 3-7 class Student private int id;public static in

28、t grade= 1;public Student () grade +;id = grade;class OtherClass public static void main(String args) Student. grade = 1;System.out.println(Student. grade);Student c = new Student ();System.out.println(Student. grade);/System.out.println(c. id);例子 3-8class Student private int id;private static int g

29、rade = 0;public static int getGradeStudent () return grade;16public Student () grade +;id = grade;class Teststudentpublic static void main(String args) System.out.println(Student. getGradeStudent ();Student s1 = new Student ();System.out.println(Student. getGradeStudent ();3.2.5 关键字 final 和 abstract

30、 教学目的与目标:1、理解 final 的用法2、理解的 abstract 用法教学重点与难点:1理解的 abstract 用法教学方法和手段1、以讲授为主,以案例为辅。2、使用先锋电子教室多媒体手段进行教学 教学过程及详细内容:1. final 的用法final 标记的类不能被继承。Final class pfinal 标记的方法不能被子类重写。final 标记的变量(成员变量或局部变量)即成为常量,只能赋值一次。final 标记的成员变量必须在声明的同时或在每个构造方法中显式赋值,然后才能使用。应用案例见例 3-9。2.abstract 的用法 如果一个类在声明时被关键字 abstract

31、 所修饰,说明该类不能直接创建对象,这样的类被称为抽象类1)如果一个方法在声明时被关键字 abstract 所修饰,那么该方法被称为抽象方法。抽象方法只允许声明,不允许实现2)抽象类必须产生子类,由子类创建对象例 3-10 abstract class Person abstract void homeplace(String home );17public void age(int age )System.out.println(“This persons age is “+age);class Student extends Personvoid homeplace(String home

32、 )System.out.println(“This persons homeplace is “+home);class Testpublic static void main( String args )Student Bob = new Student ( );Bob.homeplace(“BeiJing City“);Bob.age(23);3.super 的用法在子类中隐藏了父类的成员变量或覆盖了父类的方法后,常常还需要调用父类中被隐藏的变量和被覆盖的方法,这是就需使用关键字 super 来访问父类的变量和方法。关键字 this 用来引用当前对象,而关键字 super 用来引用当前对

33、象的父类super 的使用可以分为下面三种情况: 1)用来访问父类被隐藏的成员变量,如: super.variable 2)用来调用父类中被重写的方法,如: super.Method(paramlist): 3)用来调用父类的构造方法,如: super(paramlist);例 3-11class Animal String hostname;String color;int age;float weight;Animal()Animal(String s, float w)this.hostname=s ; this.weight = w;System.out.println(“My hos

34、tname is “+hostname+“n“ + “My weight is “+weight);void setAge(int i)18this.age = i;void setColor(String st) this.color=st;void setHostname(String str)this.hostname=str; public String getInfo() return “hostname: “+ hostname + “n“ +“age: “+ age;class Dog extends Animalfloat weight;String hostname;void

35、 setHostname(String host) hostname=host;void setWeight(float g)weight = g;Dog( String s, float w, String c)/super(s,w); /调用父类构造函数color =c;System.out.println(“My weight is “+super.weight); /调用父类被隐藏的变量System.out.println(super.getInfo(); /调用父类被覆盖的方法public String getInfo() return “this.Hostname=“+ hostn

36、ame+ “ this.age=“+ age+“ this.Color =“+ color ;class superTestpublic static void main(String args)Dog bini = new Dog(“pipi“, 16.8f, “white“);bini.setAge(2);bini.setColor(“Black“);bini.setWeight(10.5f);bini.setHostname(“Lucky“); System.out.println(“this.weight=“+bini.weight); /调用子类隐藏的变量()System.out.p

37、rintln(bini.getInfo(); /调用子类覆盖的19方法 第三章第五讲 包 ,访问控制教学目的与目标:1、掌握包的创建2、理解 import 语句3、理解访问控制符教学重点与难点:1、理解 import 语句教学方法和手段1、以讲授为主,以案例为辅。2、使用先锋电子教室多媒体手段进行教学 教学过程及详细内容:1、package 语句package 语句作为 Java 源文件的第一条语句,指明该文件中定义的类所在的包。(若缺省该语句,则指定为无名包)。它的格式为:package pkg1.pkg2.pkg3;2、import 语句为使用定义在不同包中的 Java 类,需用 impo

38、rt 语句来引入所需要的类。语法格式:import package1.package2. (classname |*);3、访问控制可以对 Java 类中定义的属性和方法进行访问控制-规定不同的保护等级:ModiferSame ClassSame PackageSubclass Universeprivate Yesdefault Yes Yesprotected Yes Yes Yespublic Yes Yes Yes Yes1)Private:只能为自己所用:例 3-1420class Person private int age;private int weight;int getAg

39、e() return age; /合法void setAge(int i) age = i; /合法private int setWeight(int j)weight = j; /合法return weight;void showWeight()int g=setWeight(160); /合法System.out.println(“本人体重: “+g);public class Look public static void main(String args)Person d = new Person();d.setAge(42); /合法/ d.setWeight(99); /非法/ S

40、ystem.out.println(“本人体重: “+d.weight); /非法/ System.out.println(“本人年龄: “+ d.age); /非法System.out.println(“本人年龄: “+ d.getAge();d.showWeight();2)protected:可为自己、同包、子类所用3)public :可为所有人所用4)default:为自己,同包人所用例 3-16:class Toolvoid display(int a , int b, int c)int k = a + b + c;System.out.println(“the result is

41、:“ + k);String getInfo()return “this is from class Tool“;public class TestTool21public static void main(String args)Tool t = new Tool();t. display(6,7,8);System.out.println(t.getInfo();课后习题:第 8(2) (12)小题第三章第六讲 接口 ,内部类教学目的与目标:1、理解接口的定义2、掌握接口的使用3、了解内部类教学重点与难点:1、接口的使用教学方法和手段1、以讲授为主,以案例为辅。2、使用先锋电子教室多媒体手

42、段进行教学 教学过程及详细内容:1、接口的定义是一种只包含常量和方法的定义特殊的抽象类一个类可以实现多个无关的接口,但必须重写接口中所有的抽象方法2、定义接口public interface 接口名 extends 父接口名列表接口体如: public interface Runner int id = 1;public void start();public void run();public void stop();3、使用接口一个类可以实现接口,格式为:class 类名implements 接口列表那么类必须实现这些接口中的所有方法,修饰符一定为 public 例 3-18interfa

43、ce Runner public void run();interface Swimmer 22public double swim();abstract class Animal abstract public int eat(); class Person extends Animal implements Runner,Swimmer public void run() System.out.println(“in method run!“);public double swim() System.out.println(“in method swim!“);return 3.14;pu

44、blic int eat() System.out.println(“in method eat!“);return 2000;public class TestInterfacepublic static void main(String args)TestInterface t = new TestInterface();Person p = new Person();t.m1(p);t.m2(p);t.m3(p);public String m1(Runner f) f.run(); return “ok!“;public void m2(Swimmer s) s.swim();publ

45、ic void m3(Animal a) a.eat(); 4、内部类在 Java 中,允许一个类的定义位于另一个类的内部,前者称为内部类 Inner class 的名字不能与包含它的类名相同; 一般用在定义它的类或语句块之内,在外部引用它时必须给 出完整的名称。名称不能与包含它的类名相同。 可以使用包含它的外部类的静态成员变量和实例成员变量,也可以使用它所在方法的局部变量。23 可以定义为 abstract。 可以声明为 private 或 protected。 若被声明为 static,就变成了顶层类,不能再使用局部变量。 若想在内部类中声明任何 static 成员,则该内部类必须声明为

46、static例3-19class A private int s=99;public class Bpublic void showOuter() System.out.println(“在外部类 B 中 s=“ + s);public void showInner() s = 100; System.out.println(“在内部类 B 中 s=“ + s);public void look() B b = new B();b.showOuter();public class TestInner public static void main(String args)A a = new A

47、();A.B ab =a.new B(); / 创建一个依赖于 a 而存在的 aba.look ();ab.showInner();例3-20内部类使用外部类的成员应用public class TestInnerOuterprivate int s = 123;public class Innerclassprivate int s = 456;public void mb(int s) System.out.println(s); / 局部变量 sSystem.out.println(this.s); / 内部类对象的属性 sSystem.out.println(TestInnerOuter.this.s); / 外层类对象24属性 spublic static void main(String args)TestInnerOuter Outer = new TestInnerOuter();TestInnerOuter.Innerclass Inner = Outer.new Innerclass();Inner.mb(789); 本课时课后作业:习题第 12 题本章小结 :本章主要介绍了 Java 语言面向对象程序设计的基本理论和概念。首先介绍了 Java 语言面向对象程序设计中的类定义和使用方法,类的继承,包的定义和使用方法,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报