美文网首页
Java 修饰符

Java 修饰符

作者: Tinyspot | 来源:发表于2022-08-05 06:54 被阅读0次

1. 访问修饰符

修饰符 本包 子孙类 其他包
public Y Y Y
protected Y Y
default Y
private

2. static 修饰符

static 可以修饰变量、方法和代码块

2.1 静态属性(类属性)

静态属性存在方法区
静态成员是全类所有对象共享的成员

2.2 静态方法(类方法)

  • 静态方法只能访问其他的静态成员,不能访问非静态成员
  • 静态方法中不允许使用 this 或 super 关键字
  • 静态方法可以继承,不能被覆盖(重写)、没有多态(子类实际上只是将父类中的该同名方法进行了隐藏,而非重写)

2.3 静态代码块

类加载时,触发静态代码块的执行(仅一次)
执行地位:静态属性初始化之后
作用:可为静态属性赋值,或必要的初始行为

3. final 修饰符

final表示不可改变
final 可以修饰类、方法和变量,称为最终类、最终方法、常量

3.1 最终类

final 修饰类:此类不能被继承。例如 String, Math, System

3.2 最终方法

final 修饰方法:此方法不能被重写,可以被继承

3.3 常量

final 修饰变量:此变量值不能被改变(常量)
常量类型:静态常量、成员常量、局部常量、基本类型常量和引用类型常量

成员常量
成员常量不再提供默认值,必须手动赋初始值
赋值时机:显示初始化或构造方法
注意:如果在构造方法中为实例常量赋值,必须保证所有的构造方法都能对其正确赋值

public class Animal {
    private final String name;
    public Animal() {
        this.name = "Bob";
    }
    public Animal(String name) {
        this.name = name;
    }
}

静态常量
静态常量不再提供默认值,必须手动赋初始值
赋值时机:显示初始化或静态代码块

public class Animal {
    private static final String NAME = "";
    static {
        // NAME = "";
    }
}

特殊:对象常量
final 修饰基本类型:值不可变
final 修饰引用类型:地址不可变(只保证这个引用类型变量所引用的地址不会改变,即一直引用同一个对象,但这个对象完全可以发生改变)

public static void main(String[] args) {
    final int num = 10;
    // num = 30; // Cannot assign a value to final variable 'num'

    final int[] nums = new int[]{1, 2, 3};
    // nums = new int[5]; // 指向一个新的数组,不可以
    nums[0] = 11; // 修改数组里的元素是可以的

    final Person person = new Person();
    // person = new Person();  // Cannot assign a value to final variable 'person'
    person.setName("xing");
}

其他:
'static' method declared 'final' :将一个方法声明为final,是防止该类被子类重写。但是static方法本身就不可被重写

3.3 final, finally, finalize

  • final 用于声明属性,方法和类, 分别表示属性不可变, 方法不可覆盖, 类不可继承.
  • finally 是异常处理语句结构的一部分,表示总是执行.
  • finalize 是 Object 类的一个方法,垃圾回收的方法

4. abstarct 修饰符

  • 修饰类和方法
  • 修饰的类即为抽象类,不能被实例化
  • 构造方法和static方法不能是抽象的
  • 父类的抽象方法往往在子类中实现,抽象类可以具有指向子类对象的对象引用

相关文章

  • java学习笔记第二天

    java修饰符 java修饰符 java语言提供了很多修饰符,主要分为下面两类: 1.访问修饰符 2.非访问修饰符...

  • Java 修饰符

    Java 修饰符 Java语言提供了很多修饰符,主要分为以下两类: 访问修饰符 非访问修饰符 修饰符用来定义类、方...

  • 日常记忆Java修饰符

    Java修饰符 Java语言提供的很多修饰符,主要分为以下两类: 访问修饰符 非访问修饰符修饰符用来定义类、方法或...

  • Java知识之修饰符

    Java中的修饰符 Java中的修饰符主要分为两类: 访问控制修饰符 非访问控制修饰符 访问控制修饰符分: pub...

  • java修饰符有哪些?

    java修饰符有哪些? Java语言提供了很多修饰符,主要分为以下两类: 1、访问修饰符; 2、非访问修饰符。 (...

  • Java中访问修饰符和构造函数的一点总结

    Java访问修饰符 Java用于类的修饰符(2个)和限定符(2个) 注意:内部类可以拥有更多的访问修饰符 Java...

  • java基础-static

    概述 static 在java体系里的地位:java语言的一个修饰符,属于非访问修饰符,所谓访问修饰符就是控制访问...

  • 关于Java语言中那些修饰符

    一.在java中提供的一些修饰符,这些修饰符可以修饰类、变量和方法,在java中常见的修饰符有:abstract(...

  • java的访问修饰符

    一. Java中的访问修饰符 Java面向对象的基本思想之一是封装细节并且公开接口。Java语言采用访问控制修饰符...

  • Java修饰符

    引言:Java的修饰符根据修饰的对象不同,分为类修饰符、方法修饰符、变量修饰符;根据功能又分为访问控制修饰符和非访...

网友评论

      本文标题:Java 修饰符

      本文链接:https://www.haomeiwen.com/subject/ytftwrtx.html