Java 简单修饰符补充学习笔记(基础)

本文介绍了编程中的常量修饰符(如const),以及this、super和static/final的关键概念,讲述了它们在变量声明、对象引用和类级别变量的区别,以及final修饰符在继承和初始化中的应用。
摘要由CSDN通过智能技术生成

前言

顾名思义,这里是补充修饰符的学习笔记。

? 通配符

顾名思义即可。

const 常变量修饰符

首先const是constant(恒定不变的)的缩写, const 就是描述变量为常量的修饰符/关键字,或者说 const 是定义常变量的关键字。

用 const 定义的变量的值是不允许改变的,即不允许给它重新赋值(即使是同样的值),所以说它定义的是只读变量。这也意味着必须在定义它时,就对它赋初值(初始化);倘若定义它时未初始化它则会发生语法错误(编译错误)。

引用1:对于末初始化的局部变量,程序在执行的时候会自动把一个很小的负数存放进去。

用const修饰的变量,会有静态特性,但不是变成了静态变量。

引用2:局部变量存储在栈中,静态变量存储在静态存储区中,而经过 const 修饰过的变量存储在内存中的“只读数据段”中(只读数据段中存放着常量和只读变量等不可修改的量)。

众所周知,数组的长度必须固定。虽然const定义的是只读常量,但是它本质是还是一个变量,只不过不能修改罢了,所以在语法上const定义的变量是不能作为数组的长度的。(而在C++里,可以用const定义的变量来作为数组的长度)

目前Java已经弃用const修饰符,实现类似功能可以采用 private static final 组合修饰符。

this 本对象修饰符

this 是自身的一个对象,代表对象本身。即指向对象本身的一个指针。

super 父类对象修饰符

super 可以理解为是指向自己超(父)类对象的一个指针,而这个超类指的是离自己最近的一个父类。

this 和 super 的用法总结
thissuper
情景1普通的直接引用(就指向对象本身)
情景2形参和成员变量名字重名子类成员变量/方法和父类成员变量/方法重名
情景3引用本类另一个重载的构造函数,应写在本构造函数的第一条语句引用父类中的某个构造函数,应写在本构造函数的第一条语句

static 静态修饰符

范围:类以内。被 static 修饰的属于类,而不属于此类的对象。(国企属于国家,而不属于某一个人)static可以修饰内部类、方法、成员变量(属性)、代码块(这些都是直接属于类的);而不可以修饰外部类、局部变量(static是类以内的层面的;而局部变量隶属于其方法,并不直接属于类)

注意:static 方法是不兼容 this 关键字的(this代表当前类的对象,而static方法是通过当前类调用的方法,不用对象调用),那么构造方法是静态方法吗?答:不是,构造方法可以兼容 this 关键字。

目的:能创建一些独立于具体对象之外的域变量或方法(类对象的公有域),以致于即使没有创建具体对象也能直接通过类来访问其属性和方法。而且由于static的加载优先级高且只会执行一次多次调用,所以可以用来调优程序性能。

语法:由于局部变量是隶属于其方法的,要想访问局部变量就不能绕开它从属的方法,所以语法上规定static不必用来修饰局部变量。

写到这了,就不得不提提静态变量和实例变量了

静态变量和实例变量

静态实例
不属于任何实例对象,专门属于类的。(就像户口本一样不是属于某个人,而是属于此人的家族)在类加载过程中,JVM只为静态变量分配一次内存空间专门属于实例对象的,每次new对象都会为此对象分配实例变量的(成员变量)内存空间
虽然静态资源是独立于对象,但是只要访问权限允许,对象也能访问静态资源(比如用this关键字)
以后补充

final 修饰符

凡是不允许被继承、重写、修改的东东都有 final 的应用场景!被final修饰的话必须在加载它时才会完成它的初始化。

  1. 当final修饰基本数据类型及String类型时,代表我们可以直接访问这个常量的地址。
  2. 当final而对于修饰的引用数据而言,引用数据/对象的地址不能改变,但其内容可以改变。

static 和 final 的比较

static 在类加载过程(程序运行时)始终保持不变,而 final 只在初始化过程(实际调用后)才会保持不变。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值