浅谈一下Java中的访问修饰符以及作用

 更新时间:2023年05月05日 09:43:44   作者:老王学长  
这篇文章主要介绍了浅谈一下Java中的访问修饰符以及作用,修饰符修饰的是“被访问”的权限,所有修饰符都可以修饰成员变量,方法,构造方法,需要的朋友可以参考下

Java 中的访问修饰符用于限制类、接口、字段和方法的访问范围,它们分别表示不同的访问控制级别。Java 中共有四种访问修饰符:public、protected、default 和 private。

public

public 是最开放的访问修饰符,用于指定公共访问级别。被 public 修饰的类、接口、字段和方法可以在任何地方被访问。

例如,下面的代码定义了一个公共类:

public class MyClass {
    // ...
}

这个类可以在任何地方被访问。另外,如果一个方法或字段被声明为 public,那么它也可以在任何地方被访问。例如:

public class MyClass {
    public String name;
    public void sayHello() {
        System.out.println("Hello, world!");
    }
}

protected

protected 用于指定受保护的访问级别。被 protected 修饰的类、字段和方法可以被本包内的其他类访问,以及子类中访问。

例如,下面的代码定义了一个受保护的类:

package mypackage;
protected class MyProtectedClass {
    // ...
}

这个类只能被 mypackage 包内的其他类访问,以及继承了 MyProtectedClass 的子类访问。另外,如果一个方法或字段被声明为 protected,那么它也可以被同一包内的其他类访问,以及继承了该类的子类访问。例如:

package mypackage;
public class MyClass {
    protected String name;
    protected void sayHello() {
        System.out.println("Hello, world!");
    }
}

这个类的 name 和 sayHello 方法可以被 mypackage 包内的其他类访问,以及继承了 MyClass 的子类访问。

default

default 是 Java 中默认的访问修饰符,它也称为包级私有访问控制。如果一个类、接口、字段或方法没有使用任何访问修饰符,那么它就是默认访问级别。默认访问级别表示只能在同一包内进行访问。

例如,下面的代码定义了一个默认访问级别的类:

package mypackage;
class MyDefaultClass {
    // ...
}

这个类只能被 mypackage 包内的其他类访问。另外,如果一个方法或字段没有使用任何访问修饰符,那么它也是默认访问级别。例如:

package mypackage;
public class MyClass {
    String name;
    void sayHello() {
        System.out.println("Hello, world!");
    }
}

这个类的 name 和 sayHello 方法只能被 mypackage 包内的其他类访问。

private

private 是最严格的访问修饰符,它用于指定私有访问级别。被 private 修饰的字段和方法只能在定义它们的类内部进行访问。

例如,下面的代码定义了一个私有类:

public class MyClass {
    private String name;
    private void sayHello() {
        System.out.println("Hello, world!");
    }
}

这个类的 name 和 sayHello 方法只能在 MyClass 类内部进行访问。

总结:

Java 中的四种访问修饰符分别表示不同的访问控制级别,可以用于限制类、接口、字段和方法的访问范围。public 是最开放的访问级别,protected 是受保护的访问级别,default 是默认的访问级别,private 是最严格的访问级别。在实际编程中,我们应该根据需要选择合适的访问修饰

到此这篇关于浅谈一下Java中的访问修饰符以及作用的文章就介绍到这了,更多相关Java中的访问修饰符内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java算法比赛常用方法实例总结

    Java算法比赛常用方法实例总结

    这篇文章主要给大家介绍了关于Java算法比赛常用方法实例总结的相关资料,文中给出了详细的实例介绍的非常详细,对大家学习java算法具有一定的参考学习价值,需要的朋友可以参考下
    2023-05-05
  • Java二维数组与稀疏数组相互转换实现详解

    Java二维数组与稀疏数组相互转换实现详解

    在某些应用场景中需要大量的二维数组来进行数据存储,但是二维数组中却有着大量的无用的位置占据着内存空间,稀疏数组就是为了优化二维数组,节省内存空间
    2022-09-09
  • 详解Java Slipped Conditions

    详解Java Slipped Conditions

    这篇文章主要介绍了Java Slipped Conditions的相关资料,帮助大家更好的理解和使用Java,感兴趣的朋友可以了解下
    2021-01-01
  • Java中的interrupt、interrupted和isInterrupted方法区别详解

    Java中的interrupt、interrupted和isInterrupted方法区别详解

    这篇文章主要介绍了Java中的interrupt、interrupted和isInterrupted方法区别详解,interrupt用于中断线程,调用该方法的线程的状态将会被设置为中断状态,线程中断仅仅是设置线程的中断状态位,并不会停止线程,需要用户自己去监视线程的状态并作出处理,需要的朋友可以参考下
    2023-12-12
  • Java操作minio删除文件夹及其文件方法(MinIO基本使用)

    Java操作minio删除文件夹及其文件方法(MinIO基本使用)

    MinIO是一个高性能、无限扩展的开源对象存储服务器,它以对象的形式存储数据,并兼容Amazon S3接口,它适用于大规模数据存储、大数据分析、文件共享和备份等应用场景,这篇文章主要介绍了java操作minio删除文件夹及其文件方法,需要的朋友可以参考下
    2024-02-02
  • java字符串遍历以及统计字符串中各类字符

    java字符串遍历以及统计字符串中各类字符

    这篇文章主要为大家详细介绍了java字符串遍历以及字符串中各类字符统计,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • Maven导入依赖时爆红的几种解决方法

    Maven导入依赖时爆红的几种解决方法

    使用idea建立maven项目,maven导入依赖报红,本文主要介绍了Maven导入依赖时爆红的几种解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • IDEA无法使用终端terminal问题的解决方案

    IDEA无法使用终端terminal问题的解决方案

    这篇文章主要介绍了IDEA无法使用终端terminal问题的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • Java中InputSteam怎么转String

    Java中InputSteam怎么转String

    面了一位实习生,叫他给我说一下怎么把InputStream转换为String,这种常规的操作,他竟然都没有用过我准备结合工作经验,整理汇集出了InputStream 到String 转换的十八般武艺,助大家闯荡 Java 江湖一臂之力,需要的朋友可以参考下
    2021-06-06
  • MySQL和Java通用加密解密方式小结

    MySQL和Java通用加密解密方式小结

    这篇文章主要介绍了MySQL和Java通用加密解密方式,加密方式使用AES加密,在转成Base64,本文结合实例代码给大家介绍的非常详细,需要的朋友参考下吧
    2023-12-12

最新评论