文章目录
构造方法
构造方法:
- 作用:创建对象;
- 对象与引用概念
- 对象:目前在使用new运算符在堆内存中开辟的内存空间称为对象。
- 引用:一个变量,不一定是局部变量,还可能是成员变量。引用保持的是内存地址,指向堆内存当中的对象。
- 所有访问实例相关的数据,都需要通过“引用.”的方式访问,因为只有通过引用才能找到对象。
- 只有一个空引用,访问对象的实例相关的数据会出现空指针异常。
java中的构造方法
- 1、构造方法:构造器、构造函数
- 2、构造方法语法结构:
[修饰符列表] 构造方法名 (形式参数列表){
构造方法体;
}
例:public User(){ } 那么他的类也是User
普通方法的语法结构(main方法):
[修饰符列表] 返回值类型 方法名 (形式参数){
方法体;
} - 3、对于构造方法来说,”返回值类型“不需要指定。并且不能写void【写void 是普通方法】
- 4、构造方法的方法名必须和当前类的类名一致。
- 5、构造方法的调用:
(方法修饰符中有static时)普通方法调用:类名.方法名(实参)
(方法修饰符中没有有static时): 引用.方法名(实参) - 6、构造方法执行之后的返回值:
每一个构造方法执行完之后,都有返回值。但是类似“return”的语句不需要写
构造方法结束之后,java程序自动返回值。
返回类型是构造方法所在类的类型。由于返回类型是类本身,所以返回值类型不需要编写 - 7、当一个类中,没有定义任何构造方法,系统默认给该类提供一个无参数的构造方法
这个构造方法被称为缺省构造器。 - 8、当一个类明确的将构造方法定义出来,那么系统不再默认为这个类提供缺省构造器。
建议开发中手动的为当前类提供无参数的构造方法。考虑到其他人也可能会定义无参的构造方法。 - 9、构造方法支持重载机制,在一个类中构造多个构造方法——参数不同。
public class User {
public User() {
System.out.println("默认的构造方法执行");
}
//有参数的构造方法
public User(int i) {
System.out.println("带有int类型的构造方法执行");
}
public User(String i) {
System.out.println("带有String类型的构造方法执行");
}
//普通方法 :static ——调用:类名.方法名
public static void dosome() {
System.out.println("普通方法带static执行");
}
//普通方法:没有static ——调用:引用.方法名
public void doother() {
System.out.println("普通方法没有static执行");
}
}
public class ConstructorTest01 {
public static void main(String[] args) {
//创建user对象
//调用User类的构造方法来完成对象的创建
//构建方法完成之后,即new User() 方法会返回创建对象在堆内存中的地址
User u = new User();
new User(1);
new User("a");
//普通方法 带static
User.dosome();
//普通方法 没有static
u.doother();
}
}