Java知识点汇总--修饰符

本文详细介绍了Java中的final和static修饰符。final用于声明不可变的类、方法和变量,防止继承和重写。static则用于创建类级别的成员,包括静态变量和静态方法,它们在类加载时初始化并可供所有对象共享。文中还探讨了final修饰局部变量、静态代码块的使用以及static的访问特点。
摘要由CSDN通过智能技术生成

1. final修饰符

1.1 fianl(应用)

  • fianl 关键字的作用
    final 代表最终的意思,可以修饰成员方法,成员变量,类
  • final 修饰类、方法、变量的效果
    fianl 修饰类:该类不能被继承(不能有子类,但是可以有父类
    final 修饰方法:该方法不能被重写
    final 修饰变量:表明该变量是一个常量,不能再次赋值

1.2 final修饰局部变量

  • fianl 修饰基本数据类型变量
    final 修饰指的是基本类型的数据值不能发生改变
  • fianl 修饰静态成员变量可以在哪赋值一次
    • 定义的时候赋值一次
    • 可以在静态代码块中赋值一次 static{}
  • final修饰实例成员变量可以在哪些地方赋值一次
    • 定义的时候赋值一次
    • 可以在实例代码块中赋值一次
    • 每个构造器中赋值一次
  • final 修饰引用数据类型变量
    final 修饰指的是引用类型的地址值不能发生改变,但是地址里面的内容是可以发生改变的
    举例:
public static void main(String[] args){
    final Student s = new Student(23);
    s = new Student(24);  // 错误  
    s.setAge(24);  // 正确   
}

2. static修饰符

1.1 static(应用)

  • static 的概念只加载一次
  • static 关键字是静态的意思,可以修饰【成员方法】,【成员变量】
  • 关于 static 关键字的使用,它可以用来修饰的成员变量和成员方法,被static修饰的成员是属于类的是放在静态区中,没有static修饰的成员变量和方法则是属于对象的。我们上面案例中的成员变量都是没有static修饰的,所以属于每个对象。
  • static 修饰的成员属于类,会存储在静态区,是随着类的加载而加载的,且只加载一次,所以只有一份,节省内存。存储于一块固定的内存区域(静态区),所以,可以直接被类名调用。它优先于对象存在,所以,可以被所有对象共享
  • static 修饰的特点
  1. 被类的所有对象共享,这也是我们判断是否使用静态关键字的条件
  2. 可以通过类名调用,当然,也可以通过对象名调用【推荐使用类名调用
    示例代码:
class Student {
    public String name; //姓名
    public int age; //年龄
    public static String university; //学校 共享数据!所以设计为静态!   
    public void show() {
        System.out.println(name + "," + age + "," + university);
    }
}
public class StaticDemo {
    public static void main(String[] args) {
    // 为对象的共享数据赋值    
        Student.university = "传智大学";
        Student s1 = new Student();
        s1.name = "林青霞";
        s1.age = 30;
        s1.show();
        Student s2 = new Student();
        s2.name = "风清扬";
        s2.age = 33;
        s2.show();
    }
}
  • 运行截图
    在这里插入图片描述

2.2 static访问特点

  • static 的访问特点
    • 非静态的成员方法
      • 能访问静态的成员变量
      • 能访问非静态的成员变量
      • 能访问静态的成员方法
      • 能访问非静态的成员方法
    • 静态的成员方法
      • 能访问静态的成员变量
      • 能访问静态的成员方法
    • 总结成一句话就是:
      • 静态成员方法只能访问静态成员

2.3 静态代码块

  • 格式

static{
}

  • 特点
    • 必须用static修饰,属于类,会与类一起优先加载,而且自动触发执行一次
    • 静态代码块可以用于在执行类的方法之前进行静态资源的初始化操作
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值