this和static关键字的简单理解

This的用法

this. ---> 指代对象

  1. 指代当前类的对象  可以省略的
  2. 特指成员变量,不可省略.此时this.用来区分同名的局部变量和成员变量

this. ---> 指代方法(构造方法)

  1. 调用构造器的代码必须要在首行
  2. 不允许普通方法中调用构造器
  3. 构造器不能和普通方法一样 通过方法名称调用  而是使用this()调用

当this指代对象时

1.指代当前类的对象(可以省略)

//在方法中,可在变量前加上this.来特指成员变量,减少重复定义变量
class person
{
	String name;
	public void showname(String name) 
	{
		This.name=name;
	}
}

2.特指成员变量时(不可省略)

//在非static方法中,可以在引用成员变量时,在变量前加上this来指代该类的对象
class person01
{
	String name="张三";
	public void showname() 
	{
		System.out.println(this.name);
	}
}
class person01
{
	String name="张三";
	public void showname() 
	{
		System.out.println(name);//此处this可以省略,不会报错
	}
}

 

当this指代构造器时

//在构造器中无参构造器,可在方法体内用this(参数,参数)来调用其他有参构造器
package code;

public class Test_test {
	public static void main(String[] args) 
	{
		person01 stu1=new person01();//创建一个新对象
		stu1.showInfor();//输出结果为张三 15
	}

}
class person01
{
	public person01() //创建一个无参构造器,在其中引用有参构造器
	{
		this("张三",15);//调用有参构造器
	}
	public person01(String name,int age) //将输入的参数赋值给成员变量
	{
		this.name=name;
		this.age=age;
	}
	String name;
	int age;
	public void showInfor() //验证this是否成功完成构造器的指代
	{
		System.out.println(this.name);
		System.out.println(this.age);
	}
}
  1. 调用构造器的代码必须要在首行
  2. 不允许普通方法中调用构造器
  3. 构造器不能和普通方法一样 通过方法名称调用  而是使用this()调用

Static的用法

static:    意思为静态的   共享的

 

static ---> 方法

被static修饰的方法属于类,可以用类名直接调用

若没有static则属于对象,需要创建对象调用

 

static ---> 变量

被static修饰的变量称为类变量,可以被对象调用,

若被改变,则所有对象的类变量都会改变

 

static的注意事项:

  1. 在同一个包下的同一个类的static方法可以直接用,不需要输入类名.

在同一个包下的不同类的static方法仍需要用类名去调用

  1. static修饰的方法,可以通过对象调用,一般不推荐使用
  2. 在一个static方法中无法使用非static变量

原因:

Static修饰的方法是属于类的,再创建类时,类方法就已经存在了,而非static修饰的成员变量是属于对象的,可能类不创建对象,那么成员变量就无法使用,所以会报错.所以在类方法中无法使用成员变量(有了类,不一定有对象)

因此,可以在非静态方法中使用静态变量(有了对象,就一定有类)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值