java中常用修饰符


java中的修饰符可分为访问修饰符(private、default(默认)、protected、public,从左到右权限变大),非访问修饰符

访问修饰符

  • 访问修饰符只影响被修饰元素的作用域,不影响生命周期。

     		作用域是指被修饰的元素在哪些地方可以被访问
    
  • 访问修饰符有private、default(默认)、protected、public,从左到右权限变大。

  • 访问修饰符可以修饰的元素有类、成员、构造方法。

一、访问修饰符修饰类

  • 只有default与public可以修饰类。default修饰的类只能在同包中被使用,pulbic修饰的类可以在任何地方被使用。

  • 一个Java文件中可以有多个类的声明,但public修饰的只能有一个。

  • Protected和private可以用于修饰内部类。

二、访问修饰符修饰成员

  • 四个权限修饰符都可以修饰成员(成员变量和成员方法)。

  • 在定义类的时候,一般采用成员变量私有化,方法公开的原则。

  • private修饰的成员只能在当前类中被访问。

  • default修饰的成员只能在当前类和同一个包中的其它类中被访问。

  • protected修饰的成员只能在当前类、同-个包中的其它类和子类中被访问。

  • public修饰的成员可以在任何地方法被访问。

三、访问修饰符修饰构造方法

  • 四个权限修饰符都可以修饰构造方法。

  • 构造方法能在哪些地方被指定调用,与修饰构造方法的权限修饰符有关。

四、四种访问修饰符的比较

  • private:不能被继承。private 修饰的方法和属性只能在声明它们的类内部访问,无法被子类继承。

  • 默认修饰符(默认访问修饰符或包级访问修饰符):可以被继承。没有任何修饰符的成员,即声明时没有使用 public、protected 或
    private 的成员,可以在同一包中被继承

  • protected:可以被继承。protected 修饰的方法和属性在同一包中可以被继承,而在不同包中的子类也可以继承。

  • public:可以被继承。public 修饰的类、方法和属性可以在其他包中被继承或访问。

非访问修饰符

static关键字

  • static修饰符:静态修饰符,用于修饰类变量和方法。静态变量属于类本身,而不是实例对象。

  • 当用于变量时,static表示该变量属于类级别而非实例级别,即所有对象共享同一份变量。

public class MyClass {
    public int instanceVariable; // 非静态成员变量
    public static int staticVariable; // 静态成员变量
}
public class Main {
    public static void main(String[] args) {
        MyClass obj1 = new MyClass();
        obj1.instanceVariable = 10;
        MyClass.staticVariable = 20;
        MyClass obj2 = new MyClass();
        obj2.instanceVariable = 30;
        System.out.println(obj1.instanceVariable); // 输出:10
        System.out.println(obj2.instanceVariable); // 输出:30
        System.out.println(MyClass.staticVariable); // 输出:20
    }
}
  • 当用于方法时,static表示该方法属于类级别而非实例级别,即可以通过类名直接 调用,不需要创建对象。

  • static修饰的方法,调用的时候没有具体的对象,因此static修饰的方法不能调用非静态成员变量和成员方法。

  • 当用于代码块时,static表示静态代码块,用于在类加载时执行一次。

final关键字

  • final修饰符:最终修饰符,用于表示不可改变或终态。可以修饰类、方法和变量。

  • 当用于类时,final表示该类不能被继承,即不能有子类。

  • 当用于方法时,final表示该方法不能被重写,即子类不能对该方法进行重新定义。

  • 当用于变量时,final表示该变量的值不能被修改,即为常量。

  • 常量:为了方便程序中使用常量,常量定义为static + final修饰, 常量都用大写字母表示(常量是多个单词,使用_分割)

abstract关键字

  • abstract修饰符:抽象修饰符,用于定义抽象类和抽象方法。

  • 当用于类时,abstract表示该类为抽象类,不能被实例化,只能被继承。

  • 当用于方法时,abstract表示该方法没有具体实现,需要被子类实现(重写)

synchronized关键字

  • synchronized:同步修饰符,用于实现线程同步。

  • 可以应用于方法或代码块,确保在同一时间只能有一个线程执行被同步的代码。

volatile关键字

  • volatile:易变修饰符

  • 用于表示一个变量可能会被多个线程同时访问和修改,需要确保线程之间对该变量的可见性

transient关键字

  • transient:瞬态修饰符,用于表示一个变量在序列化时应该被忽略。

strictfp关键字

  • strictfp:精确浮点数修饰符,用于确保浮点数计算在不同平台上的结果一致
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值