07网络Java复习提纲.docx
《07网络Java复习提纲.docx》由会员分享,可在线阅读,更多相关《07网络Java复习提纲.docx(20页珍藏版)》请在冰豆网上搜索。
07网络Java复习提纲
第一章java入门
纲要:
java程序的命名规则
java程序开发过程(Application和Applet)
java程序执行过程
习题:
1、程序代码如下
publicclasst1_1{
publict1_1(){
}
}
classt1_2
{
}
1)程序文件应命名为(A)
At1_1.javaBt1_2.javaCt.javaDx.java
2)欲编译以上程序,应在cmd窗口键入()
Ajavact1_1Bjavact1_1.javaCjavat1_2.javaDjavat1_2
3)编译该源程序会生成()文件
A.obj文件B.java文件C.exe文件D.class文件
4)编译生成的文件名为()(不含文件扩展名)
At1_1Bt1_2Ct1_1和t1_2Dt
5)编译生成的文件为和
2、程序如下
publicclasst1_1{
voidmain()
{
System.out.println("成功");
}
}
1)执行该程序,如下说法正确的是()
A无法运行成功
B输出成功
2)以下是java程序入口main方法的是()
Avoidmain(Stringargs[])
{
System.out.println("成功");
}
Bstaticvoidmain(Stringargs[])
{
System.out.println("成功");
}
Cpublicstaticvoidmain(Stringargs[])
{
System.out.println("成功");
}
Dpublicstaticvoidmain(stringargs[])
{
System.out.println("成功");
}
3、程序如下
importjava.awt.*;
importjava.applet.*;
publicclasst1_1extendsApplet{
publicvoidpaint(Graphicsg)
{
g.drawString("hello",0,50);
}
}
1)关于以上程序说法正确的是
A无需编译直接执行
B可用java.exe程序解释执行
C需先编译生成t1_1.class文件,嵌在html文件中由浏览器或者AppletViewer执行
D以上说法均不正确
2)给出以上程序执行之详细步骤,包括html文档
第二章java程序基础
纲要:
java程序结构
java字符界面下输入输出
java图形界面下输入输出
java八种基本数据类型关键字和常量表示形式以及变量定义
java运算符及其使用规则
分支结构
循环结构
解说:
java程序结构
publicclasst_t2{
//变量的定义
类体中只能放变量的定义和函数的定义
publicstaticvoidmain(Stringargs[])
{
方法体中可以放功能语句,不可放方法定义以及类的定义
System.out.println("hello");
}
}
例1类体中只能放变量定义语句和函数定义模块
publicclasst_t2{
变量符值和函数功能调用语句均不可以放在类体中
intx=6;
x=7;
System.out.println("err");
publicstaticvoidmain(Stringargs[])
类t_t2的类体
{
System.out.println("hello");
}
inty=Integer.parseInt("56");
System.out.println("err");
}
java字符界面下输入输出
●输出
System.out.println("hello");
●输入:
System.in.read()
●缓冲输入;
BufferedReaderbin=newBufferedReader(newInputStreamReader(System.in))
Stringstr=bin.readLine();
解释执行时,虚拟机自动调用该类的main方法,从main方法中第一条语句执行到最后一条
例1显示输出“hello”
publicclasst_t2{
publicstaticvoidmain(Stringargs[])
{
System.out.println("hello");//显示输出语句,将要显示的字符串放到println()方法的参数中,即能显示输出
}
}
例2接受用户键盘输入5个整数,寻找最大数
publicclasst_t2{
publicstaticvoidmain(Stringargs[])
{
intinti[]=newint[5];//定义一个整型数组,可存放5个整数
intmax=0;//定义变量max以保存最大数
try{
for(inti=0;i<5;i++)//因为要输入5个数,所以要重复5次
{
BufferedReaderbin=newBufferedReader(newInputStreamReader(System.in));//把System.in(键盘)输入的内容放到缓冲区中以备读取。
Stringstr=bin.readLine();//读取一行内容,以换行符作为结束一行的标志,即在键盘上输入Enter键该函数就会读取一次。
inti[i]=Integer.parseInt(str);//把读取过来的内容转换成整数存放到inti数组中
if(inti[i]>max)max=inti[i];//比较这个值和max的大小,以确保max保存的是最大数值
}
}catch(Exceptione)//如果try中的发生异常则执行{}中语句,否则执行后面的语句
正常
异常
{
e.printStackTrace();
}
System.out.println("max="+max);//5次循环结束都正常,显示输出max值
}
}
java图形界面下输入输出
●输入组件:
文本框JtextField或TextField对象
●输出组件:
标签Label或者Jlabel对象
运用Graphics类方法将输出内容绘制出来
例1:
publicclasst1_1extendsJFrameimplementsActionListener//定义t1_1类用于描述界面,并且该类对象能够处理Action事件
{
JTextFieldjt1;//文本框用于输入
JLabeljl1;//标签用于输出
publict1_1()
{
jt1=newJTextField(6);//把文本框造出来
jl1=newJLabel("输出为");//把标签造出来
this.setLayout(newFlowLayout());//把当前界面的组件布局方式修改为流式布局即按照组件原大小以及组件添加的次序布局
this.add(jl1);//先把标签放到界面上
this.add(jt1);//再把文本框放到界面上
jt1.addActionListener(this);//响音文本框上的action事件
}
publicvoidactionPerformed(ActionEventevt)//Action事件处理方法,内容根据事件处理的需要而写,比如本例在相应文本框Action事件时要把文本框输入的内容放到
{
Stringstr=jt1.getText();//获得文本框中输入的内容
jl1.setText(str);//把内容放到标签上
}
publicstaticvoidmain(Stringargs[])
{
newt1_1().setVisible(true);//创建窗口并显示
}
}
程序执行过程
main()t1_1()
在文本框中按回车时执行actionPerformed()
例2:
publicclasst_t2extendsJFrame{
publict_t2(){
this.setSize(400,300);//设置窗口大小400x300
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置窗口关闭操作
}
publicvoidpaint(Graphicsg)//绘制窗口
{
super.paint(g);//绘制背景
g.drawString("hello",5,50);//绘制字符串
}
publicstaticvoidmain(Stringargs[])
{
newt_t2().setVisible(true);//创建窗口并显示
}
}
程序执行过程
main()t_t2()->paint()
java八种基本数据类型关键字和常量表示形式以及变量定义
整数:
byteshortintlong
小数:
floatdouble
字符:
char
布尔:
boolean
常量:
Ø整数:
数制:
数的计数方式,有十进制、八进制(067)、十六进制(0x67)
类型:
数的存储长度
byte,short,int型常量可以是67,067,0x67,
long型常量一般在数后加l,如67L,056L,0X67L
Ø小数:
科学计数法:
数的表示方式
double型常量:
如4.5,4.5d,4.5D,4.5e-3D,4.5E3d
float型常量:
如4.5f,4.5e-3f
变量
Ø合法标志符:
1.由字母、下划线、美元符号、数字组成
2.数字不能放在第一位
3.不能和关键字相同
例1:
1、下列符号中不能作为Java标识符的是(D)。
(A)abc(B)$str1(C)_pore(D)45six
2、java语言中,整型常数123占用的存储字节数是()。
(A)1(B)2(D)4(D)8
3、java语言中,实型数45.67占用的存储字节数是()。
(A)1(B)2(D)4(D)8
Ø变量赋值
类型自动转换
例2:
Ø类型强制转换
数之间可强制转换,其他类型不可随便强制转换
分支结构
if(条件)语句
else语句
switch(表达式)
{
case值1:
语句组1
case值2:
语句组2
。
。
。
。
default:
语句组n
}
注意:
1)表达式的值必须是byteintshort或char型
2)case后为常值表达式
例1:
试判定以下程序执行结果
inti=1;
switch(i){
case0:
System.out.println("zero");
break;
case1:
System.out.println("one");
case2:
System.out.println("two");
default:
System.out.println("default");
循环结构
while(条件)
{
循环体(每一次所要做的事)
}
do{
循环体(每一次所要做的事)
}while(条件);
for(表达式1;表达式2;表达式3)
{
循环体(每一次所要做的事)
}
例1:
以下由do-while语句构成的循环执行的次数是(B)。
intk=0;
do{++k;}while(k<1);
A.一次也不执行B.执行1次
C.无限次D.有语法错,不能执行
例2:
下列语句序列执行后,k的值是(D)。
intj=8,k=15;
for(inti=2;i!
=j;i++)
{j-=2;k++;}
A.18B.15C.16D.17
第三章类
纲要
类定义
对象实例化
构造函数定义及其使用
修饰符的使用
类定义
关键字:
class
格式:
[修饰符]class类名[extends父类名][implements接口名]
{
属性声明;
方法声明;
}
对象实例化
类名新建对象名=new构造函数(参数);
创建实例对象时必须给出该类构造函数的参数
TextFieldl1=newTextField(“l1”);
构造函数定义及其使用
Ø构造函数名与类名同名,缺省形式:
A(){}
Ø构造函数没有返回类型
Ø构造函数主要是完成对象的初始化工作
Ø构造函数在构造类对象时被系统自动调用执行,不可被显式调用执行
例1:
classjuxing
{
intx;
inty;
intS()
有缺省构造函数
就juxing(){}
{returnx*y;
}
}
juxingj1=newjuxing();
例2:
classjuxing
{
构造函数不可以如此调用
intx;
inty;
intS()
有构造函数
{juxing(5,6) ;
returnx*y;
}
juxing(intx1,inty1)
{
x=x1;
y=y1;
}
}
juxing类中没有形如juxing()的构造函数了
juxingj1=newjuxing(2,3);
juxingj1=newjuxing();
修饰符的使用
Ø访问控制符:
不可混用
public:
所有类
protected:
本类+包中类+子类
private:
本类
缺省:
包中类
Ø其他修饰符
属性修饰符:
A:
访问控制符:
publicprotectedprivate
B:
staticfinalvolatile
1)A中几种修饰符不可同时修饰类的属性
2)B中final与volatile不可共存
方法修饰符:
A:
访问控制符:
publicprotectedprivate
B:
staticfinalnativesynchronizedabstract
类的修饰符:
publicabstractfinal
1)abstract与final不可同时用来修饰类
1)A中几种控制符不可共存
2)abstract与final不可共存
3)abstract与static不可共存
4)abstract与private不可共存
5)abstract与native不可共存
6)abstract方法必须在abstract类中
7)static方法只能处理static属性
例1:
下列哪个类声明是正确的?
A)abstractfinalclassHI{···}B)abstractprivatemove(){···}
C)protectedprivatenumber;D)publicabstractclassCar{···}答:
D
例2:
给出如下代码:
classTest{
privateintm;
publicstaticvoidfun(){
//somecode... }}如何使成员变量m被函数fun()直接访问?
A、将privateintm改为protectedintm
B、将privateintm改为publicintm
C、将privateintm改为staticintm
D、将privateintm改为intm
答:
C
第四章继承与多态
纲要:
继承关系声明
属性隐藏
方法覆盖和重载
构造函数的继承和重载
继承关系声明
关键字:
extends
格式:
classsubextendsfather
{……
}
1)extends关键字表示继承
2)直接父类只能有一个(单继承)
3)父类可以别的类的子类(多重继承)
例1、在如下源代码文件Test.java中,哪个是正确的类定义?
A、publicclasstest{publicintx=0;publictest(intx){this.x=x;}}
B、publicclassTest{publicintx=0;publicTest(intx){this.x=x;}}
C、publicclassTestextendsT1,T2{publicintx=0;publicTest(intx){this.x=x;}}
D、publicclassTestextendsT1{publicintx=0;publicTest(intx){this.x=x;}}
E、protectedclassTestextendsT2{publicintx=0;publicTest(intx){this.x=x;}}答:
B,D
属性隐藏(自行体会实验七)
方法覆盖和重载
Ø覆盖要求2个方法分别位于父类和子类中
Ø覆盖要求2个方法的返回类型、方法名和参数表都一样
Ø覆盖要求子类方法的访问权限不小于被覆盖的那个
Ø静态方法只能覆盖父类的静态方法,不能覆盖父类的非静态方法
Ø重载要求2个方法同名,参数表一定不同,其他无要求
例1:
下面哪几个函数是publicvoidexample(){...}的重载函数?
A、publicvoidexample(intm){...}
B、publicintexample(){...}
C、publicvoidexample2(){...}
D、publicintexample(intm,floatf){...}
答:
A,D
构造方法继承和重载
1、构造函数重载是指同一个类中存在若干个不同参数列表的构造函数链接
2、构造函数的继承
Ø子类无条件继承父类不含参数的构造函数链接
Ø子类无,则继承父类无参构造函数作为自己的构造函数;有则在构造对象时先执行父类无参构造函数
Ø可在子类中用super调用父类构造函数,放在第一句
例1:
如何修改一下程序,使其语法不出错
classExample{
Stringstr;
publicExample(Strings){
str=s;
}
}}
classDemoextendsExample{
}
第五章工具类
ØObject
ØMath
Math.random()
ØString
charAt()
length()
字符串连接+
Ø数组
定义、元素访问
例1:
已知如下定义:
Strings="story";下面哪个表达式是合法的?
A、s+="books";
B、charc=s[1];
C、intlen=s.length;
D、Stringt=s.toLowerCase();答:
A,D
例2:
下面哪个语句是创建数组的正确语句?
A、floatf[][]=newfloat[6][6];
B、floatf[3]={1,2,3};
C、floatf[][]=newfloat[6][];
D、float[][]f=newfloat[6][6];
E、float[][]f=newfloat[6][];
答:
A,,C,D
例3:
已知表达式intm[]={0,1,2,3,4,5,6};下面哪个表达式的值与数组下标量总数相等?
A、m.length()B、m.lengthC、m.length()+1D、m.length+1答:
B