java中的构造函数
来源:互联网 发布:淘宝退货售后卡填什么 编辑:程序博客网 时间:2024/06/06 22:19
使用构造器时需要记住:
1.构造器必须与类同名(如果一个源文件中有多个类,那么构造器必须与公共类同名)
2.每个类可以有一个以上的构造器
3.构造器可以有0个、1个或1个以上的参数
4.构造器没有返回值,因为构造对象,创建完就结束,需要结果。void也不要写,因为要有区别与一般函数。
5.构造器总是伴随着new操作一起调用
6.多个构造函数是以重载的形式存在的。
需求:为了描述事物更准确,发现事物对应的很多对象一创建时,
就有了,一些初始化的数据。在类中该如何完成的。
通过Java中的另一个小技术完成:就是构造函数。对象本身就是构造出来,
构造时,需要做一些动作这些应该定义在函数内。
就有了,一些初始化的数据。在类中该如何完成的。
通过Java中的另一个小技术完成:就是构造函数。对象本身就是构造出来,
构造时,需要做一些动作这些应该定义在函数内。
构造函数(Constructor)有什么用?可以对对象创建进行初始化。
类中有定义该构造函数吗?有的。只要定义一个类,
该类中默认就有一个空参数的构造函数,是编译器编译时添加到class文件中。
注意:如果在类中自定义了构造函数,那么默认的空参数构造函数编译器就不添加了。
原理:没有定义对象的初始化过程,编译器会添加一个默认的初始化过程。
如果定义了指定的对象初始化过程,默认的就不添加了。
该类中默认就有一个空参数的构造函数,是编译器编译时添加到class文件中。
注意:如果在类中自定义了构造函数,那么默认的空参数构造函数编译器就不添加了。
原理:没有定义对象的初始化过程,编译器会添加一个默认的初始化过程。
如果定义了指定的对象初始化过程,默认的就不添加了。
构造函数的细节:
1,一个类中可以有多个构造函数,它们的存在是以重载的形式体现的。
2,构造函数中也是有return语句的,用于结束初始化动作的。
3,构造函数是否能被private修饰呢?能,作用:其他程序无法创建该类的对象。
1,一个类中可以有多个构造函数,它们的存在是以重载的形式体现的。
2,构造函数中也是有return语句的,用于结束初始化动作的。
3,构造函数是否能被private修饰呢?能,作用:其他程序无法创建该类的对象。
构造函数和一般函数的区别?
1,写法不一样。不重要。
2,运行上有差别,对象一创建就会调用对应的构造函数。
一般方法是对象创建后,才会调用所需的一般函数。
问:有了构造函数初始化姓名,那么还需要setName方法吗?
需要,因为对象创建后,如果需要对数据进行修改,可以通过set完成。
3,构造函数在对象创建时,仅调用一次(初始化动作只做一次,而且先执行)。一般方法可以被对象调用多次。
1,写法不一样。不重要。
2,运行上有差别,对象一创建就会调用对应的构造函数。
一般方法是对象创建后,才会调用所需的一般函数。
问:有了构造函数初始化姓名,那么还需要setName方法吗?
需要,因为对象创建后,如果需要对数据进行修改,可以通过set完成。
3,构造函数在对象创建时,仅调用一次(初始化动作只做一次,而且先执行)。一般方法可以被对象调用多次。
示例:
A.java
public class A{ public A(){ System.out.println("调用了无参的构造函数"); } public A(String mess){ System.out.println("调用了有参的构造函数\n"+ "参数内容为:"+mess); } }
Test.java
public class Test{ public static void main(String [] args){ A a_1=new A();//调用无参的构造函数 A a_2=new A("Hello");//调用有参的构造函数 } }
输出结果:
继承与构造函数
使用super调用父类构造器的语句必须是子类构造器的第一条语句
如果子类构造器没有显式地调用父类的构造器,则将自动调用父类的默认(没有参数)的构造器。如果父类没有不带参数的构造器,并且在子类的构造器中又没有显式地调用父类的构造器,则java编译器将报告错误
示例:
A.java
public class A{ public A(){ System.out.println("调用了A的无参构造函数"); } public A(String mess){ System.out.println("调用了A的有参的构造函数\n"+ "参数内容为:"+mess); } }
B.java
public class B extends A{ public B(){ System.out.println("调用了B的无参构造函数"); } public B(String mess){ super(mess); System.out.println("调用了B的有参构造函数\n"+ "参数内容为:"+mess); } }
Test.java
public class Test{ public static void main(String [] args){ B b_01=new B(); B b_02=new B("你好"); } }
输出结果:
1 0
- Java中的构造函数
- Java中的构造函数
- java 中的构造函数
- Java中的构造函数
- java中的构造函数
- java中的构造函数
- java中的构造函数
- java中的构造函数
- Java中的构造函数介绍
- Java中的拷贝构造函数
- [java]继承中的构造函数
- Java中的拷贝构造函数
- JAVA继承中的构造函数
- java子类中的构造函数
- 体验JAVA中的构造函数
- Java 构造函数中的super()
- 谈java中的构造函数
- Java类继承中的构造函数问题
- BZOJ1047: [HAOI2007]理想的正方形 单调队列
- 用maven打包dubbo项目并部署到云平台
- 子串判断
- 工厂方法模式
- Eclipse一直Building Workspace
- java中的构造函数
- Error:Execution failed for task ':app:clean'. > Unable to delete directory:......
- tomcat热部署配置
- 事务
- AOP应用——事务管理
- div 移动
- 已知需要找给顾客的零钱金额为N,当前钱币的面值种类为1,9,10三种,求找给顾客尽量少的钱币数的找零方法,给出程序算法设计思路
- SQL语句中SUM函数返回NULL的解决办法
- [31] Vijos P1495 笨小猴(模拟)