java笔记-修饰符

这篇博客详细介绍了Java中的修饰符,包括权限修饰符和特征修饰符。权限修饰符用于控制类和成员的访问范围,如public和默认访问级别。特征修饰符包括final和static,final用于创建不可更改的变量或方法,防止被重写;static则用于创建静态成员,这些成员在类加载时初始化,由所有类实例共享,并可通过类名直接访问。
摘要由CSDN通过智能技术生成

修饰符

权限修饰符

名称作用可访问位置
public公共的本类 同包 子类 当前项目中任意类的位置只要有对象都可以访问|
protected受保护的本类 同包 子类 子类(通过子类对象在子类范围内部访问)
默认不写默认的本类 同包
private私有的本类

1.能修饰什么                      2.范围如何
权限修饰符可以用来修饰                 类本身 和类中的成员(除程序块)
权限修饰符用来修饰类的时候               只有两个可以用(public 默认不写)
权限修饰符都可以用来修饰类中其他成员

特征修饰符

名称意思
final最终的不可更改的
static静态的
abstract抽象的类 方法
native本地的
*transient瞬时的短暂的------>序列化
*synchronized同步的线程问题
*volatile不稳定的保护属性或方法的线程安全

final  最终的 不可更改的

  1. 修饰变量
    如果在定义变量时没有赋初始值
    给变量一次存值的机会(因为变量在栈内存空间内 没有默认值 如果不给机会 就没法用啦)
    一旦变量被存储了一个值 若用final修饰后 则不让再次改变 ----> 相当于常量啦(值没法动)
    注意变量类型是基本类型还是引用类型
    如果修饰的变量是基本数据类型 则变量内的值不让更改—常量
    如果修饰的变量是引用数据类型 则变量内的地址引用不让更改—对象唯一
  2. 修饰属性
    全局变量 存储在堆内存的对象空间内一个空间
    属性如果没有赋值 有默认值存在的
    属性用final修饰后 必须给属性赋初值 否则编译报错
    特点与修饰变量一致
    注意变量类型是基本类型还是引用类型
    如果修饰的变量是基本数据类型 则变量内的值不让更改—常量
    如果修饰的变量是引用数据类型 则变量内的地址引用不让更改—对象唯一
  3. 修饰方法
    方法是最终的方法  不可更改
    子类继承父类的方法 将父类的方法重写(覆盖)
    final修饰的方法   要求不可以被子类重写(覆盖)
  4. 修饰类本身
    类是最终的  不可以更改
    (太监类 无后) 此类不可以被其他子类继承
    通常都是一些定义好的工具类
    Math  Scanner  Integer  String

static静态的 static静态的

  1. 可以修饰 : 修饰属性 修饰方法 *修饰块 修饰类(内部类)
  2. 特点:
    1. 静态元素在类加载时就初始化啦,创建的非常早,此时没有创建对象
    2. 静态元素存储在静态元素区中,每一个类有一个自己的区域,与别的类不冲突
    3. 静态元素只加载一次(只有一份),全部类对象及类本身共享
    4. 由于静态元素区加载的时候,有可能没有创建对象,可以通过类名字直接访问
    5. 可以理解为静态元素不属于任何一个对象,属于类的
    6. 静态元素区Garbage Collection无法管理,可以粗暴的认为常驻内存
    7. 非静态成员(堆内存对象里)中可以访问静态成员(静态区)
    8. 静态成员中可以访问静态成员(都存在静态区)
    9. 静态成员中不可以访问非静态成员(个数 一个出发访问一堆相同名字的东西 说不清)(静态元素属于类 非静态成员属于对象自己)
    10. 静态元素中不可以出现this或super关键字(静态元素属于类)
      在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值