【Java|基础篇】包和访问权限修饰符

这篇具有很好参考价值的文章主要介绍了【Java|基础篇】包和访问权限修饰符。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 前言

包和访问权限修饰符是Java中两个常用的概念,它们都与访问控制有关.

2. 包的概念

在面向对象体系中,提出了一个软件包的概念,即:为了更好的管理类,把多个类收集在一起成为一组,称为软件包。Java中的包(Package)是一种用于组织类、接口、枚举等Java元素的机制。它被设计用于解决Java开发中的命名冲突问题和代码组织问题。Java中的包可以包含其他包、类、接口、枚举和注释等元素。有点类似于目录

3. 包的创建以及优点

在IDEA中,可以右键src,选择new,然后点击里面的Package.输入包名即可创建包.
【Java|基础篇】包和访问权限修饰符
【Java|基础篇】包和访问权限修饰符

我这里创建好了两个包,一个是test1,一个是test2.
【Java|基础篇】包和访问权限修饰符
我在这两个包中,同时创建了两个Student类,但是没有报错.
【Java|基础篇】包和访问权限修饰符
这说明在不同的包中类名是可以相同的.因此包可以防止类名和其他标识符的冲突
【Java|基础篇】包和访问权限修饰符
通过上面的文件命名也可以看出来.
接下来我们如果要使用Student类时,就需要选择是哪个包中的Student类,注意别导错了哦
【Java|基础篇】包和访问权限修饰符

包的优点:

  1. 命名空间管理:包提供了命名空间的概念,可以防止类名和其他标识符的冲突,从而使得代码更加规范、易于管理。
  2. 访问控制:包可以通过访问权限修饰符控制其中的类、方法、变量等成员的访问权限,提高了程序的安全性和可维护性。
  3. 代码组织:包可以按照功能或模块组织代码,使得代码更加清晰、易于维护。
  4. 封装:包可以将一些实现细节隐藏在包中,只向外部提供公共的接口,从而实现了封装的概念。

命名空间管理相比大家通过上面的例子也能够理解了. 代码组织就把功能相关的类的放在同一个包中.可以用文件夹的概念来理解,例如我创建了一个名为编程的文件夹,在这个文件夹中我就去放编程相关的东西,例如各种语言的IDE之类的.包也是如此.
访问控制和封装会在下面的访问权限修饰符中进行讲解.

4. 访问权限修饰符

Java中的访问权限修饰符一共有4种,private,默认(空着不写),protected,public.作用范围:private<默认<protected<public

修饰符 同一个类中 同一个包中的其它类 不同包下的子类 不同包下的无关类(任何地方)
private × × ×
空着不写 × ×
protected ×
public

√表示可以访问,×表示不能访问
接下来我会一个一个进行解释:
先看下面这个类,位于test1这个包中:

public class Student {
    private String id;
    String name;
    protected int age;
    public String sex;
}

【Java|基础篇】包和访问权限修饰符
首先是在当前类中访问它的成员变量,可以看到都能够成功访问到.
【Java|基础篇】包和访问权限修饰符
接下来在test1这个包下面创建Main这个类,在这个类中对Studnt类的成员变量进行访问
【Java|基础篇】包和访问权限修饰符
【Java|基础篇】包和访问权限修饰符

可以看到除了private修饰的id,其它的成员变量均可进行访问. 如果是在当前类中是可以进行访问的,这也验证了private表示该成员只能被定义它的类访问,其他任何类都无法访问。而默认权限修饰符,protected和public是可以的

接下来验证空着不写(默认)的访问权限,只需验证在不同包下的子类中不能访问即可.
在test2这个包中,创建Test类让它继承Student这个类.
【Java|基础篇】包和访问权限修饰符
通过Test这个类去访问Student的成员变量,可以看到name属性是无法被访问的.而name是被默认的访问权限修饰符修饰的.因此无法访问. 这验证了 默认权限修饰符无法在不同包下的子类中进行访问(大于这个范围也无法访问),而protected和public是可以的

最后来验证一下protected和public.
在test2这个包中创建Test2这个类,直接在Test2的main方法中创建Student对象,进行访问成员变量.可以看到只能访问public修饰的成员变量.
【Java|基础篇】包和访问权限修饰符
protect不能在不同包下的无关类中进行访问,而public在任何地方都可以进行访问
因此作用范围:private<默认<protected<public. 这些访问权限修饰符对成员方法也是一样的,这里就不进行演示了.
梅开二度,再看一下这张表格,因为十分重要,要记住各个访问权限修饰符的访问范围.

修饰符 同一个类中 同一个包中的其它类 不同包下的子类 不同包下的无关类(任何地方)
private × × ×
空着不写 × ×
protected ×
public

