java学习笔记008

学习构造方法、构造器 constructor method

/*

  • 构造方法语法结构
    [修饰符列表] 构造方法名(形式参数列表){
    构造方法体;
    }
    • 对于构造方法来说,返回值类型不需要指定,并且不能写 void.只要写上void,那么这个方法就成为普通方法了。

    • 普通方法的语法结构
      [修饰符列表] 返回值类型 方法名(形式参数列表){
      方法体;
      }

    • 对于构造方法来说,构造方法的方法名必须和类名保持一致

    • 构造方法的作用

      • 通过构造方法的调用,可以创建对象
    • 构造方法应该怎么调用?

      • 普通方法是这样调用的: 方法修饰符中有static的时候 类型.方法名(实参列表) or 方法修饰符中无static 的时候:引用.方法名(实参列表)
      • 构造方法的调用 : new 构造方法名(实参列表)
    • 构造方法调用后有返回值

      • 实际执行结束后,有
      • 每一个构造方法实际上执行结束之后都有返回值,但是这个 return 值; 这样的语句不需要写。构造方法结束的时候,java程序自动返回值。并且返回值类型是构造方法所在类的类型,所以返回值类型不需要添加
    • 当一个类中没有定义任何构造方法的话,系统默认给该类提供一个无参数的构造方法,这个构造方法被称为缺省构造器。

    • 当一个类显示的将构造方法定义出来了,那么系统则不再默认为这个类提供缺省构造器

    • 建议开发中手动的为当前类提供无参数构造方法,因为无参数构造方法太常用了

    • public class Class2Method {
      public Class2Method(){
      System.out.println(“默认 构造器”);
      }
      public Class2Method(int a){
      System.out.println(“带有int类型参数的构造器”);
      }
      }

    • 构造方法调用

      • 只要构造函数调用就会创建对象,并且一定是在“堆内存” 中开辟内存空间
        • Class2Method d =new Class2Method();
        • Class2Method h =new Class2Method(10);
    • 构造方法的作用

      • 创造对象
      • 创造对象的同时,初始化实例变量的内存空间,给实例变量赋值
      • 成员变量之实例变量,属于对象级别的变量,这种变量必须先有对象,才能有实例变量
      • 实例变量没有手动赋值的时候,系统默认赋值,那么这个系统默认赋值是在什么时候完成的呢?
      • 是类加载的时候吗?
      • 不是,因为类加载的时候只加载了代码片段,还没来的及创建对象,所以此时实例变量并没有初始化。
      • 实际上,实例变量的内存空间是在构造方法执行过程当中完成开辟的,完成初始化的
      • 系统在默认赋值的时候,也是在构造方法执行过程当中完成的赋值
    • 对象和引用

      • 对象:目前在使用new运算符在堆内存中开辟的内存空间称为对象
      • 引用:是一个变量,不一定是局部变量,还可以是成员变量。引用保存了内存地址,指向了堆内存当中的对象
      • 所有访问实例相关的数据,都需要通过 引用. 的方式访问,因为只有通过引用才能找到对象
      • 只有一个空的引用,访问对象的实例相关的数据会出现空指针异常
    • java语言当中,方法调用的时候涉及到参数传递的问题

    • 参数传递实际上传递的是变量中保存的具体值

    • 方法调用的时候,涉及到参数传递的问题,传递的时候,java只遵循一种语法机制:就是将变量中保存的“值”传递过去了,只不过有的时候这个值是一个字面值

    • 有的时候这个值是另一个java对象的内存地址

    • int i=10;

    • int j=i; //i传递给j,实际上只是将i变量中保存的10传递给j了,j实际上是一块全新的内存空间

    • User u=0x1234;

    • User u2=u; // u传递给u2,实际上是将0x1234这个值赋值给u2了,u和u2实际上是两个不同的局部变量,但是他们这两个变量指向堆内存中同一个java对象。

  • */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

__BC__

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值