不同访问修饰符的访问数据权限的区别

简介: 不同访问修饰符的访问数据权限的区别

       在Java中,有四种访问修饰符:public、private、protected和默认修饰符。它们的作用是控制类、变量和方法的可见性,也就是说它们控制了哪些代码可以访问某个类、变量或方法的数据成员。

public:可以被任何类访问,对外部公开。

public class Person {
   public String name;
}

       这里的name可以被任何类访问,包括其他包内的类。

private:只能在定义它的类内部访问,对外部不公开。

public class Person {
   private String name;
}

       这里的name只能在Person类内部被访问,其他类无法访问。

protected:可以在其定义的类、子类和同一个包内的类中访问。

public class Person {
   protected String name;
}

       这里的name可以被Person类、其子类和同一个包内的其他类访问。

默认修饰符:如果没有指定访问修饰符,则采用默认修饰符。在同一个包内部可以访问,但是在其他包中无法访问。

class Person {
   String name;
}

       这里的name可以被同一个包内的其他类访问,但是在其他包中无法访问。

图解如下:

相关文章
|
9天前
|
数据安全/隐私保护 C++
C++ 类方法解析:内外定义、参数、访问控制与静态方法详解
C++ 中的类方法(成员函数)分为类内定义和类外定义,用于操作类数据。类内定义直接在类中声明和定义,而类外定义则先在类中声明,再外部定义。方法可以有参数,访问权限可通过 public、private 和 protected 控制。静态方法与类关联,不依赖对象实例,直接用类名调用。了解这些概念有助于面向对象编程。
14 0
|
5月前
|
C++
45 C++ - 继承中同名成员的处理方法
45 C++ - 继承中同名成员的处理方法
28 0
|
1月前
|
存储 Java
|
2月前
|
缓存 Java 程序员
深入理解 Java 修饰符与封装:访问权限、行为控制与数据隐藏
ava 修饰符 用于控制类、属性、方法和构造函数的访问权限和行为。它们可以分为两组: 访问修饰符: public: 意味着代码对所有类可访问。 private: 意味着代码只能在声明的类内部访问。 default: 意味着代码只能在同一包中访问。 protected: 意味着代码在同一包和子类中可访问。 非访问修饰符: final: 意味着类不能被继承,属性和方法不能被重写。 static: 意味着属性和方法属于类,而不属于对象。 abstract: 意味着类不能用于创建对象,方法没有主体,必须由子类提供。 transient: 意味着在序列化包含它们的对象时,属性和方法将被跳过。 sync
117 0
|
5月前
|
存储 Java 程序员
JAVA语法&包和访问控制 & Static 关键字的作用
在编写 Java 程序时,随着程序架构越来越大,类的个数也越来越多,这时就会发现管理程序中维护类名称也是一件很麻烦的事,尤其是一些同名问题的发生。开发人员还可能需要将处理同一方面的问题的类放在同一个目录下,以便于管理。 计算机中存放了若干类型的文档,为了管理方便,操作系统采用了树形结构的文件夹形式存放这些文档,并对文档进行管理。为了更好地组织类,Java 提供了包机制。包是类的容器,用于分隔类名空间。如果没有指定包名,所有的类都属于一个默认的无名包。Java 中将实现相关功能的类组织到一个包中。例如,Jav
38 0
|
8月前
|
Java 程序员 C#
C++类成员的访问权限以及类的封装
C++通过 public、protected、private 三个关键字来控制成员变量和成员函数的访问权限,它们分别表示公有的、受保护的、私有的,被称为成员访问限定符。所谓访问权限,就是你能不能使用该类中的成员。 Java、C# 程序员注意,C++ 中的 public、private、protected 只能修饰类的成员,不能修饰类,C++中的类没有共有私有之分。 在类的内部(定义类的代码内部),无论成员被声明为 public、protected 还是 private,都是可以互相访问的,没有访问权限的限制。 在类的外部(定义类的代码之外),只能通过对象访问成员,并且通过对象只能访问 p
61 0
|
8月前
|
Java
包与四种权限访问修饰符
包与四种权限访问修饰符
27 0
|
11月前
16-封装-访问权限
16-封装-访问权限
|
缓存 IDE API
C#反射与特性(五):主类型成员操作
C#反射与特性(五):主类型成员操作
337 0
C#反射与特性(五):主类型成员操作
|
Java Scala vr&ar
内部类访问外部类属性案例|学习笔记
快速学习内部类访问外部类属性案例。
93 0