5. 总结

在Java开发中,包和访问权限修饰符通常是一起使用的。使用包可以避免命名冲突和提高代码组织性,使用访问权限修饰符可以控制成员的访问权限,提高程序的安全性和可维护性。

感谢你的观看!希望这篇文章能帮到你!
专栏: 《从零开始的Java学习之旅》在不断更新中,欢迎订阅!
“愿与君共勉,携手共进!”
【Java|基础篇】包和访问权限修饰符文章来源地址https://www.toymoban.com/news/detail-451346.html

到了这里,关于【Java|基础篇】包和访问权限修饰符的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java中的四种权限修饰符

    在Java中,存在四种访问修饰符,它们是public、private、protected和default。它们的访问权限从高到低依次为public protected default private。 1.public:public修饰的类、属性或方法可以被任何其他类访问,包括外部的类、同一个包内的类以及子类。 例如: 在这个例子中,Person类被声明为

    2024年02月12日
    浏览(44)
  • java四大访问修饰符

    java中有四大修饰符,分别为private,default,protected,public,下面主要是四者之间的区别: private(私有的) private可以修饰成员变量,成员方法,构造方法,不能修饰类(此刻指的是外部类,内部类不加以考虑)。被private修饰的成员只能在其修饰的本类中访问,在其他类中不能调用,但是

    2024年02月12日
    浏览(28)
  • Java的访问修饰符

    为了实现面向对象程序设计(OOP)的封装这个特性,需要程序设计语言提供一定的语法机制来支持。这个语法机制就是访问权限控制(访问修饰符:public、protected、private、default)。 在 Java 中,封装就意味着所有的实例域都带有 private 访问修饰符(私有的实例域),并提供带

    2023年04月15日
    浏览(28)
  • Java 包、访问修饰符

    2024年02月13日
    浏览(25)
  • Java接口中方法的默认访问控制修饰符

    在Java接口中,如果方法的访问控制修饰符没有声明,隐含着是public的。这个public可加上,也可以不加上。但为简洁起见,建议不加。 示例: 下面代码定义了有接口,有两个函数,其中一个没有声明public的,另外一个明确声明了public的: 打开编译后的class文件,可以发现,即

    2024年02月15日
    浏览(33)
  • Java 中的访问修饰符有什么区别?

    Java 中的访问修饰符用于控制类、类的成员变量和方法的访问权限,主要有以下四种: public:公共访问修饰符,可以被任何类访问。public 修饰的类、成员变量和方法可以在任何地方被访问到。 protected:受保护的访问修饰符,可以被类本身、子类和同一个包中的其他类访问。

    2024年02月04日
    浏览(30)
  • 【Java】一文彻底弄懂访问修饰符(public/protected/默认/private)--建议收藏

    博主简介: 努力学习的预备程序媛一枚~ 博主主页: @是瑶瑶子啦 所属专栏: Java岛冒险记【从小白到大佬之路】  OOP(Object Oriented Programing),即面向对象编程,最重要的功能/特点之一就是 封装 ,这点在该专栏开篇博客【Java基础篇】Java重要特性,JDK,JRE,JVM区别和联系,环境变量

    2024年02月22日
    浏览(37)
  • java面试题(21):private修饰的方法可以通过反射访问,那么private的意义是什么?

    1 反射简介 Java,在一个类中,为了不让外界访问到某些属性和方法,通常将其设置为private,用正常的方式(对象名.属性名,对象名.方法名)将无法访问此属性与方法,但有没有其他方法可以访问呢?答案是有的,这就是java反射带来的便利。利用反射访问类的私有属性及方

    2024年01月22日
    浏览(30)
  • 权限修饰符详解

    private 所修饰的属性 无法被其他类所继承 default 所修饰的属性 仅仅在同一个包下,创建子类的对象,使用 。 protected 所修饰的属性, 可以在不同包下,被其他的继承类,在自己的类内所使用,但是如果是在其他包下,没有继承关系的类下,创建子类的对象,使用 protected属性

    2024年02月05日
    浏览(23)
  • 我在VScode学Java类与对象(Java显式参数和隐式参数、静态方法+main方法、Java访问修饰符、static关键字、Java的包、对象数组)第三辑

    我的个人博客主页:如果’\\\'真能转义1️⃣说1️⃣的博客主页 关于Java基本语法学习----可以参考我的这篇博客:《我在VScode学Java》 方法会操作对象并访问他们的实例字段。 在Java中,显式参数和隐式参数是方法调用中的两种不同类型的参数。 注释: 第7行: sum 方法的参数

    2024年02月16日
    浏览(70)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包