Java基础学习之-06

来源:互联网 发布:百元以内耳机推荐知乎 编辑:程序博客网 时间:2024/05/15 12:58
1.代码块
静态代码块:随着类的加载而加载,优先于对象而存在,而且只执行一次,一般是用于初始化整个应用程序都必须初始化的东西,比如引入C语言打包好的库
构造代码块:随着对象的创建而调用,优先于构造方法执行的,用于初始化所有构造方法都必须初始化的内容
普通代码块:放在普通代码块里面的变量会在执行完毕之后立马当做是垃圾,等待gc的回收
构造方法,构造代码块,静态方法的执行顺序?
静态代码块-构造代码块-构造方法
2.继承
概述:将多个类中存在的相同属性和行为封装到一个新类中,然后其余的类继承这个新类,然后其余的类都具有了这个新类中的属性和行为
继承格式:
class 子类名 extends 父类名
被继承的类叫做父类,超类或者基类
继承的这些类叫做子类,派生类
子类可以在继承父类的基础上,定义自己特有的属性和行为

继承的好处:
提高了代码的复用性,因为父类中有的非私有成员,子类中都有
提高了代码的维护性,如果父类中一个地方改动了,所有的子类也随着改变
让类与类之间产生了关系,是我们后面学习多态的前提

继承的特点:
java中只支持单继承,不支持多继承,但是支持多层继承

继承的注意事项:
父类中的私有成员,子类不能够被继承
不要为了部分功能去继承
父类中的构造方法,子类不能继承,但是可以通过super进行访问

继承中的子父类成员变量的关系
通过子类的对象中的一个成员方法访问一个变量的查找顺序:
首先在子类的成员方法局部范围找
再在子类的成员范围找
再在父类的成员范围找
如果没有找到,就会报错

super关键字:代表父类的引用
this关键字:代表本类的引用
super和this访问成员变量:
super.成员变量名; this.成员变量名;
super和this访问构造方法:
super(参数); this(参数);
super和this访问成员方法:
super.成员方法名(参数);this.成员方法名(参数);

继承中的子父类构造函数关系:
子类在进行初始化的时候,首先会初始化父类的成员,因为子类可能会使用到父类中的成员
在子类的构造方法的可执行代码第一行隐式的调用了super();从而访问父类的无参构造方法
访问父类的构造函数方法的代码必须放在可执行代码的第一行

如果父类中没有无参的构造函数怎么办呢?
子类可以通过super去手动调用父类中有参的构造函数

在本类中可以this调用本类的构造函数,通过this调用本类构造函数的代码也必须放在可执行代码的第一行

继承中的成员方法的关系:
通过子类对象访问一个成员方法:
首先在子类成员范围找
再到父类成员范围找
最后如果找不到,就会报错

方法的重写:子类中定义了一个好父类中一模一样的方法,但是子类的方法体又是自己定义的,这样的情况就叫方法的重写;
这样既沿袭了父类的功能,但是功能主体又是子类自己定义的
方法的注意事项:
父类中私有的成员方法,子类不能重写
子类重写的方法权限不能比父类的更低
子类重写父类中的静态方法时,子类的方法也必须用static修饰(不能算作方法的重写,多态的时候证明)

final关键字:
修饰类:类不能被继承
修饰变量:变量就变成了常量,只能被赋值一次,如果是成员常量必须在对象创建成功之前被赋值,如果局部常量必须在声明的时候赋值
修饰方法:方法就不能被重写
3.static关键字
static关键字是一个修饰符,可以修饰类,成员变量,成员方法
被static修饰的成员放在方法区中的静态区中
static修饰成员的特点:
随着类的加载而加载
优先于对象而存在的
可以直接使用类名调用,也可以使用对象名调用
static修饰成员的注意事项:
静态方法中没有this关键字存在
静态的成员方法只能访问静态成员(成员变量和成员方法),静态的只能访问静态的
原创粉丝点击