面向对象之构造器、this、static、块

一、new关键字做的事情
在堆中为对象开辟空间,成员变量跟随对象进入到堆内存并附默认值
调用构造器为对象初始化信息
将地址返回给引用

二、构造器
1、构造函数或构造方法
是一种特殊的方法
2、作用
为对象初始化信息,为对象的属性赋值,不是用来创建对象的,new能够创建对象
3、调用
只能和new一起使用
4、定义
修饰符 类名(参数){
初始化信息代码;
}
5、注意
构造器可以实现重载
如果没有显示定义任何构造器,编译器会自动默认提供一个空构造(没有参数)
如果存在显示定义构造器,编译器都不会再提供任何构造器
至少实体类中自定义一个空构造,根据需求提供带参

三、this关键字
1、this指代当前new的对象
2、作用
在构造器的首行通过this(实参)调用本类中其他构造器
构造器不能相互调用
区分同名成员与局部变量问题
3、默认会发生就近原则
可以通过this.调用成员,否则默认找局部
如果不存在局部与成员同名问题,指代成员的this.可以省略
4、注意
this在构造器中使用,默认指代当前new的对象
在成员方法中的this,默认指代调用成员方法的对象
this不能使用在static方法中

四、static 静态
1、成员修饰符,可以修饰成员内容,不可以修饰局部
2、修饰
修饰成员变量
静态变量或类变量
修饰方法
静态方法或类方法
修饰块
修饰类
3、static修饰的成员变量与成员方法使用方式
对象.静态变量名
对象.静态方法名(参数列表)
类名.静态变量名
类名.静态方法名(参数列表)
4、注意
(1)成员是属于对象的,需要跟随对象使用
(2)静态的是属于类的,根据可以随类名使用
(3)成员
被static修饰的–> 类的成员
变量-> 静态变量或类变量
方法-> 静态方法或类方法
没有被static修饰 --> 实例成员
变量-> 实例变量
方法-> 实例方法
(4)静态内容是属于类的,在类第一次加载完成之后就初始化
初始顺序
先静态后成员
成员存在与对象的堆内存中,new对象了才开辟堆内存,才在对象的堆内存中存在成员
静态变量会给加载到静态区中,每个类的静态变量只有一份
静态内容是当前类所有对象共享的,独一份的
成员内容是属于每一个对象的,有几个对象就存在几份
静态的使用注意点
成员方法中的this默认指代当前调用成员方法的对象
成员方法中可以直接使用成员可以直接使用静态
静态方法中可以直接使用静态内容需要通过对象使用成员
在静态方法中不能使用this,因为冲突

五、块{}
1、自成作用域
2、{}定义在方法中或语句块中
局部代码块或普通语句块
执行时机 : 跟随方法
3、{}定义在类中方法外
构造块或成员代码块
执行时机 : 跟随new
4、static{}定义在类中方法外
静态块
执行时机 : 类第一次加载
同步代码块 : 多线程时候讲
5、注意
构造块中的代码先于构造器代码之前执行,因为在编译期间构造块代码会被编译到要执行的构造器内部,构造器代码之前
如果存在多个构造块,从上到下依次执行
静态块中的内容在类第一次加载完成之后就执行,并且只执行一次,先与main方法执行
如果存在多个静态块,从上到下依次执行
执行顺序
静态块 --> main —> 构造块 --> 构造器
构造块会被编译到要执行的构造器代码的内部的最上面,如果this(),先执行this()

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值