this和static

static

static 静态;
所有static关键字修饰的都是类相关的,类级别的;
所有static修饰的,都是采用" 类名. "的方式访问;
静态变量在类加载时初始化,不需要new对象,静态变量存储在方法区。

ps:实例的都是与对象相关的,访问时用" 引用. “的方式,需要先new对象;静态的都是类相关的,访问时用” 类名. "的方式,不需要new对象,也没有空指针异常的情况。

在JVM中,局部变量存在栈,实例变量存在堆,静态变量存在方法区。

静态代码块

使用static关键字可以定义静态代码块。

什么是静态代码块

static{
	java语句;
	java语句;
}

什么时候执行

类加载的时候执行,且只执行一次,自上而下执行静态代码块,之后再执行main方法

作用

静态代码块不常用;
特殊的时机:类加载时机

实例语句块

在构造方法之前执行

{
	java语句;
	java语句;
}

this

一个对象一个this;this是一个变量,是一个引用;this保存当前对象的内存地址,指向自身;this代表的就是“当前对象”;this存储在堆内存当中对象的内部;this不能用在静态方法中
在这里插入图片描述

什么时候this不可以省略

大部分情况下可以省略,但是用来区分局部变量和实例变量的时候不能省略;
this除了可以在实例方法中使用,还可以在构造方法中使用。

class student{
	int no;
	String name;
	public student(){}
	public student(int no, String name){
		this.no = no;// 这里的this就不能省略
		this.name = name;
	}
	public void setNo(int no){
		this.no = no;
	}
	public int getNo(){
		return no;
	}
}

新语法:通过当前的构造方法去调用本类的另一个构造方法,可以使用此格式:this(实际参数列表);this()调用只能是构造方法中的第一个语句,目的是代码复用

结论

只要是负责调用的方法a和被调用的方法b在同一个类中
this. 和 类名. 都可以省略

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值