Java essay Java essay
首页
  • Java基础
  • Java进阶
  • 设计模式
  • 多线程
  • Java你不知道的小事
  • Spring初识
  • Spring进阶
  • SpringBoot基础
  • SpringBoot进阶
  • 什么是微服务
  • SpringCloud全家桶
  • Dubbo
  • SpringCloud Alibaba
  • Vue
  • 小程序
  • 博客搭建
  • 数据库
  • python
  • 大数据
  • 性能分析优化
  • 中间件
  • 云原生
  • 面试
  • 外卖霸王餐
  • 打工人的带饭生活
  • 30岁我该怎么办
友链
关于我
GitHub (opens new window)

Mr.Fire

全栈工程师
首页
  • Java基础
  • Java进阶
  • 设计模式
  • 多线程
  • Java你不知道的小事
  • Spring初识
  • Spring进阶
  • SpringBoot基础
  • SpringBoot进阶
  • 什么是微服务
  • SpringCloud全家桶
  • Dubbo
  • SpringCloud Alibaba
  • Vue
  • 小程序
  • 博客搭建
  • 数据库
  • python
  • 大数据
  • 性能分析优化
  • 中间件
  • 云原生
  • 面试
  • 外卖霸王餐
  • 打工人的带饭生活
  • 30岁我该怎么办
友链
关于我
GitHub (opens new window)
  • Java基础

    • 认识Java语言
    • Java环境搭建
    • 第一个Java程序
    • Java基础语法
    • Java数据类型
    • Java修饰符
      • 一、访问修饰符
        • 示例代码
      • 二、非访问修饰符
        • 示例代码
      • 三、总结
    • Java面向对象
    • Java输入输出流
    • Java字符串
    • Java集合
    • Java多线程编程
    • Java网络编程
    • 线程之间如何进行通讯
  • Java进阶

  • 设计模式

  • 多线程

  • 你不知道的小事

  • Java基础
  • Java基础
Mr.Fire
2024-04-27
目录

Java修饰符

# Java修饰符概述

在Java编程中,修饰符用于定义类、方法和变量的访问权限和特性。修饰符分为两类:访问修饰符(Access Modifiers)和非访问修饰符(Non-access Modifiers)。下面将详细探讨这两种修饰符的定义及其使用案例。

# 一、访问修饰符

访问修饰符定义了类、方法和变量的可见性,在Java中主要有四种访问修饰符:

  1. public:公共的,任何地方都可以访问。
  2. protected:受保护的,只有同一包内的类和子类可以访问。
  3. default(包级可见性):没有明确声明的修饰符,只有同一包内的类可以访问。
  4. private:私有的,只有在类内部可以访问。

# 示例代码

以下是使用不同访问修饰符的示例代码:

// 定义一个基类
class Parent {
    // public修饰符,任何类都可以访问
    public void publicMethod() {
        System.out.println("Public Method");
    }
    
    // protected修饰符,只有子类和同一包内的类可以访问
    protected void protectedMethod() {
        System.out.println("Protected Method");
    }
    
    // 默认修饰符,只有同一包内的类可以访问
    void defaultMethod() {
        System.out.println("Default Method");
    }
    
    // private修饰符,只有在本类内部可以访问
    private void privateMethod() {
        System.out.println("Private Method");
    }
    
    public void accessPrivateMethod() {
        privateMethod(); // 通过公共方法访问私有方法
    }
}

// 定义一个子类
class Child extends Parent {
    public void childMethod() {
        publicMethod(); // 可以访问公共方法
        protectedMethod(); // 可以访问受保护方法
        // defaultMethod(); // 不能访问,因为不在同一包内
        // privateMethod(); // 不能访问,因为是私有的
        accessPrivateMethod(); // 通过公共方法访问私有方法
    }
}

public class ModifierDemo {
    public static void main(String[] args) {
        Parent parent = new Parent();
        parent.publicMethod(); // 访问公共方法
        // parent.protectedMethod(); // 不能访问,因为 Child 不在同一包
        // parent.defaultMethod(); // 不能访问,因为 default 方法对不同包不可见
        // parent.privateMethod(); // 不能访问,因为是私有的

        Child child = new Child();
        child.childMethod(); // 调用子类方法,展示了访问权限
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50

# 二、非访问修饰符

非访问修饰符主要有以下几种:

  1. static:用于声明类变量或类方法。被声明为static的方法或变量属于类本身,而不是某个对象实例。
  2. final:用于声明常量、方法不可重写和类不可继承。
  3. abstract:用于声明抽象类和抽象方法。抽象类不能被实例化,抽象方法必须在子类中实现。
  4. synchronized:用于多线程编程,确保一个方法在同一时间只能被一个线程访问。
  5. volatile:用于声明一个变量是易变的,保证线程之间的可见性。

# 示例代码

以下是使用非访问修饰符的示例代码:

// 定义一个抽象类
abstract class Animal {
    // 抽象方法
    abstract void sound();

    // 普通方法
    void eat() {
        System.out.println("Eating...");
    }
}

class Dog extends Animal {
    @Override
    void sound() {
        System.out.println("Bark");
    }
}

public class NonAccessModifierDemo {
    public static void main(String[] args) {
        Animal dog = new Dog();
        dog.sound(); // 输出:Bark
        dog.eat(); // 输出:Eating...
        
        // 使用static修饰符
        System.out.println("Static variable: " + Counter.count);
        Counter.increment();
        System.out.println("Count after increment: " + Counter.count);
    }
}

// static 修饰符的示例
class Counter {
    static int count = 0;

    static void increment() {
        count++;
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39

# 三、总结

Java中的修饰符为开发者提供了一种控制访问和定义特性的机制。通过合理使用访问修饰符和非访问修饰符,可以提高代码的封装性、可维护性和安全性。

在编写Java代码时,正确选择合适的修饰符是培养良好编程习惯的重要一环。希望通过本文能够帮助你更好地理解Java修饰符的定义和使用。

最后更新时间: 2024/12/26, 17:56:54
Java数据类型
Java面向对象

← Java数据类型 Java面向对象→

最近更新
01
SuperBuilder
12-29
02
30岁我该怎么办
12-29
03
关于存钱
12-29
更多文章>
Theme by Vdoing | Copyright © 2021-2025 Mr.Fire | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式