面向对象-构造函数
来源:互联网 发布:杭州淘宝网汽车拍卖 编辑:程序博客网 时间:2024/05/20 17:25
需求:
为了描述事物更准确,发现事物对应的很多对象一创建就有了一些初始化的数据。
通过Java中的另一个小技术完成,就是构造函数,对象本身就是构造出来。
构造函数的作用:可以对对象创建进行初始化。
构造函数在代码中的体现:
1:没有返回值类型,因为构造函数,创建完成就结束,不需要结果,void也不需要写,区别于一般函数。
2:构造函数名称和类名一致。
3:没有具体的返回值。
问:
没有学习构造函数是,对象已创建出来了,那么该对象是否有被构造呢?或者说是否有调用函数呢?
是的,必须调用!
那么类中那个构造函数是什么呢?
class Person
{
}
main()
{
Person p=new Person();
}
这就是已经调用了Person类中的空参数的构造函数。
类中有定义构造函数吗?有的,只要定义一个类。
该类中默认就有一个空参数的构造函数,是编辑器编译时添加到class文件中。
注意:如果在类中自定义了构造函数,那么默认的空参数构造函数编辑器就不添加了。
原理:
没有定义对象的初始化过程,编辑器会添加一个默认的初始化过程。
如果定义了指定的对象初始化过程,默认的就不添加了。
构造函数的细节:
1,一个类中可以有多个构造函数,它们的存在是以重载的形式体现的。
2,构造函数中也是有return语句的,用于结束初始化动作的。
3,构造函数是否能被private修饰呢?
能,作用,其他程序无法创建该类的对象。
class Person()
{
private Person(){}
}
main()
{
Person p=new Person();//创建对象,无法被初始化。
}
构造函数与一般函数的区别:
1,写法不一样
2,运行上有差别。
构造函数:对象一创建就会调用对应的构造函数
一般函数:是对象创建后,才会调用所需的一般函数。
3,构造函数在对象创建时,仅调用一次(初始化动作只做一次,而且先执行),一般方法可以被对象调用多次。
举例:
class Person{ private String name; private int age; //定义构造函数,对象一创建就具备姓名。 Person(String n) { //将接受到的值赋值给对象的name name=n; } public void speak() { System.out.println("name="+name+",age="+age); }}public class test { public static void main(String[] args) { Person p =new Person("chen");//对象创建时,必须会调用对应的构造函数。因为对象需要初始化。 p.speak(); }}
补充:构造函数之间的调用
class Person{ private String name; private int age; Person () { } //初始化姓名 Person(String n) { name=n; } //初始化姓名和年龄 Person(String n,int a) { this(n); // 调用一个字符串参数的构造函数。 // name=n; age=a; }}public class test { public static void main(String[] args) { Person p =new Person("chen",20);//对象创建时,必须会调用对应的构造函数。因为对象需要初始化。 }}
初步接触this关键字。
- 面向对象构造函数
- 面向对象-构造函数
- 面向对象--构造函数
- 面向对象之构造函数
- 面向对象(构造函数)
- Java构造函数(面向对象)
- 面向对象之构造函数
- 面向对象,函数构造方法
- javascript面向对象 -- 构造函数
- 面向对象中的构造函数
- 1.面向对象--构造函数-定义 02-面向对象(构造函数-默认构造函数 03-面向对象--构造函数-构造函数和一般函数的区别 04-面向对象(构造函数-重载 05-面向对象(构造函数-内存图解)
- java面向对象思想之构造函数
- JavaScript面向对象编程[一] 构造函数
- javascript面向对象编程构造函数继承
- 1.面向对象的封装,构造函数!
- 面向对象 之封装、构造函数
- 【Java面向对象设计 构造函数设计】
- 【Java面向对象设计 构造函数设计】
- 一个java程序中涉及的内存区域
- javascript获取select值
- JSP页面的静态包含和动态包含
- java_web 学习记录(十):jxl excel export(二)
- Unable to load configuration.
- 面向对象-构造函数
- iOS秒杀倒计时
- B. Mike and strings
- jqgrid无数据样式呈现
- 十八、浏览器兼容性问题
- MyEclipse中创建maven项目时: Could not resolve archetype
- java中static的使用
- Docker Sample applications 文档 ——Quickstart: Compose and Django
- URL +io 进行使用 -后台使用现有接口进行调用。