我们说构造函数能处理参数的问题,但其实也要分三种情况进行讨论。目前有三种类型:无参、有参和默认。根据不同的参数情况,需要我们分别进行构造函数的讨论。这里重点是无参构造函数的初始化也要分两种方法进行分析。下面我们就这三种不同的构造函数类型分别为大家进行展示。
1.无参构造函数
不带入参的构造函数叫无参构造函数,对类的成员初始化有两种方法:
(1)在类成员变量声明时进行初始化
publicclassMyClass{ privateStringname="Jerry"; privateintid=1; publicMyClass() { } }
(2)在无参构造函数的方法体里对类成员变量初始化
publicclassMyClass{ privateStringname; privateintid; publicMyClass() { this.name="Jerry"; this.id=1; } }
2.有参构造函数
带入参的构造函数叫有参构造函数。
publicclassEmployee{ intempId; StringempName; //parameterizedconstructorwithtwoparameters Employee(intid,Stringname){ this.empId=id; this.empName=name; } voidinfo(){ System.out.println("Id:"+empId+"Name:"+empName); } publicstaticvoidmain(Stringargs[]){ Employeeobj1=newEmployee(10245,"Chaitanya"); Employeeobj2=newEmployee(92232,"Negan"); obj1.info(); obj2.info(); } }
输出:
Id:10245Name:Chaitanya Id:92232Name:Negan
当类里没有显式地定义代码来实现任何构造函数时,Java编译器将会在编译的字节码(.class文件)里面为这个类插入默认构造函数。由于是在编译阶段插入,因此在源文件(.java)里是不会找到默认构造函数的代码的。
3.默认构造函数
默认构造函数形式上类似无参构造函数(都没有入参),但是二者并不能划等号,区别如下:
默认构造函数方法体为空,无参构造函数方法体可以为空也可以不为空;
只要类里显式的创建了一个构造函数,比如一个无参构造函数,编译器都不会再为这个类创建默认构造函数了。
原文来自:https://www.py.cn
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容