有关Java基础知识的整理
Java知识点总结(第二篇)
本篇主要从以下几点总结:
1.面向对象
2.三大特性
3.三个修饰符
4.接口
1.面向对象
1.1 类:定义了一组相同或者类似对象应具有的共性特征和行为,保留所关注的部分。对象:拥有多个特征和行为的实体,世界万物皆对象。两者关系:类是对象的模板,对象使类的实例。一个类可以创建多个对象。
1.2 成员变量和局部变量的区别:(1)定义位置:局部变量定义在方法或者方法内的结构中,而成员变量定义在类的内部,方法的外部(2)默认值:局部变量没有默认值,成员变量为字面值(3)使用范围:局部变量从定义行到包含的结构结束,成员变量在本类有效。(4)命名:局部变量不允许与局部变量重名,成员变量允许和局部变量重名,局部变量优先。
1.3 方法重载:(1)方法名称相同,参数列表不同(参数类型不同、个数不同、顺序不同)(2) 和访问权限修饰符、方法返回值类型无关。
1.4 构造方法:(1)与类名相同(2)没有返回值 (3)创建对象时,触发构造方法的调用,不可手动调用(4)一个类可以有多个构造方法。
1.5 对象创建历程:(1)堆区开辟对象空间 (2)为各个属性赋予默认值 (3) 执行构造方法中的代码 (4) 将对象中的地址赋值给引用。
1.6 this关键字的用法:(1)调用实例属性、实例方法 (2)调用本类中的其它构造方法。
2.三大特性(封装、继承、多态)
2.1 封装:尽可能的隐藏对象的内部实现细节,控制对象的修改以及访问的权限。如何封装:使用访问权限修饰符private,将属性修饰为私有。
2.2 继承:程序中的继承是类与类之间特征和行为的一种赠与或获得。两个类之间的“继承关系”,必须满足“is a”的关系。语法:class 子类 extends 父类{}。Java中类继承的特点:Java为单继承,一个类只能有一个直接父类,但可以多级继承,属性和方法逐级叠加。
2.3 子类和父类的继承关系:(1) 父类的构造方法,子类不可继承。(2)父类的属性及其他方法,子类能否继承,取决于访问权限修饰符.如下
2.4 方法覆盖的要求,子类覆盖父类方法时:(1)方法名称应与父类相同。(2)返回类类型应与父类相同。(3)参数列表应与父类相同。(4)访问权限修饰符应与父类相同,或者比父类更宽泛。
2.5 super关键字的用法:(1)在子类的方法中使用“super.”的方式调用父类的属性和方法 (2)在子类构造方法的首行,使用 super() 或者 super(实参) 调用父类的构造方法。【注意】a.如果子类构造方法中,没有显示定义super()或super(实参),则默认提供。b.同一个子类构造方法中,super()、this()不可同时存在。
2.6 多级继承的对象创建过程:如图所示
2.7 多态:父类引用指向子类对象,从而产生多种形态。使用场景:(1)使用父类作为方法形参实现多态,使方法参数的类型更为宽泛。(2)使用父类作为方法返回值实现多态,使方法可以返回不同子类对象。好处:屏蔽子类间的差异;灵活、降低代码的耦合度。
2.8 instanceof关键字:向下转型前,应判断引用中的对象真实类型,保证类型转换的正确性。语法:引用 instanceof 类型。
3.三个修饰符
3.1 修饰符:修饰符的作用是在原有组件之上添加一些额外特性,修饰符有很多个,不同的修饰符所能修饰的组件不同,表现出的特性也不同;多个修饰符可以一起使用,组件所表现的特性也会根据修饰符的数量不断叠加。
3.2 abstract:可以修饰类、方法,被修饰的类称之为抽象类(可以声明引用不能创建对象),被修饰的方法称之为抽象方法(只有声明没有实现,必须存在于抽象类中).
3.3 static:可以修饰属性、方法、初始化代码块.
被修饰的属性称之为静态属性(静态属性是所有对象所共享的属性,不必创建对象,可以通过类名.属性名直接访问)
被修饰的方法称之为静态方法(a、静态方法可以使用类名.方法名直接调用;b、静态方法与对象无关不能使用this或super关键字;c、在静态方法中只能访问静态属性与静态方法;)
被修饰的初始化代码块称之为静态代码块(静态代码块会在类加载时执行,可以在静态代码块中初始化静态属性)。
3.4 final:可以修饰属性、局部变量、方法、类;被修饰的变量称之为常量(只能被赋值一次且终身不能被修改),被修饰的属性称之为常量属性(只能赋值一次,没有默认值,必须手动赋值);被修饰的方法为最终方法(最终方法不能被子类所覆盖),被修饰的类为最终类(最终类不能被继承)。
3.5修饰符之间的连用:
(1)、访问权限修饰符( private/default/protected/public)可以与 static、final连用。(2)、访问权限修饰符(private/default/protected)可以与 abstract 连用。(3)static/final可以连用,通常会与public 一起来修饰属性, 用来表示公开静态常量。
4.接口
4.1 接口:接口从语法角度来说像是一种特殊的抽象类,两者都可以包含抽象方法且不能创建对象。接口是一种标准,通常用来约束其子类(实现类)应具备的功能。接口作用:可以降低程序间耦合,更自然的使用多态。可以在设计环节中使用接口定义标准,使开发更加灵活。语法:interface 接口名{ }
4.2接口和抽象类的区别:
4.3接口的实现:在class关键字之后,使用 implements 关键字实现接口,多个接口使用“,”号分隔。implements 关键字的作用与 extends 类似,它也可以继承到接口中的属性与方法,只不过implements 关键字只能应用于接口。实现一个接口就要实现接口中所有的方法,否则子类(实现类)将“被迫”成为抽象类。(接口可以使用 extends 关键字继承其他接口。)