0%

Java基础

Java基础复习笔记

1、面向对象的三大特征是什么?

答: 封装、继承、多态

1、封装(Encapsulation)

封转是指属性私有化

  • 根据需要提供setter和getter方法来访问属性
  • 隐藏具体属性和实现细节,仅对外开放接口
  • 控制程序中属性的访问级别

目的:增强数据安全性,不能让其他用户随意访问和修改数据,简化编程,使用者不必在意具体实现细节,而只是通过外部接口即可访问类的成员

2、继承(Extend)

继承是指将多个相同的属性和方法提取出来,新建一个父类

  • java中一个类只能继承一个父类,且只能继承访问权限非private属性和方法
  • 子类可以重写父类中的方法,命名与父类中同名的属性

目的:代码复用

3、多态

多态(Polymiorph)可以分为两种:设计时多态、运行时多态

设计(编译)时多态:即重载(Overload),是指java允许方法名相同而参数不同(返回值可以相同也可以不同),同一个类中允许存在一个或多个以上的同名函数,只要参数类型或参数个数不同即可

运行时多态:即重写(Override)必须是在继承体系中,子类重写父类方法,JVM运行时根据调用该方法的类型决定调用那个方法

目的:增加代码的灵活度

总结:

1、java中应尽量减少继承关系,以降低耦合度

2、使用多态时,父类在调用方法时,优先调用子类的方法,如果子类没有重写父类的方法,则再调用父类的方法

3、java访问控制符作用范围表:

本类 本包 子类 外部包
public
protected X
default X X
private X X X

✓:可以访问 X:不可访问

2、继承的两个主要作用是什么?

答:代码复用和建模

3、JAVA中实现继承是哪个关键词?

答:extends

4、JAVA中的类继承,是单继承还是多继承?JAVA中其他地方有多继承吗?

答:类是单继承,接口可以多继承

5、定义类时,没有使用extends,它的父类是什么?

答:Object类

6、组合和继承的关系如何理解?

答:1、它们都可以实现代码的复用;2、继承处理的是is-a关系 组合处理的是has-a 关系

7、方法重写和方法重载有什么区别?

答:方法重载:就是在同一个类中,方法的名字相同,但参数个数、参数的类型或返回值类型不同!
方法重写:它是指子类和父类的关系,子类重写了父类的方法,但方法名、参数类型、参数个数必须相同!

8、final关键字修饰变量、方法、类,都分别表示什么含义?

答:修饰变量代表是常量,修饰方法不能被重写,修饰类不能被继承

9、一个类定义是时,没有使用extends,则它的父类是?

答:Object类

10、Object中的toString()方法默认返回的字符串是什么含义?

答:类名@哈希地址

11、super关键字的含义是什么?

答:直接父类对象的引用

12、多态指的是什么?

答:多态指的是同一个方法调用,由于对象不同可能会有不同的行为;多态是方法的多态,不是属性的多态(多态与属性无关);父类引用指向子类对象后,用该父类引用调用子类重写的方法,此时多态就出现了

13、多态的三个必要条件是什么?

答:继承,方法重写,父类引用指向子类对象

14、抽象方法是什么?如何定义?

答:使用abstract修饰的方法,没有方法体,只有声明。定义的是一种“规范“,就是告诉子类必须要给抽象方法提供具体的实现。

15、抽象类可以包含:属性、方法、构造方法;但是,我们不能通过抽象类创建对象
16、接口定义规范,普通类定义实现,抽象类又有规范又有实现。
17、JDK1.8(含)以后,接口中不只可以定义:常量、抽象方法。还能定义默认方法、静态方法。
18、接口中,默认方法和抽象方法有什么区别?

答:抽象方法必须要被实现,默认方法不是。作为替代方式,接口可以提供默认方法的实现,所有这个接口的实现类都会通过继承得到这个方法。

19、接口中,默认方法和静态方法有什么区别?

答:静态方法直接从属于接口,可以通过接口名调用;

20、JAVA中,类是单继承,接口是多继承。
21、写出八种基本数据类型对应的包装类的名字。

答:byte-Byte;int-Integer;short-Short;char-Character;float-Float;double-Double;boolean-Boolean;long-Long

22、Number类和数字包装类的关系是什么?Number类是 抽象类吗?

答:Number类是数字包装类的父类,Number是抽象类

23、包装类的两个基本作用是什么?

答:1、作为和基本数据类型对应的类型存在,方便涉及到对象的操作,如Object[]、集合等的操作。

2、包含每种基本数据类型的相关属性如最大值、最小值等,以及相关的操作方法(这些操作方法的作用是在基本数据类型、包装类对象、字符串之间提供相互之间的转化)

------------- THE END! THANKS! -------------