java-this关键字

本文详细介绍了Java中的this关键字,包括其作为对象引用的特性、在实例方法中的作用,以及为什么不能在static方法中使用。举例说明了this在构造方法调用、访问实例变量和方法时的应用,并强调了在没有对象上下文时,static方法无法直接访问实例成员。此外,还探讨了this在解决局部变量与成员变量冲突的情况下的重要性。
摘要由CSDN通过智能技术生成

this关键字

当一个行为/动作执行的过程中需要对象参与的,那么这个方法一定要定义为‘实例方法’,不加static关键字。

  • 1.this 是一个引用,一个变量,this变量保存了内存地址指向自身,this 存储在jvm堆内存中java对象内部
  • 2.创建100个对象,每一个对象都有this,也就是说有100个不同的this
  • 3.this可以出现在‘实例方法’中,this指向当前正在执行这个动作的对象。(this代表当前对象)
  • 4.this不能使用在带有static的方法当中
    理由如下:static的方法调用不需要对象,直接使用类名,所以执行过程中没有当前对象,不能使用this
    解决:创建对象 xxx x=new xxx();
    x.yyy;
    例子:(变量)
public class Text{
//实例变量(引用.的方式)
int num=10;

//类成员变量
public static int num1=10;

//带有static的方法
public static void main(String[] args){
//没有当前对象 
//创建对象
Text c=new Text();
c.num;

Text.num1;
}

例子(方法)

public class Text{

public static void main(String[] args){
Text.doSome();//a
doSome();//a
doOther();//错误 实例方法必须先创建对象,通过引用.的方式访问 this.不可 因为static下没有this
this.doOther();//错误

//解决方法
Text c=new Text();
c.doOther();
}

//带有static 静态方法 类名. 就可以访问
public static void doSome(){
System.out.println("a");
}
// 实例方法
public void doOther(){
System.out.println("b");
}
}

在带有static 的方法中不能‘直接’访问实例变量和实例方法
因为实例方法和实例变量需要对象的存在
而static的方法当中没有this的,也就是当前对象是不存在的
自然也是无法访问当前对象的实例变量和实例方法

//实例方法
public void doOther(){
//this表示当前对象
System.out.println("b");
}

public void run(){
//在大括号中代码执行过程中一定存在当前对象
this.dother();
System.out.println("a");
}

this.不能省略

用来区分局部变量和局部变量时

自定义日期类型

1.可以用在实例方法中,代表当前对象【this.】
2。可以使用在构造方法中,通过当前构造方法调用其他构造方法【this(实参)】
注意:this()这种语法只能出现在构造函数第一行

ps:带有static的方法,其实既可以采用类名的方式访问,也可以采用引用的方式访问,但采用引用的方式访问,实际上执行的时候和所指向的对象无关

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值