JavaSE基础 第十一章 static和this

1.static

1.1static的特征

  1. 所有static关键字修饰的都是类相关的,类级别的,采用 类名. 访问
  2. static修饰的变量:静态变量
  3. static修饰的方法:静态方法

1.2实例变量与静态变量

如果这个类的所有队形的某一个属性值一样,建议定义为类级别特征,即静态变量,在方法区中只保留一份,节省内存开销
静态变量在类加载是初始化,存储在方法区,不需要new对象,静态变量的空间就开出来了

1.3实例方法与静态方法

  • 若方法必须有对象去出发,那么该方法定义为实例方法(在方法体中直接访问实例变量的为实例方法)
  • 工具类一般是static的,不需要new对象,直接采用 类名. 访问,及其方便

注意:

  • 实例的一定要采用“引用.” 来访问
  • 静态的建议使用“类名.”来访问,使用“引用.”也行,但会误导人以为是实例的属性或方法
Chinese c1 = new Chinese();
c1=null;
c1.country;//静态变量不需要对象的存在,代码在运行时为Chinese.ciuntry
  • 空指针异常发生在:“空引用”访问“实例相关”的属性和方法
    在这里插入图片描述
    在这里插入图片描述

1.4静态代码块

  1. 定义
static{
	java语句;
	java语句;
}
  1. 静态代码块的作用
    (1)不常用
    (2)SUN提供的特殊事件点(类加载时机):记录类加载的日志信息、初始化操作、具体的开发需求…
    (3)在方法其存放:类的信息,字节码信息,代码片段(静态变量)
  2. 静态代码块与静态变量的执行顺序:代码书写的先后顺序(未定义静态变量,却在静态代码块中访问【非法向前引用】)
  3. 实例代码块
{
   java语句;
   java语句;	
}

在构造方法执行前,自动执行实例语句块中的代码,这一特殊时期为“对象构造时机”

2.this

2.1this的特征

  • this是一个关键字,小写
  • this是一个变量、引用。保存当前对象的内存地址,指向自身,代表当前对象,存储在堆内存中的对象内部
  • this只能使用在实例方法中,是调用这个实例方法,this就是谁
    在这里插入图片描述

2.2this是否是否可以省略

  • 省略的话,代表当前对象的某个属性 this.name
  • 不可省略,在实例方法中,或者构造方法中,为例区分实例变量和局部变量 this. 不能省略

2.2this的使用

  1. 使用在实例方法中
  2. 不能使用在静态方法中
  3. 使用在构造方法中,通过当前的构造方法区调用另一个本类的构造方法,语法格式 this(实际参数列表)
  4. this.()的作用:代码复用。注意点:对this的调用必须是构造其中的一个语句,且只能调用本类中的另一个构造方法
	public Date() {
        this(1970,1,1);
    }

    public Date(int year, int month, int day) {
        this.year = year;
        this.month = month;
        this.day = day;
    }

3.总结

类体{
	实例变量;
	实例方法;
	
	静态变量;
	静态方法;

	构造方法;

	静态代码块;
	实例代码块;

	方法(){
		int i = 100;
		//局部变量;
	}
}

传送门

上一章:JavaSE基础 第十章 封装
下一章:JavaSE基础 第十二章 继承

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值