Java 入门指南:修饰符

Java 修饰符

Java 修饰符是一种关键字,用于修饰类、方法、变量和构造函数的访问权限和行为。这些修饰符在Java编程中起着至关重要的作用,它们控制元素的可见性、继承性、赋值性等特性。以下是对Java中常见修饰符的详细解析。

访问修饰符

访问修饰符用于控制元素的可见性,即哪些类、方法、变量或构造函数可以访问。Java提供了四个访问修饰符

  1. public:公共的,可以被任何类访问。
  2. protected:受保护的,可以被同一个包中的类和子类访问。
  3. default(无修饰符):默认的,只能被同一个包中的类访问。
  4. private:私有的,只能被当前类访问。

具体详解见:Java 访问修饰符详解

非访问修饰符

非访问修饰符用于改变元素的性质和行为,Java提供了多个非访问修饰符,常见的有:

  1. static:静态的,用于定义类变量和类方法,可以通过类名直接访问。静态变量和静态方法属于类本身,而不是类的某个具体实例。

    public class MyClass {
        public static int staticVar = 10;
        public static void staticMethod() {
            System.out.println("Static Method");
        }
    }
    
  2. final:最终的,用于表示一个不可改变的常量或方法、类的最终状态。被 final 修饰的变量必须被初始化,且不能被重新赋值。被 final 修饰的方法不能被重写,被 final 修饰的类不能被继承。

    public class MyClass {
        public final int finalVar = 10;
        public final void finalMethod() {
            System.out.println("Final Method");
        }
    }
    
  3. abstract:抽象的,用于定义抽象类和抽象方法。抽象类不能被实例化,抽象方法只有声明,没有具体实现。抽象方法只能存在于抽象类中或接口中。

    public abstract class AbstractClass {
        public abstract void abstractMethod();
    }
    
  4. synchronized:同步的,用于保证多个线程对共享资源的安全访问。当一个方法被 synchronized 修饰时,同一时间只能有一个线程访问这个方法。

    public class MyClass {
        public synchronized void synchronizedMethod() {
            // 方法体
        }
    }
    
  5. transient:瞬态的,用于修饰变量,表示变量在序列化过程中不需要被保存

  6. volatile:易变的,用于修饰变量,表示变量在多线程之间可见。每次线程访问时,都会强制从共享内存中重新读取该变量的值。

具体详解见:Java 非访问修饰符详解

类修饰符
  • public:Java中类的访问控制符只有 public,即公共的。每个 Java 程序的有且只有一个类是 public,它被称为主类。
  • abstract:用 abstract 修饰的类被称为抽象类,不能被实例化。
  • final:当一个类不能被继承时,可用 final 修饰为最终类。
方法修饰符
  • publicprotectedprivate:控制方法的访问权限。
  • static:静态方法,属于类方法,可以直接通过类名调用。
  • final:最终方法,不能被重写。
  • abstract:抽象方法,只有声明,没有具体实现。
  • native:本地方法,用其他语言编写的方法体。
  • synchronized:同步方法,保证多线程安全访问。
总结

Java 修饰符是 Java 编程中不可或缺的一部分,它们通过控制元素的可见性和性质,使得 Java 代码更加灵活和安全。了解并掌握这些修饰符的用法,对于编写高质量的 Java 代码至关重要。希望本文能为你提供一份关于 Java 修饰符的清晰指南。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值