1 JAVA语言教学目标1027.docx
《1 JAVA语言教学目标1027.docx》由会员分享,可在线阅读,更多相关《1 JAVA语言教学目标1027.docx(78页珍藏版)》请在冰豆网上搜索。
1JAVA语言教学目标1027
《JAVA语言程序设计》知识点与教学目标
第一章Java语言概述
序号
知识点
教学目标
1
Java的发展历史
学生能够了解几个JAVA发展史上的几个关键的时间(1995JDK1.0发布;1998年1.2版本,开始称为J2SE,J2EE,J2ME;2004年1.5版本又称为JavaSE,JavaME,JavaEE,2009年Oracle收购Sun公司)
创始人GamesGosling,语言名字的由来(Oak—Java)
2
J2SE的学习层次
学生能够了解本课程的几大部分:
基本语法部分、面向对象对象、应用编程部分
3
Java的领域技术有哪些?
学生能够了解下面的关键字所服务的技术领域:
J2SE、J2ME、J2EE
4
JDKJREJVM的含义
学生了解下面关键字的含义:
JDK——Java开发工具
JRE——Java运行环境
JVM——Java虚拟机
5
JAVA语言的特点
学生能够分析JAVA语言的特点及含义:
简单
平台无关
多线程
6
JAVA应用程序的运行机制
学生能够编写简单的程序,编译并且执行,了解执行的步骤及特点:
.java编译成.class文件,.class文件由JVM解释执行,执行时动态加载代码,执行校验程序。
7
Java程序运行方式分类
JavaApplication——以main()方法为程序入口
Applet——嵌入到浏览器里运行
8
JDK的下载和安装
学生会下载JDK,并且会安装:
下载的网站
安装方式
9
JAVA程序环境的配置(path和classpath)
学生会设置如下环境变量,并且会在DOS命令状态下编译和运行JAVA程序。
path——增加JDK安装目录下的bin文件夹
classpath——.;JDK安装目录下的lib文件夹
10
Java程序开发的基本步骤
学生会编写JAVA源程序,编译并且运行程序:
编写源程序为.java文件
源程序编译为.class文件
运行
11
集成开发环境的配置
(JDK+Eclipse)
学生能配置JAVA集成开发环境:
安装JDK
下载Eclipse(http:
//www.eclipse.org/downloads/),解压,运行eclipse.exe
12
公共类、主方法
学生能理解JAVA源程序的基本结构,以及main方法的作用。
一个源文件中只允许一个公共类
含有main方法的类为主类
13
理解类里main方法的作用
学生理解main方法的作用,能写出main方法的几个限定词:
publicstaticvoid
程序执行的入口
14
给main方法输入字符串参数
学生能够按如下方式输入main方法参数:
命令行下:
javaHelloWorldabcdef…
集成开发环境下,对工程做设置RunConfiguration——Arguments——输入执行参数(Programarguments)
15
简单的JAVA程序(输出字符串)
学生会如下操作:
main方法中输入语句:
System.out.ptintln(“HelloWorld!
”);
16
良好的编程风格
学生在实际编程中,遵循良好的编程风格:
变量起名
缩进
17
调试JAVA程序
学生会通过如下几种方式调试程序,找出程序中的错误:
(1)通过输出信息System.out.print()来查看变量的值
(2)设置断点,DEBUG视图下运行程序,通过查看变量的值,进行调试、纠错
18
初学者常见错误
学生避免如下错误:
(1)公共类名与源文件名不符;
(2)关键字大小写
(3)类的结构不正确
(4)引号、分号等符号全角
(5)语句没有写到方法中
第二章Java语法基础
序号
知识点
教学目标
1
标识符的命名规则
学生记住如下规则,并在实际编程中应用:
用来标识类名、变量名、方法名、接口名、枚举名、数组名、文件名等.
标识符组成:
(1)字母(英文字母或汉字)
(2)数字(3)下划线“_”(4)美元符号“$”;
首字符不能为数字;所有标识符区分大小写;关键字、false、true和null不能作为标识符
2
变量
学生理解变量的含义、种类、作用域,会在程序中定义变量。
含义:
用来存储数据,随着程序的运行而发生改变。
变量的种类:
(1)域成员变量(在类中)
(2)局部变量(在方法中、形参)
变量描述:
(1)变量类型
(2)变量名(3)存储的值
3
常量
学生理解常量的含义、种类,会在程序中定义及使用常量。
(1)常量数值:
100、1323.45、’a’、true、false
(2)局部变量中的常量:
finaldoublePI=3.1415927;
4
从键盘输入数据
学生会从键盘输入数据:
(1)利用Scanner类的对象,方法:
next()、nextLine()、nextInt()、nextDouble()、nextBoolean()等等
(2)BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in)));
br.readline()方法取得字符串数据,再进行格式转换
5
查看API文档
学生能够查看API帮助文档,需要时就查。
先找包,再找类,再找方法
6
初识字符串类
学生能够使用如下方法得到字符串对象的字符和所包含的字符的个数。
charAt(i)——取得索引位置为i的字符
length()——字符串的长度
7
引入包
学生会引用非默认包里的类。
对于非java.lang包的类都要用import来引入
8
数据类型
学生熟记基本数据类型及其特点。
(1)8种基本数据类型:
4种整型(byte、short、int、long)、2种浮点类型(float、double)、char和boolean,它们在内存中占据的空间不同,范围大小不同,有相应的包装类
(2)引用类型数据类型:
基本数据类型之外的数据类型
9
数据类型的精度
学生理解数据类型精度的含义,并记住精度的变化规律。
Java中的基本数据类型所占存储空间大小不同,特定的类型占用的内存空间是固定的,不随操作系统的变化而变化,为JAVA实现平台无关性、可移植性提供了可能;
基本数据类型精度从低到高排序:
byte-short(char)-int-long-float-double
10
自动装箱
学生理解自动装箱的概念,并在程序中加以运用,并看懂别人的程序。
从基本类型转换成Object类型,称之为装箱,该过程由编译器自动完成。
Integerinteger=10;
例中integer指向的是Integer类的实例,该实例的整数值为10。
同样的动作可以适用于boolean、byte、short、char、long、float、double等基本数据类型,分别使用对应的打包类型(WrapperTypes)Boolean、Byte、Short、Character、Long、Float或Double。
Java定义:
在自动装箱时对于值从–128到127之间的值,它们被装箱为Integer对象后,会存在内存中被重用,始终只存在一个对象;而如果超过了从–128到127之间的值,被装箱后的Integer对象并不会被重用,即相当于每次装箱时都新建一个Integer对象。
11
自动拆箱
学生理解自动拆箱的概念,并在程序中加以运用,并看懂别人的程序。
从包装类转换成基本类型的操作,称之为拆箱。
该过程由编译器自动完成。
12
数据类型转换
学生掌握数据类型转换的两种方式:
(1)自动类型转换
(2)强制类型转换
13
自动类型转换
学生应把握自动类型转换的条件:
(1)两种类型相互兼容,如均为数值型(整型和浮点型)。
(2)由低精度的数据类型向高精度的类型进行转换(由于不同的数据类型在内存空间中所分配的空间大小是不一样的,这决定了每种数据类型的大小不同,int类型所分配的空间小于double类型,所以int类型的数据可以存储到double类型中,反之则不能自动进行转换)。
14
强制类型转换
学生会进行数据类型的强制转换:
用“(目标类型)原始数据”来进行强制转换,适用于高精度类型向低精度类型的转换,即从大空间向小空间转换,可能发生数据的溢出
15
算术运算符
学生会在编程中使用如下运算符:
+-*/%++---(单目减)
强调:
a++、a--与++a、--a有时不同,前者为先计算,后取值,后者为先取值,后计算
16
关系运算符
学生会在编程中使用如下运算符:
><>=<===!
=instanceof
强调:
==用于判断基本数据类型和引用型数据类型时有不同的表现:
前者为数值是否相等,后者为两者是否指向同一对象,而不去比较两对象的元素值是否相同
17
逻辑运算符
学生会在编程中使用如下运算符:
&&||!
^&|
强调:
&&、||与&、|都可以进行与、或运算,但二者有区别,前者有短路问题,后者没有短路的问题,前者效率更高
18
位运算
学生会在编程中使用如下运算符:
~&|>><<>>>
注意比较:
>>和>>>的区别,前者为带符号的右移(右移时,正数前面补0,负数补1),后者为无符号右移(不管数据为正数还是负数,前者均补充0),可以通过Integer.toBinaryString(inti)来测试。
19
赋值运算符
学生会在编程中使用如下运算符:
=+=-=*=/=%=
20
条件运算符
学生会在编程中使用如下运算符:
intflag=a>b?
1:
2;
21
一维数组
学生会使用一维数值来表示一组变量,并能够进行数组上的各种操作,如赋值,参与运算等。
它是引用型数据类型
声明:
数据类型[]数组名称;或数据类型数组名称[];
分配空间:
变量名称=new数据类型[数组长度];(一旦分配了内存空间,它就有默认数值)
数组长度:
变量名称.length
数组元素:
变量名称[下标]
可以通过Arrays类的:
sort方法对数值型数组进行排序
对排序后的数组利用binarySearch()方法进行查找某项数据的位置;
fill()方法对整个数组进行值的填充;
toString()方法对数组元素的值生成“[,,,,,,]”形式的字符串;
equals()方法判断两数组元素的值是否对应相等;
22
二维数组
学生会使用二维数值来表示一组变量,并能够进行数组上的各种操作,如赋值,参与运算等。
它是引用型数据类型,可以看成是一维数组的数组
声明:
数据类型[][]数组名称;或数据类型数组名称[][];
分配空间:
数组名称=new数据类型[数组长度[数组长度];(一旦分配了内存空间,它就有默认数值)
数组长度:
数组名称.length得到一维数组的长度
数组名称[行下标n].length得到第n行的元素的个数
数组元素:
变量名称[行下标][列下标]
可以通过Arrays类的:
fill()方法对整个数组进行值的填充;
deepToString()方法对数组元素的值生成“[,,,,,,]”形式的字符串;
deepEquals()方法判断两数组元素的值是否对应相等。
23
数组对象间的赋值
学生能够进行数组对象的赋值操作。
用赋值运算符“=”进行操作,并没有创建新的数组对象。
24
数组对象元素内容的复制
学生会进行数组元素的复制:
可以使用如下三种方式之一:
1、用循环来实现:
遍历整个数组,将每个元素的值逐个赋值给另一数组的元素;
2、使用System.arrarycopy()方法
System.arraycopy(源数组,起始索引,目标数组,起始索引,复制长度);
说明:
目标数组要提前定义,复制长度受限帛
3、Arrays.copyOf()、Arrays.copyOfRange()
Arrays.copyOf(源数组,长度)、Arrays.copyOfRange(源数组,起点,终点)
说明:
生成新的数组,长度不受限,原来的数组元素不足的,根据数组类型补充默认值
25
switch语句结构
学生能够利用switch语句编写程序。
使用说明:
(1)只能判断字符类型(char)和整型(int)表达式。
(2)常用于判断等值情况,区间判断仍使用if结构。
(3)根据表达式的值直接指向对应的case,直到遇到break;语句或语句块结束停止。
26
第三章类与对象
序号
知识点
教学目标
1
类的封装
学生理解封装的概念和含义。
将属性及方法相结合,共同体现对象的特性,称之为封装。
属性:
对象所拥有的各种特征。
方法:
对象执行的操作。
2
类的声明
学生理解并能声明、定义类模板:
定义类的时候包含四要素:
类名、属性、方法、构造方法。
类名遵循标识符规定,首字符一般大写;
属性即成员变量,类型取JAVA数据类型之一,分为实例变量和类变量,二者分配空间的时机不同,前者是对象创建时,后者是类加载时;
方法含存取权限、返回值类型、方法名、参数、方法体五元素,方法体由JAVA基本语法部分构成的语句组合而成,方法形数可含不定长参数,方法可以有多种重载形式;
构造方法可以有多种重载形式,方法名与类名相同,参数可以有多种形式,无返回值。
3
对象的创建与使用
学生会操作如何创建对象,理解系统在对象创建时完成的一系列的操作:
对象的创建:
用new类名()或带参数的构造方法来创建对象,在这个过程中,分配成员变量地址,并把各成员变量的地址返回给对象的引用名称,并且分配成员方法的入口地址。
对象的使用:
对象的引用名称.成员变量(或成员方法)
4
对象的生命周期
学生理解对象的生命周期并能在对象创建、对象回收时做一些必要的操作:
对象创建时增加程序代码:
在构造方法中完成;
对象回收时增加程序代码:
在finalize()方法完成。
5
类和对象的关系
学生能理解类与对象的关系:
类是对象的抽象,对象是类的具体化
6
成员变量和局部变量
学生能理解成员变量和局部变量的异同,并在实际编程中会加以运用:
二者数据类型:
取Java中的任一数据类型(基本类型或引用类型)
有效范围不同:
成员变量:
整个类内有效,与出现位置无关
局部变量:
在局部范围内有效,在变量定义之后才能使用,分为以下几种局部变量:
(1)方法形参——在整个方法内有效;
(2)复合语句内——在该复合语句内变量声明之后;(3)循环语句内——在该循环语句内变量声明之后;(4)方法内——在该方法内声明之后。
如果局部变量与成员变量同名,则局部变量有效,成员变量被隐藏,若不想隐藏,可以加“this.”来限定变量。
7
类变量和实例变量
学生能理解成员变量和局部变量的区别,并在实际编程中会加以运用:
成员变量的两种形式。
类变量用static修饰,是所有对象共享,可以由“类名.变量名”的形式来调用,也可以用“对象名.变量名”形式来调用(推荐前者),在类加载时分配内存空间;
实例变量是属于每一个对象的,只能以“对象名.变量名”形式来调用,在用new操作时分配内存空间并赋值。
8
方法参数
学生理解方法传递参数的特点,并注意值传递与地址传递的区别:
参数传值时,将变量的值的备份传给方法的参数。
参数类型若为基本类型,为值传递;参数类型若为引用型数据类型,为地址传递。
9
方法的重载
学生理解方法重载的含义,并在编程时能够加以运用:
方法名称相同,参数个数及类型不同。
返回类型不同,不是重载
10
不定长参数
学生会灵活使用不定长参数完成一定的功能:
JDK5.0以后出现的新功能。
在方法中使用不定长度参数时,声明的不定长参数必须在参数行的最后一个。
声明参数行在类型关键词后加上…,如:
publicintsum(int...nums){……}
其中nums是一个数组,编译器会将参数行的sum(int...nums)解释为sum(int[]nums)。
11
包
学生会使用包管理类,并在使用时引入进来:
将一组相关的类或接口封装在包(package)里,从而更好地管理已经开发的Java代码,包名体现类与接口的目录结构。
12
访问修饰符
学生理解访问修饰符的含义并在实际中会加以运用:
类的封装、信息隐藏是OOP最重要的功能之一,也是使用访问修饰符的原因。
信息隐藏的原因包括:
对任何实现细节所作的更改不会影响使用该类的代码,防止用户意外删除数据。
访问控制符包括:
public、protected、默认、private
位置
private
默认
protected
public
同一个类
是
是
是
是
同一个包内的类
否
是
是
是
不同包内的子类
否
否
是
是
不同包且不是子类
否
否
否
是
13
abstract
学生会定义抽象类和抽象方法,并在子类中重写抽象方法:
该关键字修饰:
类和方法
抽象方法:
提供方法的头部,但不提供方法体,是抽象(abstract)类中的方法;
抽象类:
通常包含抽象方法,不能被用来生成对象,只能被继承扩展,子类继承后实现未完成的抽象方法,否则亦为抽象类。
14
final
可以修饰的元素:
域变量、方法、类
修饰变量:
变量的值不能更新;定义域变量时若未给出初值,可以在构造函数中设置初值;但赋值机会只有一次
修饰方法:
该方法成员无法被子类重写,如:
publicfinalintgetIndex(){returnindex;}
修饰类:
表示要终止被扩展,这个类不可以被其他类继承,如:
publicfinalclassBall{……}
15
static
学生理解关键字的含义,并在编程中能加以运用:
静态的(static)成员变量——类变量
静态的(static)成员方法——类方法
基于类产生的对象,会拥有各自的域成员变量。
而static修饰的成员变量属于类所有,是每个对象实例所共享的域成员。
静态成员的引用方式:
(1)类名称+“.”+域变量/方法
(2)对象名称+“.”+域变量/方法(不推荐使用)
16
this
使用对象的引用名称调用方法时,在方法中的每一个域成员前隐含一个this引用,它指代调用方法的对象。
(1)形式参数名称或局部变量名称与域成员名称相同时,为避免参数或变量覆盖域成员,必须使用this名称来指定;
(2)this还可以带参数,用于调用构造函数,避免直接以构造函数的名称来调用。
第四章类的继承与多态
序号
知识点
教学目标
1
子类与父类
拥有共有属性的一般类作为父类,根据它再编写具有特殊属性的新类,新类继承一般类的状态和行为,并根据需要增加它的状态和行为。
由继承而得到的类称为子类,被继承的类称为父类(超类)。
用关键字extends来实现子类的定义。
2
子类的继承性
子类继承父类的成员作为自己的成员,就好像它们是在子类中直接声明一样,可以被子类的任何实例方法调用。
(1)在同一包中的继承性——继承父类中非private的成员;
(2)不同包中的继承性——继承父类中protected、public成员。
3
子类对象的构造过程
用子类的构造方法创建一个子类的对象时,子类的构造方法总是先调用父类的某个构造方法。
父类中定义的成员变量分配内存空间,同时为成员方法分配入口地址,并把引用传给变量;再为子类定义的成员变量和方法分配空间和入口地址。
由于父类成员的存取权限的限制,在子类中,某些成员没有继承到。
private修饰的成员不能继承;如果父类、子类不在同一包中,友好型的成员也继承不到。
4
成员变量和成员方法的隐藏
子类声明的变量与父类中声明的变量重名,在子类中调用该变量时,父类变量被隐藏(可用super来调用)。
子类声明的方法与父类中相同,在子类中调用该方法时,父类方法被隐藏(可用super来调用)。
5
方法的重写
学生掌握如下要点:
方法的重写发生在父类与子类之间,方法名相同,参数列表相同;返回类型相同或是父类返回类型的子类;子类重写方法的访问权限>=父类被重写的方法。
6
super关键字
(1)在子类的构造方法中通过super关键字可以调用父类的构造方法,但必须位于子类构造方法的第一句;
(2)使用super调用被子类隐藏的成员变量和成员方法。
7
对象的上转型对象
若A是B的父类,Aa=newB();则a是上转型对象
上转型对象特点:
不能操作子类新增的成员(变量和方法);可以访问子类继承或隐藏的成员变量,也可以调用子类继承的方法或子类的重写方法。
注意事项:
不要混淆父类对象、子类对象、上转型对象;可以将上转型对象转换为子类对象;不能将父类对象的引用赋给子类声明的对象。
8
多态
当一个类有很多子类时,并且这些子类都重写了父类中的某个方法。
把子类创建的对象的引用放到一个父类的对象中时,就得到了该对象的一个上转型对象。
该对象在调用这个方法时就可能具有多种形态,即产生不同的行为,即多态。
9
类继承的单一性
Java不支持多重继承,即直接父类只有一个。
如下方式合法:
publicclassBexntendsA{}
如下方法非法:
publicclassBexntendsA1,A2{}
10
接口的定义和使用
100%纯抽象的类。
当不同类别的事物具有同一种行为时,适合用接口。
定义的形式如下:
publicinterfaceAAAA
{publicstaticfinal数据类型名称=初值;
publicabstract数据类型方法名称(参数…);
}(其中着重部分为默认修饰符)
使用接口的好处:
(1)克服了类单继承性的不足;
(2)多态使系统有了很强的可扩展性和可维护性。
11
接口回调
用接口定义的变量来调用实现类重写接口所具体化的方法,能体现方法的多态性。
12
instanceof
表示对象是否为某类的实例的运算符。
设A为父类,B为子类,则运算符运算后具有如下结果:
Aa=newA();Bb=newB();
ainstanceA(true)binstanceB(true)
ainstanceB(false)binstanceofA(true)
13
14
15
第五章异常处理
序号
知识点
教学目标
1
Java异常处理机制
在程序代码执行过程中出现异常后,会按照我们预先制定的处理方法对异常进行处理,异常处理完成后,程序会继续运行下去。
2
Java异常处理——try、catch、finally
try{……可能出现异常的代码}
catch(Exception1e1)
{异常处理代码}
catch(Exception2e1)
{异常处理代码}
finally
{收尾工作的代码,通常对数据库断开连接,关闭输入输出流等}
多重catch语句,定义时要注意异常类之间的继承关系,