-
关于Java类中的构造方法:
1、构造方法又被称为构造函数/构造器/Constructor
2、构造方法语法结构:
[修饰符列表] 构造方法名(形式参数列表){
构造方法体;
}
3、回顾普通方法的语法结构:
[修饰符列表] 返回值类型 方法名(形式参数列表){
方法体;
}
4、对于构造方法来说,“返回值类型”不需要指定,并且也不能写void,只要写上void,那么这个方法就成为普通方法了。
5、对于构造方法来说,构造方法的方法名必须和类名保持一致,
6、构造方法的作用?
构造方法存在的意义是:通过构造方法的调用,可以创建对象。
创建对象;
创建对象的同时,初始化实例变量的内存空间。
7、构造方法怎么调用?
普通方法的调用:方法修饰符中有static的时候:类名.方法名(实参列表);方法修饰符中没有static的时候:引用.方法名(实参列表)
构造方法的调用:new 构造方法名(实参列表)
8、构造方法调用之后有返回值!但是“return 值”这样的语句不用写,并且返回值类型就是构造方法所在类的类型,所以返回值类型不需要编写。
9、当一个类中没有定义任何构造方法的话,系统默认给该类提供一个无参数的构造方法,这个构造方法被称为缺省构造器。当一个类显示的将构造方法定义出来了,那么系统就不再默认为这个类提供缺省构造器。建议开发中手动的为当前类提供无参数构造方法,因为无参数构造方法太常用了。
10、构造方法支持重载机制。
11、使用:
只能跟随new一起使用,没有办法调用
构造器不能和static(因为static跟随类), fianl ,abstract 一起使用
如果没有自定义构造器,编译器会自动为你添加一个空构造(默认)
如果存在自定义构造器,编译器都不会再为你提供任何构造器
构造器也是方法,可以构造器的重载,根据创建对象后面的( )–>构造器的参数列表
为了以后定义自定义模板类,最好至少提供一个构造 -
快捷键
1、按住Ctrl,鼠标移动到查看的元素上,出现下划线的时候单击。
2、一个类中元素过多,在当前类中使用Ctrl+O,然后输入想要查找的元素名称。 -
构造器含义:
构造器又称为构造方法,
属于类中的第三大成员(属性、方法、构造器),和方法很像,都具有方法体,都需要调用才能执行,但不是通过对象名.调用,而是通过其他方式调用(重点)。是一种只用来初始化对象信息的特殊方法,初始化对象信息(不是用来创建对象)。 -
构造器语法:
【修饰符】 方法名(参数列表){
构造器体
}
注意:
1、方法名和类名完全一致(重点)
2、没有返回值 -
构造器特点:
1、一个类如果没有显式的提供构造器,则系统默认提供一个无参构造器
2、如果类中显式的声明了构造器,则系统不再提供构造器
3、构造器可以重载(一个类中可以有多个构造器)
4、构造器对于一个对象来讲,只调用一次
语法:new 构造器名(参数列表);
5、构造器之间也可以互相调用
语法:this(实参列表);
注意:构造器的调用必须放在构造器的第一句! -
构造器好处
1、用于创建对象
2、可以在创建对象的同时进行初始化操作,一般用于对属性赋值,提高代码的重用性 -
对象和引用:
1、对象和引用的概念?
对象:目前在使用new运算符在堆内存中开辟的内存空间称为对象。
引用:是一个变量,不一定是局部变量,还可能是成员变量。引用保存了内存地址,指向了堆内存中的对象。
所有访问实例相关的数据,都需要通过“引用”的方式访问,因为只有通过引用才能找到对象。
只有一个空的引用,访问对象的实例相关的数据会出现空指针异常。
2、方法在调用时参数是怎样传递的?
方法调用的时候,涉及到参数传递的问题。传递的时候Java只遵循一种语法机制,就是将变量中保存的“值”传递了过去,只不过有的时候这个值是一个字面值(10);有的时候这个值是另一个Java对象的内存地址(0x1234)
例子:
int i = 10;
int i = j;// i传递给j,实际上只是将i变量中保存的10传递给了j,j实际上是一块全新的内存空间
User u = 0x1234;(地址)
User u2 = u;// u传递给u2,实际上是将0x1234这个值赋值给u2了,u和u2实际上是两个不同的局部变量,但是它们这两个变量指向堆内存中的同一个Java对象。