java复习指南设计2.docx
《java复习指南设计2.docx》由会员分享,可在线阅读,更多相关《java复习指南设计2.docx(23页珍藏版)》请在冰豆网上搜索。
![java复习指南设计2.docx](https://file1.bdocx.com/fileroot1/2023-8/14/34390de3-93b5-449d-899d-a55176e3fb1a/34390de3-93b5-449d-899d-a55176e3fb1a1.gif)
java复习指南设计2
复习指南:
考试题型:
1、选择题,30题共45分
3、读程序4题共20分
4、简答题2题10分
3、编程题25分(2题)
复习重点:
前13章和22章
选择题:
出题思路:
围绕吴老师理论课所讲内容出题,以基本概念、基本语法以及类库知识等等:
这一部分大家要多看书,跟我之前考PASCAL有点像。
简答题复习重点:
1、什么是多态,java中如何实现多态?
多态,也称为动态绑定,指在执行期间(而非编译期间)判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。
子类重写父类的方法,并把子类对象的引用赋值给父类,当你调用父类里面被覆盖方法的时候,实际当中new的是哪个对象,就调用当前这个对象(子类对象)的与之相关的覆盖方法。
2、什么叫容器布局,布局都有哪些?
布局是指:
将组件按一定的顺序和规则放在窗体上的方式。
有BorderLayout、FlowLayout、GridLayout、GridBagLayout、BoxLayout、绝对定位。
3、Java中有一种小应用程序片,Applet,简述如何工作的
Applet是一种可以在Internet上传递,并在Web浏览器中运行的程序(出于安全性,只能在所谓的沙盒中运行)。
含有Applet的网页的HTML文件代码中部带有这样一对标记,当支持Java的网络浏览器遇到这对标记时,就将下载相应的小应用程序代码并在本地计算机上执行该Applet。
具体步骤:
①用Java语言编写一个Applet源程序;
②把Applet源程序编译成字节码;
③将Applet字节码嵌入Web页,即设计一个包含Applet的HTML文件;
④用带有Java解释功能的浏览器浏览嵌有Applet的Web页。
此时,浏览器会根据HTML文件的有关标记下载相应的Applet,然后,由浏览器的字节码解释器边解释边执行。
4、迭代器的作用及其优势
作用:
用来抓取容器中的元素,并将抓取到的元素提交给迭代器用户。
不用重写代码就可以应用于不同类型的容器。
优点:
可以非常方便的遍历整个容器中的对象序列,而不用关心底层的结构是什么。
此外迭代器被称为轻量级对象:
创建它的代价很小。
5、内部类的作用
概念:
定义在另一个类的定义的内部的类叫做内部类。
作用:
允许你把一些逻辑相关的类组织在一起,并控制位于内部的类的可视性。
内部类还是一种代码隐藏机制,更重要的是,它了解外围类,并能与之通信;
1.内部类可以很好的实现隐藏,一般的非内部类是不允许有private与protected权限的,但内部类可以
2.内部类拥有外围类的所有元素的访问权限
3.可以实现多重继承
4.可以避免修改接口而实现同一个类中两种同名方法的调用。
6、类加载器的作用
通过一个类的全限定名来获取定义此类的二进制字节流这个动作是在Java虚拟机外部来实现的,以便让应用程序自己决定如何去获取所需要的类。
实现这个动作的代码模块被称为“类加载器”。
7、设计和实现图形用户界面的工作主要有哪几方面?
搭界面:
创建组成界面的各个元素,指定它们的属性和位置关系,从而构成完整的GUI外观。
写代码:
定义好各个界面元素对不同事件的响应,从而实现GUI与用户的交互功能。
首先要了解可以设计图形用户的各种组件以及用法
利用布局管理器在窗体上巧妙布局,并且给界面美工
绑定相应的事件模型,例如常见的动作事件、鼠标事件、键盘事件等等。
编程题的复习重点:
1)创建一个名为Amphibian的类。
由此继承产生一个称为Frog的类。
在基类中设置适当的方法。
在main()中,创建一个Frog并向上转型至Amphibian,然后说明所有方法都可以工作。
(P140-16)
classAmphibian{
protectedvoidswim(){
System.out.println("Amphibianswim");
}
protectedvoidspeak(){
System.out.println("Amphibianspeak");
}
voideat(){
System.out.println("Amphibianeat");
}
staticvoidgrow(Amphibiana){
System.out.println("Amphibiangrow");
a.eat();
}
}
publicclassFrogextendsAmphibian{
publicstaticvoidmain(String[]args){
Frogf=newFrog();
//callbase-classmethods:
f.swim();
f.speak();
f.eat();
//upcastFrogtoAmphibianargument:
Amphibian.grow(f);
}
}
/*Output:
Amphibianswim
Amphibianspeak
Amphibianeat
Amphibiangrow
Amphibianeat
2)编写一个名为Outer的类,它包含一个名为Inter的类。
在Outer中添加一个方法,它返回一个Inter类型的对象。
在main()中,创建并初始化一个指向某个Inter对象的引用。
(p191-1)
publicclassOuter1{
classInner{
Inner(){System.out.println("Inner()");}
}
Outer1(){System.out.println("Outer1()");}
//makeanInnerfromwithinanon-staticmethodofouterclass:
InnermakeInner(){
returnnewInner();
}
publicstaticvoidmain(String[]args){
Outer1o=newOuter1();
Inneri=o.makeInner();
}
}
/*Output:
Outer1()
Inner()
3)创建一个Cycle类,它具有子类Unicycle、Bicycle和Tricycle,实现每一个类型的实例都可以经由ride()方法向上转型为Cycle。
classCycle{
privateStringname="Cycle";
publicstaticvoidtravel(Cyclec){
System.out.println("Cycle.ride()"+c);
}
publicStringtoString(){
returnthis.name;
}
}
classUnicycleextendsCycle{
privateStringname="Unicycle";
publicStringtoString(){
returnthis.name;
}
}
classBicycleextendsCycle{
privateStringname="Bicycle";
publicStringtoString(){
returnthis.name;
}
}
classTricycleextendsCycle{
privateStringname="Tricycle";
publicStringtoString(){
returnthis.name;
}
}
publicclassBiking{
publicstaticvoidride(Cyclec){
c.travel(c);
}
publicstaticvoidmain(String[]args){
Unicycleu=newUnicycle();
Bicycleb=newBicycle();
Tricyclet=newTricycle();
ride(u);
ride(b);
ride(t);
}
}
/*Output:
Cycle.ride()Unicycle
Cycle.ride()Bicycle
Cycle.ride()Tricycle
4)编写一个类名为chap的应用程序,用于演示JButton按钮操作,当单击左边的按钮时,中间的按钮和左边的按钮将失效,当右边的按钮由失效变成有效.
importjava.awt.BorderLayout;
importjava.awt.GridLayout;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JPanel;
publicclassChap{
publicstaticvoidmain(String[]args){
Frameframe=newFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
classFrameextendsJFrame{
publicFrame(){
setTitle("Chap");
Panelpanel=newPanel();
add(panel);pack();
}
}
classPanelextendsJPanel{
JButtondisplay;
JButtonleft_button=newJButton("左边");
JButtonmid_button=newJButton("中间");
JButtonright_button=newJButton("右边");
privateJPanelpanel;
privatestaticfinallongserialVersionUID=1L;
publicPanel(){
setLayout(newBorderLayout());
LeftActionleft=newLeftAction();
MidActionmid=newMidAction();
RightActionright=newRightAction();
panel=newJPanel();
panel.setLayout(newGridLayout(1,4));
left_button.addActionListener(left);
panel.add(left_button);
mid_button.addActionListener(mid);
panel.add(mid_button);
right_button.addActionListener(right);
panel.add(right_button);
add(panel,BorderLayout.CENTER);
}
privateclassLeftActionimplementsActionListener{
publicvoidactionPerformed(ActionEventevent){
display.setText("您点击的是左边的按钮!
");
}
}
privateclassMidActionimplementsActionListener{
publicvoidactionPerformed(ActionEventevent){
display.setText("您点击的是中间的按钮!
");
}
}
privateclassRightActionimplementsActionListener{
publicvoidactionPerformed(ActionEventevent){
display.setText("您点击的是右边的按钮!
");
}
}
}
/*Output:
5)编写一个应用程序,它包括一个文本域和三个按钮,单击每个按钮时在文本区显示不同的文字。
importjava.awt.event.*;
importjava.awt.*;
importjavax.swing.*;
publicclassButton3extendsJFrame{
privateJButtonbutton1=newJButton("button1"),
button2=newJButton("button2"),
button3=newJButton("button3");
privateJTextFieldtxtf=newJTextField(10);
publicstaticvoidrun(finalJFramef,finalintwidth,finalintheight){
SwingUtilities.invokeLater(newRunnable(){
publicvoidrun(){
//TODOAuto-generatedmethodstub
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setTitle(f.getClass().getSimpleName());
f.setSize(width,height);
f.setVisible(true);
}
});
}
privateActionListenerbl=newActionListener(){
publicvoidactionPerformed(ActionEvente){
Stringname=((JButto)e.getSource()).getText();
txtf.setText(name);
}
};
publicButton3(){
button1.addActionListener(bl);
button2.addActionListener(bl);
button3.addActionListener(bl);
setLayout(newFlowLayout());
add(button1);
add(button2);
add(button3);
add(txtf);
}
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
run(newButton3(),400,300);
}
}
/*Output:
6)、编写程序实现以下继承关系:
动物类派生出鸟类、鱼类,鸟类派生出燕子类,鱼类派生出鲨鱼类。
要求:
每个类包含域“类别”、方法“返回类别”
请读懂以下程序并给出运行结果:
//程序1
publicclassGuess{
/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
inta,b;
for(a=14;a<=90;a++)
for(b=11;b<50;b++)
{
if(((a-10)==(b-10)*4)&&((a+10)%(b+10)==0))
System.out.println("ag"+a+"daf"+b);
}
}
}
/*Output:
ag50daf20]
//程序2
classOverrideDemo
{
voidtest()
{System.out.println("Noparameters");}
voidtest(inta)
{System.out.println("a:
"+a);}
voidtest(inta,intb)
{System.out.println("aandb:
"+a+""+b);}
voidtest(doublea)
{System.out.println("doublea:
"+a);}
}
PublicclassOverride
{
publicstaticvoidmain(Stringargs[])
{
OverrideDemoob=newOverrideDemo();
ob.test();
ob.test(10);
ob.test(10,20);
ob.test(123.25);
}
}
/*Output:
Noparameters
a:
10
aandb:
1020
doublea:
123.25
//程序3
importjava.awt.*;
importjava.awt.event.*;
importjava.applet.*;
publicclassButtonAppletextendsAppletimplementsActionListener{
inti1,i2;
Buttonbtn1,btn2;
publicvoidinit(){
i1=0;
i2=0;
btn1=newButton("确定");
btn2=newButton("取消");
add(btn1);
add(btn2);
btn1.addActionListener(this);
btn2.addActionListener(this);
}
publicvoidpaint(Graphicsg){
g.setColor(Color.blue);
g.drawString("你点击了确定"+i1+"次",20,100);
g.setColor(Color.red);
g.drawString("你点击了确定"+i2+"次",20,120);
}
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==btn1){
i1++;
}
if(e.getSource()==btn2){
i2++;
}
repaint();
}
}
/*Output:
//程序4
interfaceWeapon
{Stringname="weapon";
voidattack();
}
classTankimplementsWeapon
{publicvoidattack()
{System.out.println("Tankattack");}
}
classCannonimplementsWeapon
{publicvoidattack()
{System.out.println("Cannonattack");}
}
classtestWeapon
{publicstaticvoidmain(String[]args)
{Weaponwp;
wp=newTank();
wp.attack();
wp=newCannon();
wp.attack();
}
}
/*Output:
Tankattack
Cannonattack
//程序5
publicclassParcel2{
classContents{
privateinti=11;
publicintvalue(){returni;}
}
classDestination{
privateStringlable;
Destination(StringwhereTo){
lable=whereTo;
}
StringreadLabel(){returnlable;}
}
publicDestinationto(Strings){
returnnewDestination(s);
}
publicContentscontents(){
returnnewContents();
}
publicvoidship(Stringdest){
Contentsc=contents();
Destinationd=to(dest);
System.out.println(d.readLabel());
}
publicstaticvoidmain(String[]args){
Parcel2p=newParcel2();
p.ship("Tasmania");
Parcel2q=newParcel2();
Parcel2.Contentsc=q.contents();
Parcel2.Destinationd=q.to("Borneo");
}
}
/*Output:
Tasmania
//程序6:
importjava.util.*;
publicclassSimpleCollection{
publicstaticvoidmain(String[]args){
intb=0;
Collectionc=newArrayList();
for(inti=0;i<10;i++)
b=i+3;
c.add(b);
for(Integer