Java基础语法:什么是Java的访问修饰符?它们有什么作用?

简介: Java基础语法:什么是Java的访问修饰符?它们有什么作用?

在Java中,访问修饰符(Access Modifiers)用于限定类、变量、方法和构造方法的访问范围。Java提供了四种访问修饰符,分别是publicprotecteddefault(包内可见,没有关键字)、private。这些修饰符决定了一个类的成员在其他类中是否可见和可访问。

以下是对每个访问修饰符的简要介绍:

  1. public(公共访问修饰符):

    • 可以被任何类访问,无访问限制。
    • 适用于类、接口、变量、方法。

    示例:

    public class MyClass {
         
        public int myPublicVar;
        public void myPublicMethod() {
         
            // 方法体
        }
    }
    
  2. protected(受保护访问修饰符):

    • 可以被同一包内的类访问,以及子类访问。
    • 适用于变量、方法,但不适用于顶级类(即不可修饰类)。

    示例:

    class MyParentClass {
         
        protected int myProtectedVar;
        protected void myProtectedMethod() {
         
            // 方法体
        }
    }
    
    class MyChildClass extends MyParentClass {
         
        void accessProtectedVarAndMethod() {
         
            myProtectedVar = 42;
            myProtectedMethod();
        }
    }
    
  3. default(默认访问修饰符):

    • 当没有指定访问修饰符时,成员默认为包内可见。
    • 可以被同一包内的类访问,但不能被其他包的类访问。
    • 适用于类、接口、变量、方法。

    示例:

    class DefaultAccessClass {
         
        int myDefaultVar;
        void myDefaultMethod() {
         
            // 方法体
        }
    }
    
  4. private(私有访问修饰符):

    • 最小的访问级别,只能在声明它的类内访问。
    • 适用于变量和方法,但不适用于顶级类。

    示例:

    public class MyClass {
         
        private int myPrivateVar;
        private void myPrivateMethod() {
         
            // 方法体
        }
    }
    

访问修饰符的选择取决于设计和安全性的需求。通常来说,应该尽量使用最小的访问级别,以保持封装性和安全性。

相关文章
|
3天前
|
NoSQL Java 关系型数据库
Java基础教程(21)-Java连接MongoDB
【4月更文挑战第21天】MongoDB是开源的NoSQL数据库,强调高性能和灵活性。Java应用通过MongoDB Java驱动与之交互,涉及MongoClient、MongoDatabase、MongoCollection和Document等组件。连接MongoDB的步骤包括:配置连接字符串、创建MongoClient、选择数据库和集合。伪代码示例展示了如何建立连接、插入和查询数据。
|
3天前
|
存储 Java 程序员
JAVA基本语法
JAVA基本语法
11 1
|
4天前
|
Java 关系型数据库 MySQL
Java基础教程(20)-Java连接mysql数据库CURD
【4月更文挑战第19天】MySQL是流行的关系型数据库管理系统,支持SQL语法。在IDEA中加载jar包到项目类路径:右击项目,选择“Open Module Settings”,添加库文件。使用JDBC连接MySQL,首先下载JDBC驱动,然后通过`Class.forName()`加载驱动,`DriverManager.getConnection()`建立连接。执行CRUD操作,例如创建表、插入数据和查询,使用`Statement`或`PreparedStatement`,并确保正确关闭数据库资源。
|
4天前
|
运维 NoSQL Java
Serverless 应用引擎产品使用之在函数计算上部署Java服务并访问阿里云MongoDB如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
9 0
|
6天前
|
网络协议 Java 网络架构
Java基础教程(18)-Java中的网络编程
【4月更文挑战第18天】Java网络编程简化了底层协议处理,利用Java标准库接口进行TCP/IP通信。TCP协议提供可靠传输,常用于HTTP、SMTP等协议;UDP协议则更高效但不保证可靠性。在TCP编程中,ServerSocket用于监听客户端连接,Socket实现双进程间通信。UDP编程中,DatagramSocket处理无连接的数据报文。HTTP编程可以通过HttpURLConnection发送请求并接收响应。
|
7天前
|
Java 编译器 API
Java基础教程(17)-Java8中的lambda表达式和Stream、Optional
【4月更文挑战第17天】Lambda表达式是Java 8引入的函数式编程特性,允许函数作为参数或返回值。它有简洁的语法:`(parameters) -> expression 或 (parameters) ->{ statements; }`。FunctionalInterface注解用于标记单方法接口,可以用Lambda替换。
|
8天前
|
IDE Java 测试技术
Java基础教程(16)-Java单元测试
【4月更文挑战第16天】单元测试是针对Java程序中的单个方法进行的测试,常用的单元测试框架是JUnit,它支持断言、组织和运行测试。编写单元测试时,应保证代码简洁、测试独立并涵盖边界条件。在IDEA中,可以通过快捷方式生成测试类。JUnit的`@Test`注解标识测试方法,`@BeforeEach`和`@AfterEach`分别在每个测试前后的执行。`@BeforeAll`和`@AfterAll`则在所有测试前后的执行,适用于静态变量初始化和清理。`@Disabled`用于临时禁用测试,`@ParameterizedTest`配合`@ValueSource`可实现参数化测试。
|
8天前
|
存储 Java
Java入门&基础语法
Java入门&基础语法
|
8天前
|
Java
[Java 基础] Java修饰符
[Java 基础] Java修饰符
|
9天前
|
存储 Java 程序员
Java从入门到精通:1.1.1了解Java基础知识:学习Java的基本语法
Java从入门到精通:1.1.1了解Java基础知识:学习Java的基本语法