java 中this static final 关键字总结

本文详细介绍了Java编程中的关键字this、static和final的使用和区别。this用于区分成员变量与局部变量,代表调用方法的对象。static关键字使得数据在类级别上共享,静态方法只能访问静态成员。final修饰的变量不可变,常用于定义常量。理解这些关键字对于优化代码和提升程序可读性至关重要。
摘要由CSDN通过智能技术生成

this关键字

为什么用this?

区分局部变量和成员变量同名的情况。

用this标识的是成员变量。

例:

public void setName(String name)
	{
		this.name = name;
	}
this到底是指谁?

this其实就代表对象,代表哪个对象呢?

哪个对象调用了this所在的函数。this就指向哪个对象。

(this就代表着当前这个对象)

static关键字

特点:

1,静态的数据被对象所共享。

2,它优先于对象加载并存在。随着类的加载而加载。

3,静态的数据多了一种调用方式:可以直接被类名所调用。

既然静态调用这么方便,是不是可以让所有的成员变量变成静态的呢?
不行,因为数据中有些是对象共享的数据需要静态化,节省内存空间,严谨。

有些数据是对象特有的数据,这些存储到对象中。
这也是成员变量是否要静态的依据!

静态变量和成员变量的区别?

名称(所属):
静态变量所属于类,也称为 类变量。
成员变量所属于对象,也称为 实例变量。

内存位置:
静态变量存储于方法区中的静态区中。
成员变量存储于堆内存的对象中。

加载先后:
静态变量随着类的加载而加载,随着类的消失而消失。
成员变量随着对象的加载而加载,随着对象的消失而消失。

静态方法:

1,静态方法只能访问静态成员,不能直接访问非静态成员。非静态的方法可以访问静态和非静态。
原因:就是加载的先后顺序问题。先加载的不能访问后加载。
2,静态方法中不可以出现this,super关键字。

什么时候方法静态?

​ 当方法中如果没有访问对象的特有数据,或者说没有调用过非静态的内容。该方法就静态化。虽然不静态也可以使用,但是创建调用它的对象没有意义。

例:

public class StaticDemo 
{
	public static void main(String[] args) 
	{
		Person p=new Person();
		P.show();
        Person.sleep();
	}
}
class Person
{
	int age;
    String name;
    public void show()
    {
    	System.out.println("name="+this.name+",age="+this.age);    
    }
    public static void sleep()//sleep()并没有使用对象中的数据,该对象的建立没有意义,此时就可以用静态修饰
    {
        System.out.println("huhu");
    }
}

fina关键字

1,final修饰类,函数,变量。

2,final修饰的类不可以被继承。

3,final修饰的方法不可以被覆盖。

4,final修饰的变量是一个常量,只能被赋值一次。

程序中不变的数据都用final修饰,提供程序的阅读性。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值