java 构造器小解
来源:互联网 发布:贵州高考录取数据 编辑:程序博客网 时间:2024/06/04 18:55
构造器可以改变这种默认的初始化。
构造器的作用:是创建java对象的重要途径,是不是说构造器完全负责创建java对象?????
答:是创建java对象的重要途径,通过new关键字调用构造器时,构造器也确实返回了该类的对象,但这个对象并不是完全由构造器负责创建的。
系统调用构造器时的执行过程分析:
当调用构造器时,系统会为该对象分配内存空间,并对该对象进行默认的初始化,这个对象已经产生了,---------------------------------------》这些操作在构造器执行
之前已经完成了。也就是在构造器的执行体执行之前,系统已经创建了一个对象,只是这个对象还不能被外部程序访问,只能在构造器中,通过this引用它,当构造器的执行体结束之后,这个对象作为该构造器的返回值被返回,同时还赋给另一个引用类型的变量。从而外部程序可以访问该对象。
个人理解:构造器作用,1.创建java对象的重要途径. 2.对系统产生的对象初始化 3.并将该对象作为返回值返回,是外部程序可以访问.
一个类中构造器之间的相互调用(一个构造器调用另一个构造的初始化代码):构造器不能直接调用,必须使用new关键字调用,但是会导致系统重新创建一个对象。为了避免重新创建对象,可以使用this关键字来调用相应的构造器
this调用另一个构造器,只能在构造器中使用,而且必须作为构造器语句的第一条语句。
super是java提供的一个关键字,是直接父类的引用。java程序创建某个类得对象时,会隐式的创建该类的父类对象,只要有一个子类对象存在,则一定存在一个与之对应的父类对 象。
this,super:不能出现在static修饰的方法中,static修饰的方法是属于类得,该方法的调用者是类而不是对象,也就不存在对应的对象以及父对象了,所以this,super引用就失去了意义。
使用super调用父类构造器必须出现在子类构造器的第一行。所以this调用和super调用不会同时出现。
子类构造器调用父类构造器的几种情况:
1.子类构造器的执行体的第一行用super显式调用父类构造器,系统将根据super 调用里传入的实例列表调用父类对应的构造器
2.子类构造器执行体的第一行是this显式调用本类中重载的构造器,系统根据this调用里传入的实参列表调用本类中另一个构造器,执行本类中另一个构造器时,既会调用父类的构造器。
3.子类构造器中既没有this,也没有super,系统将会在执行子类构造器之前隐式调用父类无参的构造器
不管上面哪种情况,当调用子类构造器来初始化子类对象时,父类构造器总会在子类构造器之前执行,不仅如此,执行父类构造器时,系统会再次上溯执行其父类的构造器。。。。以此类推。创建任何java对象,最先执行的总是java.lang.Object类得构造器
- java 构造器小解
- java 安全 加密 小解
- Java元数据小解
- java Static 小解
- Java 设计模式小解
- Hadoop调度器小解
- 关于java的环境变量小解
- javac 和 java classpath 小解
- JSON解析器jq小解
- [java]java构造器
- java.beans.PropertyChangeSupport小解! 简洁精辟
- java 中import 和 package 小解
- java与javascript中this的小解
- 关于Java构造器
- java静态构造器
- Java 构造器
- java构造器
- java构造器
- java 中super 的几种用法
- Uva 1030 - Image Is Everything
- 游戏服务器端开发要点
- UVa 567 - Risk(Floyd)
- C++实现插入排序
- java 构造器小解
- ZOJ 2928 模拟退火 求三维费马点
- 黑马程序员(九)_7K面试题(交通灯管理系统) (根据张老师的视频按照自己想法修改的)
- POJ2431 Expedition
- C++实现堆排序
- tv助手项目阶段性总结
- 矩阵运算 java
- 10 java泛型
- hash算法原理及常见函数