湖南科技职业学院软件职业技术学院
教师课时授课计划
教师姓名: 授课班级: 授课课时:4
课程名称:JAVA程序设计 第 1 课 教学循环号:1
课题
为什么JAVA
各教学环节课时分配
讲授
4 课时
有指导的实践
1 课时
独立实践
1 课时
教学内容
分析客户要求
确定基于Web编程要用的编程语言
重点
分析客户要求
难点
分析客户要求
教具
多媒体
作业
独立实践
授课日期
(校历)
第 周星期 第 节
第 周星期 第 节
第 周星期 第 节
第 周星期 第 节
课后小结
通过本课的学习,学生掌握了:
java是一个纯面象对象的编程语言,具有安全性,平台独立性,高性能,简单性的特征
java不支持多重继承,不支持运算符重载
java支持接口,它是一组抽象方法
详细教学过程附后
详细教学过程:
一、教学目标陈述(5分钟)
二、JAVA编程语言的介绍(25分钟)
1.Java的历史
? Java 为由Sun Microsystems公司开发的 面 向 对 象 编 程 语 言
? Sun Microsystems的 首 席 程 序 员James Gosling,创 建 一 个 新 的语 言Java以克 服C++ 中 的问 题
? Gosling的新 语 言 以C++ 为 主 线, 但 克 服 了C++ 的 缺 陷
2.Java程序分类
? 程序有二类:应用程序和小应用程序
? 应用程序
可任何操作系统提示下执行
它们可以是基于窗口的应用程序或是控制台应用程序
它们比applets有更为安全的特权
它们驻 留 在 本 地 机 器 的硬 盘 上
? Applets
在支持Java的浏览器中执行
它们是基于窗口的
它们只可访问宿主机上资源;它们不可访问被下载计算机上的文件
它们驻 留 在 远 程 计 算 机 上
三、实例分析
1.D.1(45*2分钟)
1、问题陈述
CellGO公司是移动通信领域中全球领先的公司之一。CellGO的客户分布在不同国家。CellGO 要有一个系统,使客户只要按一下键就能得到关于它的产品和模式的信息。它还要一个谈话实用程序,将便于来自任何国家、使用任何操作系统的个人可与它的客户服务中心(Customer Care Centre)的专家交互。此系统应是安全和可靠的。
CellGO 有一个用C++开发的内部使用的系统。他们要尽可能地重用这个程序以减少新应用的开发时间。
此新应用需要在三个月内由现有的C++开发者小组开发出来。
CellGO的技术主管办公室(CTO) 推荐Java 作为所选的语言,因为它满足新应用的所有需求并阐明- “现有的小组将能够尽早地学习这个新的语言,以便减少学习时间和开发时间
CTO 必须向管理层描述选择Java作为新系统的编程语言的合理性
证明Java是其优选的语言
2、确定需求
在世界任何位置的可访问性
客户要一个顾客管理系统,它将使任何国家的各个人能收到CellGO 提供的关于其产品和模式的帮助
没有病毒的系统
系统应很可靠足以防止影响系统的病毒
跨平台应用
客户和商人应能够使用任何类型的操作系统平台
速度
CellGO 要一个计算机化的系统,它能够使客户和商人按一下键就可得到关于它的产品和模式的信息
开发时间
整个应用需在三个月内开发完
3、问题的分析(确定支持需求的Java性质)
Java 是一个Internet 编程语言:
可用Java程序跨网络地访问数据,不管其源平台
Java是安全的 :
由于Java 作了强类型检查,对程序所作的任何变动都标签为错误,且程序将不执行。因此,Java 是安全的
Java 是独立于语言的平台:
Java 编译器把Java 代码编译成被Java 环境 理解的中间字节代码。Java 解释器或任何的Java-使能的 Internet浏览器可执行这些字节代码
由于字节代码的编译过程和浏览器对它的解释,使Java程序可在不同的硬件和操作系统上执行
Java 是高性能的语言:
Java 程序在速度上可与C 和 C++之类基于编译的语言相比较。Java 程序比用其他的基于解释的语言写的程序要快,如BASIC
Java是简单的
Java的语法类似于C++。Java 不支持指 针、多 重 继 承性、goto语句、及运 算 符 重 载
使应用开发周期慢下来的 C++ 特性已在Java 中删去
Java 防止由于不合适的内存用法而引起的错误,程序员不必操纵内存
Java是一个简单的语言,新程序员也可容易地学习它
4、问题验证
Java 与 C++对比
Java 是一个纯面向对象语言,因为Java 中每个语句都写在类内。C++中, main()方法总是写在类外。
Java中,所有的数据类型,除了初等类型外,都是对象。即使初等数据类型也可封装在类内
数据类型
Java 除了C++中有的外,还有二个附加的初等数据类型
byte 数据类型占有一个字节的内存空间,可存储整数
另一个数据类型boolean ,可存储二个布尔值(true 和 false)之一
Java省略了C++中有的pointers 和 structs
Java中,字符数据类型存储Unicode格式的字符,不象C++中8位ASCII格式。 Unicode可存储亚洲语言字母表的 16-位字符格式
Java中数据类型有固定的大小,与所用的操作系统无关
构造
Java中诸如 if...else, while, 和 do...while 构造的表达式都以布尔值为其结果
switch 构造和 for 循环都类似于C++中相应的构造
继承性
Java不支持多重继承
Java 中所有的类都是从 Object 类派生出来的
为继承一个类,你使用 extends 关键字
方法重载
Java允许方法重载,但不支持运算符重载
数组
C++中数组是元素的集合,而Java中数组是实在的对象,因为你可用new 运算符分配内存给数组
Java中检查数组访问以确保其下标落在数组的范围内
语法:
<data_type> []<array_name>;
<data_type> <array_name>[];
上面给出的第一个语法是Java 中惯用的
在声明数组之后,你必须为它分配内存
数组长度存储在变量length中
String 对象
Java中串(String)是一个实在的对象,不象C++那样是一个以空为终结的字符数组
Java 中, String对象是一致的。获取串和访问串的方式对所有系统都是一致的。它们有良定义的编程接口
Java 中 String 对象是可靠的。它们不会引起程序中的内存泄漏
main() 方法
Java 中 main() 方法都在类声明内定义
Java 中main() 方法的用法:
Java 中 main() 方法和它定义的类应声明为public,因为Java运行环境必须访问main()方法以执行程序
main()方法应声明为 static因为此类的任何对象在创建前它必须存在
其命令行参数是String 类型变量– main(String args[])。变元的个数由String类对象确定
执行 Java程序
称为Java 虚拟机 (JVM)的程序执行 Java 程序。JVM 包含运行环境和类加载器
你必须保存带.java 扩展的 Java 源文件。此文件的名应与公共类名一样
当你编译.java文件时,创建了 .class 文件
为编译文件你使用 javac 实用程序。执行 .class文件,你使用此 java 实用程序
例如。为编译和执行Welcome类:
保存文件为Welcome.java
在命令提示处,打入javac Welcome.java <Enter>
在此命令提示处,打入java Welcome <Enter>
包
Java中你使用包来组织相关的类
通过使用import语句,你可在程序中使用 Java 包
包有类似于目录结构的层次结构
import 语句的语法:
包的名后接星号(*)或包中类的名。点 (.) 分割元素
为指出类是包的成员,你使用package 关键字
此包语句必须是import 语句之后文件的第一个语句
访问区分符
Java有四种类型的访问区分符: public, protected, private, and friendly
缺省访问区分符是friendly。你不使用此字,friendly,因为它不是关键字。是表示此缺省区分符的一个口语的术语
Java 中每个声明你必须指出访问区分符
Java 中 protected成员变量和方法对所有的子类和对于同一包中的类是可见的
Java 中friendly成员变量和方法仅在同一包中的类是可见的
废料收集
C++ 中, 你用new 分配内存,用 delete解除内存
Java 中, 你不可删除内存中的对象,因为运行系统为你考虑此事。
废料收集器一直运行并解除不用的内存
抽象类和接口
与C++中 virtual类等价的是Java中abstract类
修饰符abstract用来指出类或方法是抽象的
abstract修饰符的语法:
接口是一组抽象方法。用接口提供了Java 中多重继承的性质
接口可用来实现不相关的类之间的继承关系
结果
看一看Java的性质和它与C++的类似性, 显然,现有的小组将能够容易地学习Java
1.D.2(45分钟)
1、问题陈述
为减少新应用的开发工作量, CellGO有重用用C++写的现有应用的某些类的计划。以下 Customer 类是用C++设计的。用Java重写此代码。
public: Customer()
{
strcpy(customerID,”CID001”);
strcpy(name,”Carol”);
age=29;
}
void displayDetails() {
cout<<” Customer ID is ” <<customerID;
cout<<” Customer Name is ”<<name;
cout<<”Customer age is ”<<age;}
};
void main() {
Customer custObj;
custObj.displayDetails(); }
2、分析解决问题
识别需要改变的数据类型.
结果:
改变所有字符数组为String 对象,因为用 Java时,字符数组说明为String类的对象
识别要用的方法和函数
Java 使用了所有系统资源,如:在System 类帮助下的显示设备和键盘。此类包含处理系统资源所需的 所有方法
out是封装在System 类的一个对象,表示标准的输出设备。此对象包含println()方法
println()方法在屏幕上显示数据
结果:
因为Java 使用 System 类以便与显示和键盘设备接口,用System.out.println()替代cout 对象
用Java 写出此类
保存文件
动作:
保存此文件为Customer.java
3、验证
验证编译此程序没有错误
动作:
在命令提示处,打入javac Customer.java <Enter>
四、指导性练习
1.P.1(45分钟)
1、问题陈述
以下 Dealer类是用C++设计的。用Java重写它.
class Dealer{
char dealerID[10];
char name[20];
char dealerAddress[30];
public: Dealer()
{
strcpy(dealerID[],”DID001”);
strcpy(name,”Carol”);
strcpy(dealerAddress,”21 Rock St., NY, 56417”);
}
void displayDetails()
{
cout<<”Dealer ID is ”<<dealerID;
cout<<”Dealer name is ”<<name;
cout<<”Dealer address is ” <<dealerAddress;
}
};
void main()
{
Dealer dealer;
dealer.displayDetails();
}
2、问题分析
3、验证
四.总结(10分钟)
五.独立实践(45分钟)
布置学生进行独立实践1.MR.1、1.MR.2
根据完成情况进行少量讲解