java语言实验与课程设计指导知识要点回顾.docx
- 文档编号:13389662
- 上传时间:2023-06-13
- 格式:DOCX
- 页数:31
- 大小:42.79KB
java语言实验与课程设计指导知识要点回顾.docx
《java语言实验与课程设计指导知识要点回顾.docx》由会员分享,可在线阅读,更多相关《java语言实验与课程设计指导知识要点回顾.docx(31页珍藏版)》请在冰点文库上搜索。
java语言实验与课程设计指导知识要点回顾
《Java语言实验与课程设计指导》
各实验知识要点回顾
实验1——Java程序设计基础
1.Java程序文件
Java程序可以划分为JavaApplication和JavaApplet两大类,其开发原理相同,运行环境不同。
Java源程序:
是扩展名为.java的简单文本文件。
Java字节码:
是扩展名为.class的可解释执行的二进制文件。
Java源程序经由Java编译器javac.exe生成字节码文件。
2.JavaApplication程序的构成
JavaApplication即Java应用程序,是用Java语言编写的通过独立的Java解释器来解释运行的完整的桌面应用程序。
结构如下:
publicclass类名//含main方法的主类
{
publicstaticvoidmain(Stringargs[])//必须的main方法,程序运行入口
{
……
}
}
3.JavaApplet的构成
JavaApplet即Java小程序,是用Java语言编写的、嵌入在HTML编写的Web页面中的非独立程序,由Web浏览器内部包含的Java解释器来解释运行。
通过
结构如下:
importjava.applet.Applet;//必须引入Applet类
publicclass类名extendsApplet//该类必须继承Applet类
{
…………
}
相应的HTML文件如下:
4.开发Java程序的基本步骤
编辑源程序→编译生成字节码→解释运行字节码。
Java源程序的编辑:
◆编辑环境:
用TextPad、Edit、记事本或其它IDE均可。
◆编辑方法:
按Java编程规范,按行录入源程序即可。
◆保存方法:
录入完毕,从文件菜单选保存,注意文件后缀为.java。
编译和运行步骤参考第一部分工具的使用。
5.Java中对于标识符的规定
命名规则:
◆标识符可以由字母、数字和两个特殊字符(下划线、美元符号)组合而成;
◆标识符必须以字母、下划线或美元符号开头;
◆Java是区分大小写的语言;
◆应该使标识符能一定程度上反映它所表示的变量、常量、对象或类的意义。
Java中的命名规范:
◆包名:
包名是全小写的名词。
◆类名:
首字母大写,由多个单词合成一个类名时每个单词的首字母也要大写。
例如:
classHelloWorldApp
◆接口名:
命名规则与类名相同。
◆方法名:
往往由多个单词合成,第一个单词通常为动词,首字母小写,中间的每个单词的首字母都要大写。
例如:
balanceAccount,isButtonPressed
◆变量名:
全小写,一般为名词,例如:
length
◆常量名:
基本数据类型的常量名为全部大写。
6.运算符及优先级
表2-1Java的运算符及优先级一览表
优先级
描述
运算符
结合性
1
最高优先级
.[]()
左/右
2
单目运算
-~!
++--强制类型转换符
右
3
算术乘除运算
*/%
左
4
算术加减运算
+-
左
5
位移运算
>><<>>>
左
6
大小关系运算
<<=>>=
左
7
相等关系运算
==!
=
左
8
按位与,非简洁与
&
左
9
按位异或运算
^
左
10
按位或,非简洁或
|
左
11
简洁与
&&
左
12
简洁或
||
左
13
三目条件运算
?
:
右
14
简单、复杂赋值
=运算符=
右
7.if语句
if语句的基本格式:
if(条件表达式)
{
语句块;//if分支,条件表达式为真时执行
}
else
{
语句块;//else分支,条件表达式为假时执行
}
if语句的扩展格式:
if(条件表达式1)
{
语句块1;//条件表达式1为真时执行
}
elseif(条件表达式2)
{
语句块2;//条件表达式2为真时执行
}
elseif(条件表达式n)
{
语句块n;//条件表达式n为真时执行
}
if语句的简化格式:
if(条件表达式)
{
语句块;//if分支,条件表达式为真时执行
}
其他语句块;
另外if语句可以嵌套:
例如:
if(x>y)
if(x>z)
max=x;
else
max=z;
else
if(y>z)
max=y;
else
max=z;
8.switch语句
在处理多个分支时,也可以选择switch语句。
switch语句结构如下:
switch(表达式)
{case判断值1:
语句块1;//分支1
case判断值2:
语句块2;//分支2
……
case判断值n:
语句块n;//分支n
default:
语句块n+1;//分支n+1
}
对switch语句的说明如下:
(1)表达式只能返回这几种类型的值:
int、short和char。
多分支语句把表达式返回的值依次与每个case子句中的值相比较。
如果遇到匹配的值,则执行该case语句块。
(2)case子句中的判断值1~n必须是常量。
(3)当表达式的值与任一case子句中的值都不匹配时,程序执行default后面的语句,default子句可选。
(4)case分支中包含多条语句时,可以不用大括号{}括起。
(5) 与if-elseif结构相比,switch语句在数据类型上受限制。
注意:
一般情况下需要用break语句让流程跳转出来,否则可能达不到希望的结果。
如果没有break语句,当程序执行完匹配的case语句序列后,还会继续执行后面的case语句序列。
9.while语句
该语句的功能是实现条件循环,当条件为真时,重复循环,否则退出循环。
while语句的两种格式:
(1)while(条件表达式)
{
循环体;//若循环体有多行,则必须使用花括号将其括起来。
}
(2)do
{
循环体;
}
while(条件表达式);
第一种格式先判断再执行,第二种格式先执行在判断,第二种格式不管条件是否成立,至少会执行一次。
10.for语句
该语句的功能是实现条件循环,当条件成立时,执行语句集,否则跳出循环体。
for(表达式1;表达式2;表达式3)
{
循环体;
}
说明:
◆表达式1:
初始化参数告诉循环的开始位置,必须赋予变量初值;
◆表达式2:
是用于判别循环停止时的条件。
若条件满足,则执行循环体,否则跳出;
◆表达式3:
增量,主要定义循环控制变量在每次循环时按什么方式变化。
◆三个主要语句之间,必须使用英文的封号;分隔。
◆若执行的语句有多行,则必须用花括号将循环体括起来。
实验2——Java面向对象编程初步
1.类的定义
定义类就是定义类的属性和服务。
类的属性即静态属性,指类内的各项数据;类的服务即成员函数或方法。
语法结构:
[修饰符]class类名[extends父类][implements接口名]//声明类头
{ //类体的内容:
类成员变量的定义
类方法的定义
}
2.方法的定义
方法即成员函数,它规定类属性上的操作,实现类的内部功能,是类与外部交互的窗口。
语法结构:
[修饰符]返回值类型方法名(参数列表)throws例外名1,例外名2,……//声明方法头
{ //方法体的内容:
局部变量声明
语句序列
}
方法的形式参数:
◆定义方法头时所带的参数称为形参,它规定了方法的输入数据,调用时所带的参数称为实参;
◆带多个参数时,要指明各参数的类型,并用逗号把各参数分隔开来;
◆“形实结合”时是按位置顺序一一对应的,否则会引发编译错误;
◆多个同名方法通过所带参数不同(包括:
顺序、类型、个数)而实现多态。
方法的返回值:
◆方法的返回值是方法的输出数据;
◆定义方法头时,通过定义方法返回值类型说明该方法的输出数据类型,用return语句返回确定的数值;
◆方法无返回值时,返回值类型应为void;
◆格式:
return表达式;
3.构造方法(也称构造函数)的定义
构造方法是用来初始化对象(为其所有静态属性赋初值)的一个特殊方法,构造方法名与类名相同,构造方法可以有0个或多个参数。
构造方法的特点:
◆构造方法始终和new关键字一起调用。
◆构造方法没有返回值。
◆构造方法一般不能由编程人员显示地直接调用。
◆在创建一个类的新对象时,系统自动调用构造方法对其进行初始化。
构造方法格式:
构造方法名(参数列表)
{
用来初始化对象的语句;
}
注意:
构造方法定义了几个形式参数,创建对象的语句在调用构造方法时,就需要提供几个类型、顺序一致的实际参数,指明新建对象各域的初始值。
1.访问控制符
访问控制符用来限定类、属性和方法被程序里的其他部分访问和调用。
访问控制符分四类:
◆公共访问控制符public:
修饰类、属性和方法,可以被所有其他类所访问和引用,但对类而言,其中包含的域和方法能否被访问看自身的访问控制符是否也为public,
◆缺省访问控制符:
修饰类、属性和方法,规定该类只能被同一包中的类访问和引用,称之为包访问性;类中的域和方法若也没有访问控制符来限定,则同样具备包访问性。
◆私有访问控制符private:
修饰属性和方法,只能被该类自身所访问和修改,不能被任何其他类(包括子类)获取和引用。
◆保护访问控制符protected:
修饰属性和方法,只能被该类自身与它在同一个包中的其他类、在其他包中该类的子类引用,其主要作用是允许其他包中的它的子类来访问父类的特定属性。
5.静态修饰符static
static是静态修饰符,可修饰属性和方法,包括静态属性、静态方法与静态初始化器。
(1)静态属性
被static修饰的属性不属于任何一个类的具体对象,是公共的存储单元。
任何对象访问它时,取到的都是相同的数值。
静态属性是类属性,当需要引用或修改一个static限定的类属性时,可以使用类名,也可以使用某一个对象名,效果相同。
(2)静态方法
用static修饰符修饰的方法静态方法是属于整个类的方法。
◆调用这个方法时可以直接使用类名做前缀,也可以用某个具体的对象名;
◆该方法属于整个类,它在内存中的代码段随着类的定义而分配和装载;
◆该方法不能操纵属于某个对象的成员变量,即static方法只能处理static属性。
(3)静态初始化器
直接用static当名字、用{}包起来的一段特殊代码。
与构造方法类似,完成初始化工作,但两者的区别是:
◆静态初始化器对该类进行初始化,构造方法对每个新创建的对象初始化;
◆静态初始化器在所属的类加载入内存时由系统调用,构造方法则在产生新对象时由系统自动执行;
◆静态初始化器不是方法,没有方法名、返回值和参数列表。
6.抽象修饰符abstract
abstract修饰符用来修饰类或方法。
(1)抽象类
用abstract修饰的抽象类是没有具体实例对象的类,主要用来实现类之间的继承关系。
使用抽象类的优点就是可以充分利用公共属性来提高开发和维护程序的效率。
(2)抽象方法
用abstract声明的抽象方法仅有方法头而没有具体的方法体,方法体的实现由当前类的不同子类在各自的类定义中完成。
抽象方法只能存在于抽象类中。
7.最终修饰符final
final可用来修饰类、属性和方法。
(1)最终类
用final修饰的最终类不能有子类。
(2)最终属性
用final修饰的最终属性在整个执行过程中都不会变,一般用来修饰常量。
修饰常量时需要说明常量的数据类型和常量的具体取值。
为了节省空间,常量通常还同时被声明为static。
(3)最终方法
用final修饰的最终方法其功能和语句都不能再被修改,即不能被当前类的子类重载。
目的是为了预防不必要的重复定义。
实验3——深入面向对象编程
1.Java的包
在Java中,包以目录形式存在。
定义包的目的是把各种类组织在一起,使得程序功能清楚、结构分明,有利于实现不同程序间类的复用。
缺省情况下,系统会创建一个无名包,无名包中的类不能被其他包中的类引用和复用,为此需要创建有名字的包。
创建包的语法:
package 包名;//必须是整个Java文件的第一个语句
通常一个类只能引用与它在同一包中的类,若要引用其他包的public类,可使用下列方法:
(1)使用包名、类名前缀
使用同一个包中的类,只须加上类名作为前缀;若使用其他包中的类,则还须在类名前缀前加上包名前缀。
例:
javax.swing.JTextFieldjtxtUserID=newjavax.swing.JTextField();
(2)加载需要使用的类
例:
importcard.X1; //程序开始加载其他包的类
publicclassPack
{
publicstaticvoidmain(Stringargs[])
{
X1aa=newX1(4,5);//因类已加载,不需要再使用包名做前缀
aa.show();
}
}
(3)加载整个包
例:
importPhoneCard.*;
importjava.awt.*;
加载整个包后,使用这个包中的类不须再使用包前缀。
2.属性的继承与隐藏
(1)属性的继承:
子类从父类继承属性而不是把父类属性的定义部分复制一遍,可以减少程序维护的工作量。
(2)属性的隐藏:
对子类从父类继承来的属性变量重新加以定义。
即:
子类定义了与父类同名的属性变量,即出现了子类变量对同名父类变量的隐藏。
区别:
◆子类执行继承自父类的操作时,处理的是继承自父类的变量。
◆子类执行它自己定义的方法时,操作的是自己定义的变量,而把继承自父类的变量“隐藏”起来。
3.方法的继承和重写
(1)方法的继承
父类的非私有方法作为类的非私有成员,可以被子类所继承。
(2)方法的覆盖
即子类定义与父类同名的方法,除非使用super关键字或父类名为前缀,否则调用的都是自己定义的方法。
注意:
子类在重新定义父类已有的方法时,应保持与父类完全相同的方法头声明。
(3)方法的重载
即类对自身已有的同名方法重新定义。
方法的重载是同类中同名方法共存的情况,需通过参数列表(包括类型、顺序和数目)来区分不同的方法。
注意:
不能通过方法的返回值来区分同名的不同方法。
4.构造方法的重载
(1)构造方法重载的概念
◆指同一个类中存在着若干个具有不同参数列表的构造方法。
◆出现重载情况时,创建该类对象的语句会自动根据给出的实际参数的数目、类型和顺序来确定调用哪个构造方法来完成新对象的初始化工作。
◆一个类的若干构造方法之间可以通过关键字this来互相调用,目的是最大限度地利用已有程序,提高程序的抽象、封装程度,减少程序维护工作量。
注意:
this语句必须是整个构造方法的第一个可执行语句。
(2)构造方法继承应遵循的原则
◆子类无条件地继续父类的不含参数的构造方法;
◆如果子类自己没有构造方法,则将继承父类的无参构造方法作为自己的构造方法;如果子类自己定义了构造方法,则在创建新对象时,先执行从父类继承来的无参构造方法,然后再执行自己的构造方法;
◆对于父类的含参构造方法,子类可以通过在自己构造方法中使用super关键字来调用它,但这个调用语句必须是子类构造方法的第一个可执行语句。
5.this和super的使用
super和this是用来指代父类对象和子类对象的关键字。
Java系统默认每个类都缺省地具有null、this和super三个量,null代表“空”。
(1)this
this表示的是当前对象本身,代表当前对象的一个引用。
(2)super
代表当前对象的直接父类对象,是当前对象的直接父类对象的引用。
6.异常处理
异常是特殊的错误运行对象,又称例外,对应着Java语言特定的运行错误处理机制。
为了能够及时有效地处理程序中的运行错误,Java引入了异常和异常类,异常是异常类的对象。
异常分为:
系统定义异常和用户自定义异常。
创建用户自定义异常时,一般需要完成如下工作:
(1)声明一个新的异常类,使之以Exception类或其他某个已经存在的系统异常类或用户异常类为父类;
(2)为新的异常类定义属性和方法,或重载父类的属性和方法,使这些属性和方法能够体现该类所对应的错误的信息
异常的抛出:
Java程序在运行时如果由于可识别的错误,系统就产生一个与该错误相对应的异常类的对象,这个过程就是异常的抛出。
(1)系统自动抛出的异常
所有系统定义的运行异常都可以由系统自动抛出。
(2)语句抛出的异常
用户程序定义的异常不可能靠系统自动抛出,必须借助throw语句定义何种情况才算产生了此种异常对应的错误,并抛出这个异常类的新对象。
语法:
修饰符返回类型方法名(参数列表)throws异常类名列表
{ ...
throw异常对象;
...
}
捕捉异常:
异常被抛出时,用专门的语句来接收异常对象,格式如下:
catch(异常类名异常形式参数名)
{
异常处理语句;
}
7.接口
接口又称界面,是由抽象方法和常量组成的特殊类,代表了某一组功能的实现,是用来实现类间多重继承功能的结构。
◆Java中一个类只能有一个父类,但可以同时实现若干个接口,故可以实现类似于类的多重继承的功能。
◆接口仅仅定义对外接口和规范,并没有实现这个功能;功能是在继承了这个接口的类中完成的。
◆接口的访问控制符只有public一个,表明可以被所有的类和接口使用,如果没有此修饰符,则只能被同一个包中的其他类和接口利用。
◆接口也具有继承性,用extends来声明,一个接口可以有一个以上的父接口,之间用逗号分隔。
接口用关键字interface来声明。
语法格式如下:
[public]interface接口名[extends父接口名列表]
{
//常量域说明;
[public][static][final]域类型域名=常量值;
//抽象方法声明
[public][abstract][native]返回值方法名(参数列表)(throw异常列表);}
8.字符串相关类
Java语言中,把字符串作为对象来处理,类String和StringBuffer都可以用来表示一个字符串。
在java中,每个字符(不论中文还是西文)都是占用16个比特的Unicode字符,故都只要一个字符表示。
字符串的常用方法:
(1)求字符串的长度的方法:
publicintlength();
(2)判断字符串的前缀和后缀
publicbooleanstartsWith(Stringprefix);
publicbooleanendsWith(Stringsuffix);
这两个方法分别用来判断当前字符串的前缀和后缀是否为指定的字符子串。
(3)查找字符的方法
publicintindexOf(intch);
从前往后查找字符ch在当前字符串中第一次出现的位置,并返回字符ch出现的位置,若找不到返回-1。
publicintindexOf(intch,intfromIndex);
在当前字符串中自fromIndex位字符之后向后查找。
(4)比较两个字符串
publicintcompareTo(StringanotherString);
若当前字符串与参数字符串完全相同/大于/小于时,则返回0/1/-1。
(5)大小写转换
publicStringtoLowerCase()
//把字符串都转换成小写
publicStringtoUpperCase()
//把字符串都转换成大写
9.日期时间类
Date类:
表示日期和时间
例:
Datenow=newDate();
System.out.println(now.toString());
now.getYear()-m_StartWorkDate.getYear()>=3
10.Math类
用来完成一些常用的数学运算,其主要属性和方法如下:
publicstaticdoubleabs(doublea);//绝对值
publicstaticdoubleexp(doublea);//e的a幂
publicstaticdoublefloor(doublea);//不大于a的最大整数
publicstaticdoublelog(doublea);//自然对数
publicstaticdoublesqrt(doublea);//开平方
publicstaticdoublerandom();//产生0到1之间的随机数
publicstaticdoublepow(doublea,doubleb);//乘方
publicstaticdoublerint(doublea);//四舍五入
publicstaticdoubleIEEEremainder(doublea,doubleb);//求余数(取模运算)
publicstaticfinaldoubleE=2.7182818284590452354//数学常数e
publicstaticfinaldoublePI=3.141592653589779323846//圆周率常量π
publicstaticfloatmin(floata,floatb);//求最小值
publicstaticdoublemax(doublea,doubleb);//求最大值
实验4——基于图形用户界面的JDBC程序开发
1.图形用户界面的用户自定义成分
主要用于美化界面效果。
(1)绘制图形
用Graphics类可以绘制:
线段、矩形、多边形、圆、椭圆、圆弧、扇形。
◆绘制线段
drawLine(x1,y1,x2,y2);
◆绘制矩形
drawRect(x,y,w,h);
fillRect(x,y,w,h);
◆绘制圆角矩形
drawRoun
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 语言 实验 课程设计 指导 知识 要点 回顾
![提示](https://static.bingdoc.com/images/bang_tan.gif)