Java构造器的使用
来源:互联网 发布:简述网络教学设计原则 编辑:程序博客网 时间:2024/06/05 05:06
Java构造器与c++构造函数非常的类似,相同点如下:
1、构造函数的名称均与类名相同。
2、均没有函数类型,因此也没有返回值。
3、都是在new时隐式的调用(实例化一个类时)。
4、都不可以在除构造器之外的函数中显示调用(???)。
5、构造函数都不可以被private关键字修饰。
6、一个类可以有一个以上构造函数,若没有,编译器默认有一个不带参数的空构造函数。.
7、一旦显式的写出了构造函数,无论显式写出的函数是否有参数,编译器将不在默认有一个不带参数的空构造函数。(即不写时,默认有一个不带参数的构造函数,一旦写了,即使是写了一个带参数的构造函数,原来默认的不带参数的也不再存在了,除非自己手写)。
Java中构造器的独有特点(相比c++):
1、Java的构造函数可以是默认类型,或者申明为public。
2、构造器中可以显式的调用该类或者父类的构造函数,this()代表本类构造器,super()代表父类构造器,要调用带参数的构造器时,括号中写参数。(注意:显示调用构造器必须写在构造器内容的第一行,且只能调用一个,如果不写,默认调用父类不带参数的构造器。)(问:不妥吧?如果我在构造器中写了this(),那么在构造子类时不就不能调用父类的构造函数了,有些继承的变量将不能初始化。答:如果调用了this(),this()中也会有对父类构造器的调用,所以还是可以利用到父类构造器的,不过确实也有限制,即只能调用和this()相同的父类构造器。)这也能从侧面反映Java的执行顺序,实例化类时直接调用本类的构造器,只不过在构造器的第一行会显式或者隐式的出现父类构造器,但是在实例化时不会先跑到父类中执行构造器,而后再执行子类的构造器。
3、先想到这些。。。以后再补充
public class Main{public static void main(String[] ges){System.out.println("first:");Teacher t = new Teacher(3);System.out.println("second:");t.name = "小布";t.age = 70;t.school = "清华大学";t.subject = "Java";t.seniority = 12;t.say();return ;}}class People{People(int a){System.out.println("父类带参数的构造函数,参数为: "+a);}People(){System.out.println("父类不带参数构造函数");}public String name = "hehe";int age;int height;void say(){System.out.println("我的名字是"+name);}}class Teacher extends People{String school;String subject;int seniority;Teacher(){System.out.println("子类无参数构造函数");}Teacher(int k){this();System.out.println("子类含参构造函数,参数为:"+k);}void say(){System.out.println("我是叫"+name+"的老师");}}
- Java构造器(构造方法)的使用
- java 构造器的使用
- java构造器的使用
- Java构造器的使用
- java中构造器的使用
- java构造函数的使用
- 构造器的使用
- Java的构造器
- JAVA的构造器和构造方法
- JAVA的构造器和构造方法
- 老紫竹JAVA基础培训(7),构造器的使用
- JAVA 中构造方法的使用
- Java私有构造函数的使用
- java构造者模式的使用
- java有参构造函数的使用
- java构造器的作用!
- java的构造器调用
- java类的构造器
- [Win32] 服务程序开发(4)自定义控制码与服务通信
- 最长回文字串
- XlistView改进
- nyoj448 寻找最大数
- 通用链表的设计与实现
- Java构造器的使用
- Tomcat创建虚拟目录和程序热部署
- sed删掉换行符
- php 防止POST重复提交最简单方法
- recordset.editmode
- 使用select函数改进客户端/服务器端程序
- 测试步骤中设置断言
- CSS实现跨浏览器兼容性的盒阴影效果
- 关于私有继承