构造函数,this关键字,及静态方法,静态变量成员变量,静态代码块,构造代码块的问题

  1. 构造函数如果没有被显式的声明,那么对象在创建时候会调用默认的空参数的构造方法;
  2. 构造方法的名称必须和类名相同;
  3. 构造方法可以被重载,一个类中可以存在多个具有不同参数的构造方法,构造方法没有返回值类型,没有具体的返回值;
  4. 构造方法只会在对象创建的时候被调用一次,调用完成后即出栈,而一般的方法可以在对象创建后调用多次;
  5. 构造方法中,默认也是有return语句的,任何方法都是有return语句的,如果不显式的写明,那么在编译后会自动加上;
  6. 构造方法前面如果加上返回值类型,那么它将变成一个普通的方法,但是这样容易引起调用者的混淆,所以不推荐这样的写法;
  7. 构造方法可以加上权限修饰符,如果方法是private的,那么该构造方法不能够在创建对象的时候显式调用,但可以被其他构造方法在类的内部调用而完成某些指定的初始化动作;
  8. 构造方法之间可以调用,但是两个构造方法不能相互调用,即方法1调用方法2后,方法2不能再调用方法1,这样会导致内存溢出

  1. this 关键字用于区分局部变量和成员变量,比如在方法的参数中有名称与成员变量相同的变量,那么在该进行赋值等其他运算的时候,成员变量必须用this.作为前缀,以此作为区分
  2. 类的方法中如果有对成员变量的操作,那么该方法会持有this对象的引用地址,这样能够使方法知道,它将被哪个对象调用

  1. 如果类中的某个方法并没有涉及到任何的成员变量,那么这个方法使用的时候,类并没有实例化对象的必要,那么这个方法可以设为静态方法即static方法,并且可以通过类名.方法名直接进行调用,调用的时候虚拟机首先会到方法区中的静态代码区查找该方法,如果存在则入栈调用;
  2. 静态方法只能访问类中的其他静态方法,或者静态成员变量,而不能直接访问非静态方法和非静态的成员变量
  3. 静态方法不能出现this关键字和super关键字,因为持有对象的引用是没有意义的
  4. 主函数必须是静态的
  5. 静态成员变量即被static修饰的成员变量,可以直接通过类名.方法名直接进行调用,而且同类的多个对象应该是保有一份相同的静态成员变量,静态成员变量优于对象的存在,并且静态成员随着类的加载而加载,而不是对象,会随着类的消失而消失,而且存储在方法区的静态代码区中,而非静态成员变量会随着对象生命周期而存在或消失,并且存在存放堆内存的对象

  1. 静态代码块是为了完成某个共同的初始化类操作而存在的,随着类的加载而执行,并且只加载一次
  2. 构造代码块会随着对象的加载而加载,每创建一个新的对象,将会加载一次

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值