java 自我知识总结(十一)构造函数 继承 及类的加载顺序
来源:互联网 发布:编程电脑配置 编辑:程序博客网 时间:2024/06/08 05:46
构造函数:
特点:
1) 在类对象创建的时候被调用,而且只执行一次
2) 和类同名
3) 没有返回值(不是void) 里面也可以写return; 不可以返回任何内容。
4) 不能手工调用。
5) 可以重载,但是不可以重写。
6) 如果我们设计类的时候,没有提供任何构造函数,系统会为我们生成一个默认的无参的构造函数
7) 如果自定义一个构造函数,则系统不会再生成默认无参的构造函数了。
8) 构造函数的主要作用就是,对类对象进行初始化
static 关键字的特点
被static 在jvm读取class文件时,就对static的属性和函数进行处理.
static 静态的; 脱离对象存在
1) 多个对象共享一份数据资源。(java没有全局变量)
2) static修饰的函数或属性,可以根据类名点的方式去调用。Cat.count;
3) 他修饰的成员,在类加载的时候加载并完成初始化,只执行一次。
4) 无法从静态的上下文中引用非静态属性或者方法。this也不可以在static修饰的上下文中
执行顺序:
静态代码块执行了
构造代码块执行
构造函数执行了
类的加载顺序:
1) 将 Dog.class 这个字节码文件,装载(ClassLoader)到内存中:
2) 将static 修饰的属性在静态区中分配内存空间,完成初始化,并执行static 代码块
3) 在堆内存中分配对象的内存空间:对成员属性 完成默认的初始化操作
4) 执行构造代码块
5) 执行构造函数
6) 对象创建完成将dog这个引用执行堆内存中的地址
继承的好处:
1) 可以简化类的编写,可以复用代码
2) 可以让父类、子类以及后面的孙类之间,形成一个体系,这是多态的基础。
继承的特点:
1) java只支持单继承,不支持多继承(所谓的多继承,是一个类继承多个类)。多层继承。
2)private 成员不能被继承
备注:private 修饰的属性或者方法,只能在本类中调用。即使创建对象也访问不到。
3) 父类对象无法访问子类的属性,子类对象可以访问父类的非私有成员。
4) 如果子类中的成员与父类相同,则子类中的会覆盖父类中的。
5) 构造函数不可以被继承
继承后 父类子类顺序:
父类‐‐‐静态代码块
静态代码块
父类‐‐‐构造代码块
父类‐‐‐构造函数
构造代码块
构造函数
特点:
1) 在类对象创建的时候被调用,而且只执行一次
2) 和类同名
3) 没有返回值(不是void) 里面也可以写return; 不可以返回任何内容。
4) 不能手工调用。
5) 可以重载,但是不可以重写。
6) 如果我们设计类的时候,没有提供任何构造函数,系统会为我们生成一个默认的无参的构造函数
7) 如果自定义一个构造函数,则系统不会再生成默认无参的构造函数了。
8) 构造函数的主要作用就是,对类对象进行初始化
static 关键字的特点
被static 在jvm读取class文件时,就对static的属性和函数进行处理.
static 静态的; 脱离对象存在
1) 多个对象共享一份数据资源。(java没有全局变量)
2) static修饰的函数或属性,可以根据类名点的方式去调用。Cat.count;
3) 他修饰的成员,在类加载的时候加载并完成初始化,只执行一次。
4) 无法从静态的上下文中引用非静态属性或者方法。this也不可以在static修饰的上下文中
执行顺序:
静态代码块执行了
构造代码块执行
构造函数执行了
类的加载顺序:
1) 将 Dog.class 这个字节码文件,装载(ClassLoader)到内存中:
2) 将static 修饰的属性在静态区中分配内存空间,完成初始化,并执行static 代码块
3) 在堆内存中分配对象的内存空间:对成员属性 完成默认的初始化操作
4) 执行构造代码块
5) 执行构造函数
6) 对象创建完成将dog这个引用执行堆内存中的地址
继承的好处:
1) 可以简化类的编写,可以复用代码
2) 可以让父类、子类以及后面的孙类之间,形成一个体系,这是多态的基础。
继承的特点:
1) java只支持单继承,不支持多继承(所谓的多继承,是一个类继承多个类)。多层继承。
2)private 成员不能被继承
备注:private 修饰的属性或者方法,只能在本类中调用。即使创建对象也访问不到。
3) 父类对象无法访问子类的属性,子类对象可以访问父类的非私有成员。
4) 如果子类中的成员与父类相同,则子类中的会覆盖父类中的。
5) 构造函数不可以被继承
继承后 父类子类顺序:
父类‐‐‐静态代码块
静态代码块
父类‐‐‐构造代码块
父类‐‐‐构造函数
构造代码块
构造函数
阅读全文
0 1
- java 自我知识总结(十一)构造函数 继承 及类的加载顺序
- java 自我知识总结 (十)构造函数特点
- java继承各个类构造器加载的顺序
- Java的继承及继承中类的加载顺序
- Java的继承及继承中类的加载顺序
- JAVA 继承 构造函数的执行顺序
- JAVA 继承 构造函数的执行顺序
- 【java】构造函数的继承执行顺序
- java继承的构造函数调用顺序
- Java对象的构造过程---子类继承父类时(非)静态块及构造函数等的执行顺序
- C++构造函数的执行顺序及析构函数的执行顺序-多种情况:普通继承、虚拟继承、类构造函数调用其它类的构造函数
- Java继承之间类的加载顺序, 以及代码块、构造块的执行顺序
- 前端学习(十一)构造函数的继承
- Java中继承关系的构造函数的调用顺序
- java 自我知识总结 (十二)重载 及 重写
- java关于继承中构造函数的调用顺序
- java 继承类 变量、静态变量、构造函数执行顺序
- java 继承类 变量、静态变量、构造函数执行顺序
- LaTeX快速指南(二)LaTex的结构
- BZOJ4027 [HEOI2015]兔子与樱花 树形dp+贪心
- hdu 1242 Rescue
- 2017/11/19
- fzu 2195 检查站点
- java 自我知识总结(十一)构造函数 继承 及类的加载顺序
- 【常用排序算法】快速排序(Java实现)
- 交大oj-1008-二哥买期货 C++ 总结
- 201403-1 相反数 ccf
- scrapy使用random user-agent的两种方式
- SpringMvc之国际化-yellowcong
- SSM框架实战系列之二_Maven之一
- HTML:使用列表
- CodeForces