Java编程基础知识点汇总习题集--答案 下载本文

内容发布更新时间 : 2024/5/5 6:16:41星期一 下面是文章的全部内容请认真阅读。

明构造方法,实例化时系统不会在自动创建没有参数没有方法体的构造方法。

? 在实例化对象的同时,可以通过构造方法这个对象的属性进

行赋值。

? 构造方法也可以重载,在一个类中可以定义多个构造方法,

只要每个构造方法的参数类型或参数个数不同即可。

6、this

? 通过this关键字可以明确地去访问一个类的成员变量,解决

与局部变量名称冲突问题

? 通过this关键字可以调用成员方法

? 构造方法是在实例化对象时被Java虚拟机自动调用的,在程

序中不能像调用其他方法一样去调用其他的构造方法,但可以在一个构造方法中使用“this(参数1,参数2.。。。)”的形式来调用其他的构造方法

? 只能在构造方法中使用this调用其他的构造方法,不能在成

员方法中使用。

? 在构造方法中,使用this调用构造方法的语句必须放在第一

行,且只能出现一次

? 不能在一个类的两个构造方法中使用this互相调用

7、垃圾回收

? Java引入了垃圾回收机制,当垃圾堆积到一定程度,虚拟机

会启动垃圾回收器,回收垃圾对象占用的内存

? 也可以调用System.gc()方法通知虚拟机立刻进行垃圾回收 ? 当一个对象在内存中被释放时,它的finalize方法会被自动调

8、 Static关键字

? 静态变量:静态变量被所有的实例共享,使用“类名.变量名”

的方式调用。Static只能修饰成员变量不能修饰局部变量。 ? 静态方法:在不创建对象的的情况下就可以调用某个方法,

只需在类中定义的方法前加static关键字,使用“类名.方法名”的方式调用,不和对象绑在一起。在静态方法中只能访问用static修饰的成员,没有被static修饰的成员需要先创建对象才能访问

? 静态代码块:使用一对大括号包围起来的若干行代码被称为

一个代码块,用static关键字修饰的代码块就是静态代码块。类加载时,静态代码块会被执行。由于类只加载一次,所有静态代码也只执行一次。

9、类的继承

? 在程序中,继承描述的是事物之间的所属关系 ? 子类会自动拥有父类所有的属性和方法 ? 继承语法格式

资料

修饰符 class 子类名 extends 父类名{

成员变量; 成员方法; }

? 继承注意事项

一个类只能有一个直接父类 多个类可以继承一个父类 多层继承是可以的

一个类是某个类的子类,同时又是另一个的父类 10、重写父类方法

? 子类继承了父类的方法,但有时又需要对继承的方法做一定

的修改,即对父类方法进行重写。

? 被重写的方法必须与父类的方法具有相同的方法名、参数列

表和返回类型。

11、super关键字

? 当子类重写父类的方法后,子类对象将无法访问父类被重写

的方法。

? Java提供了super关键字来访问父类的成员变量、成员方法和

构造方法。

1. 使用super关键字调用父类成员变量和成员方法,格式为:

? super.成员变量;

? super.成员方法([参数1,参数2… …])

2. 使用super关键字调用父类的构造方法,格式为:

? super([参数1,参数2… …])

? 通过super调用父类构造方法的代码必须放在子类构造

器的第一行,而且只能出现一次

? 子类构造方法中一定会调用父类的某个构造方法,可以

通过super指定调用父类的哪个构造方法,如果没有指定,在实例化子类时,会自动调用父类无参的构造方法 ? 可以在子类中显示地调用父类中已有的构造方法,也可

以选择在父类中定义无参的构造方法

12、final关键字

? final关键字可用来修饰类、变量和方法 ? final修饰的类不能被继承

? final修饰的方法不能被子类重写

?

final修饰的变量(成员变量和局部变量)是常量,只能赋值一次

13、抽象类

? Java允许在定义方法时不写方法体,不包含方法体的

方法为抽象方法,抽象方法必须使用abstract关键字来修饰。

? 当一个类中包含了抽象方法,该类必须使用abstract

关键字来修饰,使用abstract关键字修饰的类为抽象类

资料

? 抽象类的格式

abstract class 类名{ 成员变量; 成员方法();

abstract 返回类型 方法名(参数类型列表); }

? 抽象类—注意事项

? 包含抽象方法的类必须声明为抽象类,但抽象类可

以不包含任何抽象方法,只需要用abstract关键字修饰即可。

? 抽象类不能被实例化,因为抽象类中可能含有抽象

方法,而抽象方法是没有方法体的,不可以被调用的。

? 如果想调用抽象类中定义的方法,则需要创建一个

子类,在子类中将抽象类中的抽象方法进行实现。

14、接口

? 如果一个抽象类中的所有方法都是抽象的,则可以使用另外一种方式来定义,即接口,在定义接口时,需要使用interface关键字来声明。 ? 接口的格式 interface 接口名{

类型 变量名 = 初始值; //定义全局常量

返回类型 方法名(参数列表); //定义的抽象方法 }

? 接口定义的方法默认为用public abstract来修饰,即抽象方法;

? 接口中定义的变量默认使用public static final 来修饰,即全局常量

? 由于接口中的方法都是抽象的,所有不能实例化,需要定义一个类,并使用implements关键字实现接口中的所以方法。 ? 接口的实现

class 类名 implements 接口名{ 成员变量; 成员方法();

抽象方法的实现; }

? 一个接口可以使用extends关键字去继承另一个接口 ? 接口—注意事项

? 接口的方法都是抽象的,不能实例化对象 ? 当一个类实现接口时,如果这个类是抽象的,

则实现接口中的部分方法即可,否则需要实现接口中的所有方法。

? 一个类通过implements关键字实现接口时,可

资料

实现

以多个接口,被实现的多个接口之间要用逗号隔开。

? 一个接口可以通过extends关键字继承多个接

口,接口之间用逗号隔开

? 一个类继承另一个类的同时还可以实现接口,

此时extends关键字必须位于implements关键字之前。

15、接口与抽象类的比较 抽象类 成员变量 构造方法 可以写构造方法,可以在子类构造方法中使用super调用父类的构造方法,但是抽象类不能使用new创建对象 没有构造方法,不能用new实例化接口 方法 没有限制 没有限制 接口 所以变量均默认为public static final 所有方法均被默认为public 和abstract 16、对象的转型 ? 向上转型----将子类的对象赋值给父类的引用

? Dog dog1 = new Dog(); ? Animal animal1 = dog1;

? 一个引用能够调用哪些成员(变量和方法),取决于这个引用的类型

? 一个引用调用的是哪个方法,取决于这个引用所指向的对象

? 向下转型----将子类的对象赋值给父类的引用

? Dog dog1 = new Dog(); ? Animal animal1 = dog1; ? Dog dog2 = (Dog) animal1;

? 先把一个对象向上转型,再把它向下转型转回来,不能直接向下转型 17、多态

? 面向对象的三个特点是封装、继承和多态。

? 在设计一个方法时,通常希望该方法具备一定的通用性。

? 可以在方法中接收一个动物类型的参数,当传入的是猫类对象时就发出猫类的叫声,传入的犬类对象时就发出犬类的叫声。在同一个方法中,这种由于参数类型不同而导致执行效果各异的现象就是多态。

? Java中为了实现多态,允许使用一个父类类型的变量来引用一个子类类型的对象,根据被引用子类对象特征的不同,得到不同的运行结果

? instanceof关键字可以判断一个对象是否为某个类(或

资料