java中类的方法分类:构造方法、实例方法和类方法的区别

构造方法

  • 定义:负责对象的初始化工作,并为实例变量赋予合适的初始值。
  • 作用:构造出一个类的实例;
  • 构造方法在调用执行之后是有返回值的,但是不用写“return”语句,因为构造方法结束的时候java程序自动返回值,返回值类型是构造方法所在类的类型,由于构造方法的返回值类型就是类本身,所以返回值类型不需要编写。
  • 当一个类你没有自定义构造方法的话,系统默认提供一个无参构造,这个构造方法称为缺省构造器。
  • 如果手动定义了构造方法,那么系统将不再提供缺省构造器。
  • 构造方法支持重载
  • 实例变量的内存空间是在构造方法执行的过程中完成开辟的,同样的,实例变量的初始化也是在构造方法执行的过程中完成的。
  • 书写要求:方法名与类名相同;不要写返回类型(如void、return等);不能被static、final、native、abstract和synchronized修饰,不能被子类继承。
  • 调用无参构造方法会默认给当前类的实例变量初始化,如下图
  • 在这里插入图片描述

实例方法

  • 无static修饰,也叫非静态方法
  • 当类的字节码文件被加载到内存时,类的实例方法并没有被分配入口地址,只有该类的对象被创建后,才会给实例方法分配入口地址,从而实例方法可以被类创建的所有对象调用 ,还有一点就是,当第一个类的对象被创建时,实例方法的入口地址会完成分配,后续创建对象时,不会再分配入口地址,即该类的所有对象共用实例方法的入口地址,当该类的所有对象都被销毁时,入口地址才会消失。
  • 实例方法可以引用实例变量和类变量
  • 实例方法可以使用super和this关键字
  • 实例方法中可以调用类方法

类方法

  • 有static修饰,也叫静态方法。
  • 当类的字节码文件被加载到内存时,类方法的入口地址就会完成分配,所以类方法不仅可以被该类的对象调用,也可以直接通过类名完成调用,类方法的入口地址只有程序退出时才消失。
  • 类方法中不能引用实例变量,因为给类方法分配内存地址的时候,实例变量还未分配内存地址。
  • 在类方法中不能使用super和this关键字,因为super和this分别是指向父类和本类的对象,在类方法中调用的时候,这些指代的对象可能还没有创建出来。
  • 类方法中不能调用实例方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值