Java基础-static关键字和final关键字

本文详细介绍了Java中的static关键字,包括其用于修饰属性、方法和内部类的特点,强调了静态变量的共享特性以及静态方法的使用注意事项。同时,讨论了final关键字的用途,如修饰类、方法和变量,禁止继承、重写以及常量的定义。重点讲解了final修饰变量时的初始化规则,并给出了实例解析。
摘要由CSDN通过智能技术生成

一、static关键字

1、static关键字的使用

(1)static:静态的

(2)static可以用来修饰:属性、方法、代码块、内部类,不能来修饰构造器

(3)static修饰属性,静态变量。的例子

        3.1属性按是否使用static修饰又分为静态属性和非静态属性(实例变量)

        实例变量:我们创建类类的多个对象,每个对象都独立的拥有一套类中的非静态属性。当修改其中一个对象中的非静态属性时,不会导致其他对象中同样的属性值修改

        静态变量(静态属性):我们创建类的多个对象,多个对象共享同一个静态变量。当通过某一个对象修改静态变量时,会导致其他对象调用此静态变量时,是修改过的。

        3.2static属性的其他说明:

        静态变量随着类的加载而加载,类的加载早于对象的创建。可以通过“类.静态变量?的方式进行调用

        静态变量的加载要早于对象的创建

        由于类只会加载一次,则静态变量在内存中也只会存在一份,存在方法区的静态域中

        

        3.3静态属性举例:System.out;Math.PI 

(4) 静态方法:static修饰方法

        随着类的加载而加载,可以通过"类.静态方法“的方式进行调用

        

        静态方法中只能调用静态的方法或属性,因为他们生命周期是相同的

        非静态方法中,既可以调用非静态的方法和属性,也可以调用静态的方法和属性

(5)static注意点:

        在静态方法内,不能使用this关键字、super关键字(static在类加载时期,此时对象都没有,所以不能使用;调用静态方法前面如果省略了,省略掉的是此时的对象,而不是this

         关于静态属性和静态方法的使用,大家都从生命周期的角度去理解

静态结构的生命周期和类的生命周期是同步的

(6)开发中如何确定属性和方法是否声明为static?

        属性是可以被多个对象共享的,不会随着对象的不同而不同的

        操作静态属性的方法,通常设置为静态方法

        工具类中的方法习惯上声明为静态方法,比如:Math、Arrays、Collections

eg1:

2、类变量和实例变量的内存解析

 二、final:

1、final可以用来修饰的结构:类、方法、变量

2、final用来修饰一个类,此类不能被其他类所继承

        比如:String类、System类、StringBuffer类

3、final用来修饰方法:表明此方法不可以被重写

        比如:Object类中的getClass();获取当前对象所属的类

4、final用来修饰变量:此时的变量就称为是一个常量

       4.1、 final修饰属性:可以考虑赋值的位置有:显示初始化、在代码块中赋值(初始化)、构造器中初始化;如果多个对象的属性值都一样,则不需要去构造器中;简单的值用显示初始化;每个值都不一样,采用构造器这种方法;不是简单的值,需要调用方法,且方法可能会抛异常,则放到代码块中去执行

显示初始化:

 代码块中赋值:

构造器中初始化:如果构造器有多个,每个构造器都需要赋值

方法中不可以用final来初始化:构造器之后对象就出生了,到方法中去就太晚了 

       4.2、 final修饰局部变量:

        尤其是使用final修饰形参是一个常量,当我们调用此方法时,给常量形参赋一个实参,一旦赋值以后,就只能在方法体内使用此形参,但是不能重新赋值

static final 用来修饰属性,全局常量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xuruhua

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值