java复习题完整版.docx
- 文档编号:20191787
- 上传时间:2023-04-25
- 格式:DOCX
- 页数:16
- 大小:22.31KB
java复习题完整版.docx
《java复习题完整版.docx》由会员分享,可在线阅读,更多相关《java复习题完整版.docx(16页珍藏版)》请在冰豆网上搜索。
java复习题完整版
Java复习题纲
欢迎指正。
java标识符是区分大小写的
(1)标识符包括字母、数字、下划线、$
(2)其中字母为广义的,Unicode所有字符,汉字等各国文字
(3)源文件名与public类名可以不相同
(4)源文件其扩展名为.jar(小编学的是压缩包名)
main方法头的合法是
publicstaticvoidmain(Stringargs[]){}
3.javaApplieation源程序的主类是指包含:
含main函数的类
4.java的字符编码集为Unicode编码
5.import:
导入包
Java.io.*;不知道他要考什么
6.final:
根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。
你可能出于两种理解而需要阻止改变:
设计或效率。
final类不能被继承,没有子类,final类中的方法默认是final的。
final方法不能被子类的方法覆盖,但可以被继承。
final成员变量表示常量,只能被赋值一次,赋值后值不再改变。
final不能用于修饰构造方法。
注意:
父类的private成员方法是不能被子类方法覆盖的,因此private类型的方法默认是final类型的。
static
static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。
1. 静态方法
通常,在一个类中定义一个方法为static,那就是说,无需本类的对象即可调用此方法
声明为static的方法有以下几条限制:
· 它们仅能调用其他的static 方法。
· 它们只能访问static数据。
· 它们不能以任何方式引用this 或super
2. 静态变量
声明为static的变量实质上就是全局变量。
当声明一个对象时,并不产生static变量的拷贝,而是该类所有的实例变量共用同一个static变量。
静态变量与静态方法类似。
所有此类实例共享此静态变量,也就是说在类装载时,只分配一块存储空间,所有此类的对象都可以操控此块存储空间,当然对于final则另当别论了
static和final一块用表示什么
staticfinal用来修饰成员变量和成员方法,可简单理解为“全局常量”!
对于变量,表示一旦给值就不可修改,并且通过类名可以访问。
对于方法,表示不可覆盖,并且可以通过类名直接访问。
package打包
访问限定修饰符:
访问级别
访问控制修饰符
同类
同包
子类
不同的包
公开
public
√
√
√
√
受保护
protected
√
√
√
--
默认
friendly
√
√
--
--
私有
private
√
--
--
--
7.
最终方法finalclassA{},这样定义的类A就是最终类,最终类不可被继承,也就是说不能写这样的代码,classBextendsA{}了
finalvoidB(){},这样定义的方法就是最终方法,最终方法在子类中不可以被重写,也就是说,如果有个子类继承这个最终方法所在的类,那么这个子类中就不能再出现voidB(){}这样的方法了。
但是可以重载,也就是说可以出现voidB(inta){}。
代码示例
publicclassMain
{
publicstaticvoidmain(String[]args){
Oako=newOak();
o.develop();
}
}
classtree
{
publicfinalvoiddevelop()
{
System.out.println("树在生长");
}
}
finalclassOakextendstree
{
/*publicvoiddevelop(){}
*这样写是错误的,不能重写
*/
publicvoiddevelop(inta)
{
}
//这样写可以,可以重载
}
/*
classwillowextendsOak{}
这样写也是错误的,最终类不可被继承
*/
静态方法上一题已介绍
代码
publicclassMain
{
publicstaticvoidmain(String[]args){
//非静态方法调用
//Oako=newOak();
//o.develop();
//静态方法调用
Oak.develop();
}
}
classtree
{
publicstaticvoiddevelop()
{
System.out.println("树在生长");
}
}
抽象方法
抽象方法 就是以abstract修饰的方法,这种方法是不完整的;仅有声明而没有方法体。
如:
abstractvoidf();
当一个子类继承某个抽象类时,它可以有两个选择:
部分实现或完全不实现父类的所有抽象方法,但此时子类必须声明为抽象类。
实现父类所有的抽象方法,此时之类不比声明为抽象类。
包含抽象方法的类叫做“抽象类 ”。
如果一个类包含一个或多个抽象方法,该类必须被限定为抽象的。
(否则,编译器就会报错。
)
抽象类不能被实例化(beinstantiated),但可以实例化非抽象子类。
代码;考试题
abstractclassShape{
publicabstractdoubleArea();//抽象方法
}
classCircleextendsShape
{
doubler;
Circle(doubler)
{
this.r=r;
}
publicdoubleArea()//实例化
{
return3.14*r*r;
}
}
classTriangleextendsCircle
{
doubleh;
Triangle(doubleh,doubled)
{
super(d);//继承底
this.h=h;//高
}
publicdoubleArea()
{
returnr*h/2.0;
}
}
classTrapezoidextendsTriangle
{
doubleu;//上底
Trapezoid(doubleu,doubled,doubleh)
{
super(d,h);
this.u=u;
}
publicdoubleArea()
{
return(u+r)*h/2.0;
}
}
publicclassMain
{
publicstaticvoidmain(String[]args)
{
Circlec=newCircle
(1);
System.out.println("圆形面积为:
"+c.Area());
Trianglet=newTriangle(1,2);
System.out.println("三角形面积为:
"+t.Area());
Trapezoidtz=newTrapezoid(1,2,3);
System.out.println("梯形形面积为:
"+tz.Area());
}
}
8.无需在程序中导入的包是:
java.lang;
9.表示没理解,直接复制了博客内容
覆盖:
子类重写父类的方法,要求方法名和参数类型完全一样(参数不能是子类),返回值和异常比父类小或者相同(即为父类的子类),访问修饰符比父类大或者相同。
覆盖是对于实例方法而言的
方法不能交叉覆盖:
子类实例方法不能覆盖父类的静态方法;
子类的静态方法也不能覆盖父类的实例方法(编译时报错)
隐藏:
父类和子类拥有相同名字的属性或者方法( 方法隐藏只有一种形式,就是父类和子类存在相同的静态方法)时,父类的同名的属性或者方法形式上不见了,实际是还是存在的。
隐藏是对于静态方法和成员变量(静态变量和实例变量)而言的
(1)当发生隐藏的时候,声明类型是什么类,就调用对应类的属性或者方法,而不会发生动态绑定
(2) 属性只能被隐藏,不能被覆盖
(3)变量可以交叉隐藏:
子类实例变量/静态变量可以隐藏父类的实例/静态变量
3、隐藏和覆盖的区别
(1)被隐藏的属性,在子类被强制转换成父类后,访问的是父类中的属性
在无强制转换时子类要访问父类的属性使用super关键字
(2)被覆盖的方法,在子类被强制转换成父类后,调用的还是子类自身的方法
子类要是想访问父类的方法,可以使用super关键字
RTTI(runtimetypeidentification,运行时类型检查)
RTTI只针对覆盖,不针对隐藏:
因为覆盖是动态绑定,是受RTTI约束的,隐藏不受RTTI约束
运行时类型为引用变量所指向的对象的类型,编译时类型是引用变量自身的类型
public class Test {
public static void main(String[] args) {
Circle circle = new Circle();//本类引用指向本类对象
Shape shape = new Circle();//父类引用指向子类对象(会有隐藏和覆盖)
System.out.println(circle.name);
circle.printType();
circle.printName();
//以上都是调用Circle类的方法和引用
System.out.println(shape.name);//调用父类被隐藏的name属性
shape.printType();//调用子类printType的方法
shape.printName();//调用父类隐藏的printName方法
}
}
class Shape {
public String name = "shape";
public Shape(){
System.out.println("shape constructor");
}
public void printType() {
System.out.println("this is shape");
}
public static void printName() {
System.out.println("shape");
}
}
class Circle extends Shape {
public String name = "circle"; //父类属性被隐藏
public Circle() {
System.out.println("circle constructor");
}
//对父类实例方法的覆盖
public void printType() {
System.out.println("this is circle");
}
//对父类静态方法的隐藏
public static void printName() {
System.out.println("circle");
}
}
重载方法名相同,参数不同
1.方法名必须相同。
2.方法的参数类型和参数个数两者至少有一不同。
(参数为子类也算不同。
int和Integer也算不同,都算重载)
3.方法的修饰符和返回值类型可以不同。
代码:
voidf(intx){
…
}
voidf(intx,inty){
…
}
voidf(intx,Strings){
…
}
10.interface是声明一个接口时的标识符
实现接口用implements。
接口是为了多重继承
AextendsBA、B可以是接口也可以是类
AimplementsBA是类B是接口
11.javaApplet不知道要干什么,自己看书吧
12.
thread多线程类java.lang
voidstart():
启动线程,JVM调用该线程的run()方法使其与其他的线程并发运行。
init()初始化
resume()方法就是将一个挂起线程复活继续执行
voidrun():
如果线程是通过实现Runnable接口的对象构造,则调用该Runnable对象的run()方法;否则该方法不执行任何操作并返回。
Thread的子类应重写该方法。
13.
数组名如同对象名一样是一种引用
14.
在Java程序中定义的类有两种成员:
成员变量、成员方法
15.
Java的图像处理功能被封装在Image
16.创建一个名为MyPackage包的语句是
packageMyPackage;
17.
一个基于Swing的应用程序可能在任何平台上都会有相同的外观与风格。
18.
面向对象的四个特性
抽象:
把客观事物用代码抽象出来,包括两种抽象:
第一种是数据抽象,也就是对象的属性。
第二种是过程抽象,也就是对象的行为特征。
封装:
把客观事物封装成抽象的类,对不可信的对象隐藏,对可信的对象或者类进行操作。
继承:
对着父类进行继承extends,implements实现接口。
多态:
允许不同类的对象对同一消息做出响应。
方法的重载、方法的继承就是体现这一关系。
19.
什么是异常,举例说明异常情况
异常通常指,你的代码可能在编译时没有错误,可是运行时会出现异常。
比如常见的空指针异常。
也可能是程序可能出现无法预料的异常,比如你要从一个文件读信息,可这个文件不存在,程序无法运行下去了,故程序要抓这些异常,通过异常处理机制来抛出这些异常,程序员就可以通过抛出的异常来修改代码。
try{}catch{}finally{}try块中放入可能会出现异常的代码,catch块负责捕获异常,finally块负责处理一些必须执行的代码,比较关闭流等。
20.通过构造方法建立文件流对象,创建输入输出文件流对象的两种常用构造方法。
FileInputStream(Stringname)
FileInputStream(Filefilename)
FileOutputStream(Stringname)
FileOutputStream(Filefilename)
21.。
publicclassMain
{
publicstaticvoidmain(String[]args){
inta[][]={{1,2},{3,4,5}};
for(inti=0;i<2;i++)
{
for(intj=0;j<3;j++)
{
System.out.print(a[i][j]+"");
}
System.out.println();
}
}
}
运行结果
12Exceptioninthread"main"java.lang.ArrayIndexOutOfBoundsException:
2
atMain.main(Main.java:
9)
答案
修改标红处代码
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 复习题 完整版
![提示](https://static.bdocx.com/images/bang_tan.gif)