**19年Java复习题
1.为使一个名为Example的public类成功编译,需至少满足以下哪个条件?
(2.0分)
A、
Example类中必须定义一个正确的main函数
B、
Example类中必须定义在 Example.java源文件中
C、
Example类必须定义在Example包中
D、
Example类必须被导入
public类必须与文件名相同,还有一个文件中最多只能有一个public
以下关于接口的说法错误的是( )
A、
接口中只有常量和抽象方法
B、
接口不能被继承 //接口不能被实体类继承
C、
一个类可以实现多个接口
D、
实现接口必须实现接口中的全部方法。实现接口或继承抽象类的非抽象子类必须实现接口的所有方法或抽象类的所有抽象方法。接口中的所有方法均为抽象方法,抽象类中包含非抽象方法和抽象方法。如果一个非抽象子类实现了接口,那么该子类必须实现父接口的所有方法。如果一个非抽象子类继承了抽象类,那么该子类必须实现抽象类的所有抽象方法。
以下关于构造函数的说法错误的是( )
(2.0分)
A、
子类构造方法可以不用定义,直接从父类中继承
B、
构造函数不能直接通过方法名调用,只能通过new运算符调用
C、
构造函数没有返回值类型,甚至没有void
D、
构造函数只能被public、private、protected或默认修饰
子类不可以继承父类的构造方法
静态方法不能使用this
final修饰的特点:
修饰方法:表明该方法时最终方法,不能被重写
修饰变量:表明该变量时常量,不能再次赋值
修饰类:表明该类是最终类,不能被继承
子类在继承父类时,可能会出现变量隐藏、方法覆盖等现象。变量隐藏是指(子类的成员变量与父类成员同名),方法覆盖是指子类方法与父类方法的_____方法名_____、方法的返回值类型____、____入口参数的数目、类型、顺序______均相同,只是方法的实现功能不同。
什么是类变量和类方法?简述类变量和实例变量的区别,以及类方法与实例方法的区别?
实例变量依附于对象,在使用new关键字创建对象时,Java运行系统为每个对象分配一个内存空间,不同的实例变量占用不同的内存区域。类变量依附于类(而非对象),对于类变量来说,Java运行系统为类的类变量分配公共的存储空间,该类的每个实例对象共享同一类变量的存储空间。**因此,每个对象对类变量的修改都会影响其他实例对象。**实例变量和类变量会被自动初始化,但局部变量(就是在方法中的变量不会自动初始化)
(1)类变量可以通过类名直接访问,而不需要创建对象。
(2)任何一个对象对类变量的修改,都是在同一内存单元上完成的。因此,每个对象对类变量的修改都会影响其他实例对象。
声明为static的方法称为类方法(或称静态方法),与此相对,没有static修饰的成员方法则为实例方法。类方法的本质是该方法属于整个类,而不是属于某个实例,可以不创建实例,直接通过类名调用。 类方法的使用具有以下特点:
(1)类方法可以通过类直接调用,而不需要创建实例对象。例如:Java Application的入口main()方法就被声明为static类方法,可以不需要创建任何实例对象对调用。
(2)类方法属于整个类,被调用时可能还没有创建任何对象实例,因此类方法内只可以访问类变量,而不能直接访问实例变量和实例方法。
(3)类方法中不能使用this关键字,因为静态方法不属于任何一个实例。
简述Java的事件处理机制
答:编写GUI程序时事件处理的主要步骤是
创建某组件对象,并考虑该组件对象相关哪个或哪些事件,如创建按钮对象,相关的事件是动作事件,即ActionEvent;
编写该组件对象的事件处理者类,即实现要处理事件对应的监听器接口,如编写事件处理者ButtonHandler类,实现ActionEvent对应的ActionListenter接口,具体来说实现了该接口中的void actionPerformed(ActionEvent e)方法,在该方法中加入处理该事件的代码;
创建事件处理者类的实例,并调用组件对象的对应该类事件的添加方法来注册监听器,如调用按钮的addActionListener(ActionListener l)方法添加ButtonHandler类的实例。
用户在点击JButton组件时,会触发___ActionEvents_______事件,处理该事件的监听器必须实现_____ActionListener_____接口,通过_____ctionPerformed_____方法完成事件处理,最后需要调用事件源中的____addACtionListener______方法来注册监视器。
什么是抽象类,如何定义抽象类?
答:抽象是人们解决问题的基本手段。在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来却不是这样,并不是所有的类都是用来描绘对象的。如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。抽象类往往用来表征我们在对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。比如:进行图形编辑软件的开发时,会发现问题领域存在着圆、三角形这样一些具体概念,它们是不同的,但是它们又都属于形状这样一个概念,形状这个概念在问题领域是不存在的,它就是一个抽象概念。正是因为抽象的概念在问题领域没有对应的具体对象,所以用以表征抽象概念的抽象类是不能够实例化的。
抽象类需要使用abstract来修饰,定义语法如下:
abstract class <类名> [extends<父类>][implements<接口名>]{
<类主体>
}
什么是接口,如何定义接口?
答:接口(interface)是Java所提供的另一种重要功能,它的结构和抽象类非常相似。接口是一种特殊的类,但接口与类存在着本质的区别。类有成员变量和成员方法,而接口却只有常量和抽象方法,也就是说接口的成员变量必须初始化,同时接口中的所有方法必须全部声明为abstract方法。
1.接口的定义
通过关键词interface来定义,接口定义的一般形式为
[接口修饰符] interface〈接口名〉[extends〈父类接口列表〉] {
接口体
}
接口与抽象类的区别有哪些?
答:接口和抽象类非常相似。接口是一种特殊的类,但接口与类存在着本质的区别。抽象类有成员变量和成员方法,而接口却只有常量和抽象方法。
print方法使用Graphics类型的函数