Java构造方法学习
2018-03-22 10:39
295 查看
一、构造方法的定义与声明
构造方法的名字必须与所在类的名字一致没有返回值,并且不能使用void(直接空着就好)。访问权限可以为任意,但一般使用public权限!构造方法中的参数可以根据需要自行定义,参数不同的方法构成重载。例子: class Fu
{
public Fu(){} //无参的公有构造方法
public Fu(int i){} //参数类型为int的公有构造方法
......
}
public class Demo extends Fu
{
public Demo(){} //无参的公有构造方法
public Demo(int i){} //参数类型为int的公有构造方法
public Demo(int i,double d){} //参数类型为int和double的公有构造方法
...
}
二、构造方法的使用
java中构造方法的使用有两个地方,一个是跟在关键字new后面,类名加上一个小括号,小括号内根据实际加上实参,另一个是跟在关键字super或者this后面加上一个();()内根据实际添加实参。例子1:
Demo demo = new Demo(); //这里是调用的是一个无参的构造方法,必须声明在方法中,最好声明在主方法!
上面的构造方法根据实际添加实参,jvm根据根据构造方法的参数不同加载不同的构造方法
例子2:
public Demo(){ this(2); //这里调用参数为int类型的本类的构造方法 }
例子3:
public Demo(){ super(1); //调用参数为int类型的父类的构造方法 }
注意:例子2和例子3中调用构造方法只能出现在构造方法中,而且必须出现在第一行,两者不能出现在同一个构造方法中。而且this和super调用构造方法时,要留构造方法出口,意思就是:最后调用的构造方法中没有再调用别的构造方法。
三、构造方法的作用
1、为了初始化成员属性,而不是初始化对象,初始化对象是根据new关键字实现的;2、通过new调用构造方法初始化对象,编译时根据参数签名来检查构造函数,称为静态联编和编译多态;
3、创建子类对象会调用父类构造方法,但是不会创建父类对象,只是调用父类构造方法初始化父类成员属性;
相关文章推荐
- JAVA学习笔记(五)继承时的构造方法、多态、接口、汉诺塔
- 我的java学习之路之构造方法和new关键字
- Java学习笔记2:当构造方法有多个参数时考虑使用Builder
- java学习123之构造方法
- Java学习笔记之 File构造方法
- 学习effective java-4创建和销毁对象之利用私用构造方法强化类的非实例化
- 重踏学习Java路上_Day07(成员与局部变量,形参,匿名对象,封装,private,this,构造与成员方法,static)
- 20150902 Java学习笔记-构造方法,关键字,封装性
- java学习记录(二)static与构造方法的回顾总结
- java学习笔记之构造方法私有化与单例模式初讲
- 学习总结:java面试方法重写详解,静态代码块和构造方法执行顺序问题
- java学习之旅34--面向对象_07_构造方法
- Android(java)学习笔记107-0:通过反射获得构造方法并且使用
- Java学习记录(一):Java中继承与静态static、非静态、构造方法等的初始化顺序
- java学习之旅35--面向对象_08_方法重载_构造方法重载
- 18天Java学习---7.面向对象编程02-类的封装性以及构造方法
- Android(java)学习笔记107-1:通过反射获得带参构造方法并且使用
- Java学习之面向对象(方法的重写 overwrite,super的使用,继承中的构造方法)
- Java学习笔记2:当构造方法有多个参数时考虑使用Builder