Java类的访问权限关键字用法说明

Java中提供了三个关键字在类的内部设置边界,控制类的访问权限,分别是:public、protected、private。这些访问的指定词决定了紧跟其后的被定义的东西可以被谁使用。

public:表示其后的元素对任何人都可以使用。

private:表示其后的元素除了类型的创建者和内部的方法之外任何人都不能访问。

protected:与private相当,差别在于继承的类可以访问protected修饰的元素,同包中的其他类元素也可以访问。

Java还有一种默认的访问权限,在不指定任何关键字的情况下,这种权限将发挥作用,它是一种包的访问权限,即在当前包中的任何元素可以访问。

访问权限控制的作用:

1、让客户端程序员无法触及他们不应该触及的一部分数据——这些数据对于数据类型的内部操作是必须的,但并不是解决特定问题所需接口的一部分。隐藏一些实现的细节对于保护数据类型内部脆弱的部分,提高程序的安全性和可用性也是必须的。

2、允许类库的设计者改变其内部的工作方式而不影响客户端程序员。在设计者有更加优化的代码设计方式的时候可以随时改变类的内部结构,而这些对于客户端程序员都是不可见的,他们也无需关心类的实现细节。

——来自《Java编程思想》

补充知识:JAVA 中的权限访问修饰符(public,protected,default,private )

JAVA中有四个权限访问修饰符:public,protected,default,private

注意:这里讲的是对类中属性和方法的访问权限,并不是类的访问权限

1.default:包访问权限

如果什么也没写,默认为default。当然也可以显式得给出default权限

default修饰的属性和方法,包中的所有其他类对那个成员都有访问权限,但是对于这个包之外的所有类没有访问权限。

2.public: 接口访问权限

public修饰的属性和方法对每个类都是可见的

3.private:类内访问权限

private和public相对,private修饰的属性和方法即除类本身外,其他类都不能访问。

4.protected:继承访问权限

首先,protected提供包访问权限。换句话说,如果两个类在同一个包内,对调用者所在的类来说,default和protected提供的访问权限相同。

如果不在一个包,protected提供了继承访问权限,即子类可以访问父类中被protected修饰的属性和方法。

他们关系如下:

类内 继承 包内 其他所有
public
protected
default
private

以上这篇Java类的访问权限关键字用法说明就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 如何实现java递归 处理权限管理菜单树或分类

    这篇文章主要介绍了如何实现java递归 处理权限管理菜单树或分类,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.数据库表设计 2.实体类设计 package com.ieou.capsule.dto.SystemPermissions; import java.util.List; /** * 功能菜单类 */ public class SystemPermissionsTree { private String functionCode;

  • 如何使用java修改文件所有者及其权限

    这篇文章主要介绍了如何使用java修改文件所有者及其权限,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.设置所有者 管理文件所有者 Files.getOwner()和Files.setOwner()方法 要使用UserPrincipal来管理文件的所有者 (1)更改文件的所有者 import java.io.IOException; import java.nio.file.*; import java.nio.file.attribute

  • Java类成员访问权限控制知识总结

    一 前言 这篇文章是很基础的一文,没多大深度,对于开发人员必然是熟练于心.本篇文章的主题是为什么java要设置类成员访问级别?其原因也很简单,就是为了面向对象的封装特性:将类成员使用不同的访问级别控制,在数据封装后,其他的类成员想要访问当前类成员,就必须要有足够的权限才能访问:这样做的目的就是我可以随意修改不想让其他类成员没有权限访问的数据,只要约定好相关的协议,不影响其他类成员访问即可: 二 权限修饰词介绍 public 意指公有的意思,其修饰的成员权限最低,表示任何成员都可以访问:注意点是一

  • Java四种权限修饰符知识点详解

    Java中有四种权限修饰符 public protected (default) private 同一个类 yes yes yes yes 同一个包 yes yes yes no 不同包子类 yes yes no no 不同包非子类 yes no no no Warning:(default)并不是关键字"default",而是根本不写 知识点补充: Java语言4种访问权限修饰符 Java语言4种访问权限修饰符,但是仅有3个关键字,因为不写访问权限,在Java中被称为默认权限,或同包

  • Java及nginx实现文件权限控制代码实例

    我们知道,使用nginx作为文件下载服务器,可以极大地降低对后端Java服务器的负载冲击,但是nginx本身并不提供授权控制,因此好的方案是由后端服务器实现权限控制,最好的方式是直接复用应用的认证体系,最大化的降低成本.因此,可借助http的"X-Accel-Redirect"头实现该特性.具体如下: location /bookres/ { #禁止浏览器直接访问 internal; limit_rate 200k; alias d:/test/bookres/; #转由后台处理(to

  • Java访问权限原理与用法详解

    本文实例讲述了Java访问权限原理与用法.分享给大家供大家参考,具体如下: 构造者模式思想 进行初始化,解决了多个构造器重载,构造器参数过多记不住的情况. package day7;//声明一个程序包 class Employee{ private String name; private int no; private int age; private String sex; private String address; //alt + shift + s public int getNo(

  • Java类的访问权限关键字用法说明

    Java中提供了三个关键字在类的内部设置边界,控制类的访问权限,分别是:public.protected.private.这些访问的指定词决定了紧跟其后的被定义的东西可以被谁使用. public:表示其后的元素对任何人都可以使用. private:表示其后的元素除了类型的创建者和内部的方法之外任何人都不能访问. protected:与private相当,差别在于继承的类可以访问protected修饰的元素,同包中的其他类元素也可以访问. Java还有一种默认的访问权限,在不指定任何关键字的情况下

  • 举例详解Java中的访问权限修饰符

    访问权限符: (1)public: 对于成员来说:任何其他类都可以访问它们,不管在同一个包中还是在另外的包中. 对于类来说:    也是一样. (2)friendly: 对于成员老说:如果一个类的成员没有任何权限修饰,那么它门就是缺省包访问权限,用friendly来表示,注 意friendly不是Java中的关键字,这里是个人喜欢的方式用它表示而已.同一个包内其它类可以访问,但包外 就不可以.对于同一个文件夹下的.没有用package的classes,Java会自动将这些classes初见为隶属

  • C#类的访问修饰符用法分析

    本文详细分析了C#类的访问修饰符用法,分享给大家供大家参考.具体用法分析如下: 默认情况下,类声明为内部的,即只有当前工程中的代码才能访问它.可以用internal访问修饰符关键字显式指定,但这不是必须的,类在定义时默认为此类型的类.但是C# 方法默认访问级别: private. 方法或者属性的修饰符的访问级别如下图: 访问修饰符 意 义 public 访问不受限制,可以类内和任何类外的代码中访问 protected 可访问域限定于类内或从该类派生的类内 internal 可访问域限定于类所在的

  • 浅析java修饰符访问权限(动力节点Java学院整理)

    Java有四种访问权限,其中三种有访问权限修饰符,分别为private,public和protected,还有一种不带任何修饰符: 1. private: Java语言中对访问权限限制的最窄的修饰符,一般称之为"私有的".被其修饰的类.属性以及方法只能被该类的对象访问,其子类不能访问,更不能允许跨包访问. 2. default:即不加任何访问修饰符,通常称为"默认访问模式".该模式下,只允许在同一个包中进行访问. 3. protect: 介于public 和 pri

  • java四种访问权限实例分析

    引言 Java中的访问权限理解起来不难,但完全掌握却不容易,特别是4种访问权限并不是任何时候都可以使用.下面整理一下,在什么情况下,有哪些访问权限可以允许选择. 一.访问权限简介 访问权限控制: 指的是本类及本类内部的成员(成员变量.成员方法.内部类)对其他类的可见性,即这些内容是否允许其他类访问. Java 中一共有四种访问权限控制,其权限控制的大小情况是这样的:public > protected > default(包访问权限) > private ,具体的权限控制看下面表格,列所

  • java类和对象原理与用法分析

    本文实例讲述了java类和对象原理与用法.分享给大家供大家参考,具体如下: 面向对象编程OOP 类:相似对象的集合. 对象 对象:实体.一切可以被描述的事物. 属性:特征. 方法:动作,行为. 类和对象的区别 [1]类时抽象的,对象是具体的. [2]类是一个模板,创建出来的对象具备共同的属性和方法. [3]类是一种数据烈性.引用数据类型. 语法 public classs 类名{ //定义属性部分 属性1的类型 属性1: 属性2的类型 属性2: ... 属性3的类型 属性n; //定义方法部分

  • Java 包和访问权限操作

    包 1.包的命名规则 包命名规则: - 包名全部由小写字母(多个单词也全部小写): - 如果包名包含多个层次,每个层次应该用"."分割: - 包名一般由倒置的域名开头,比如com.baidu:--不要有www - 自定义包不能java开头: 2.包的作用 有利于类的查找与管理.一个软件由很多类构成,这些类按其功能可分为vo类.dao类.工具类.service类.controller类等,将这些类按其功能分门别类地放在不同包中有利于类的查找与管理: 解决了同名类命名冲突: 有利于保护类中

  • 浅析java 10中的var关键字用法

    2018年3月20日,Oracle发布java10.java10为java带来了很多新特性,其中让人眼前一亮的便是var关键字的引入. what •java10引入了局部变量折断 var用于声明局部变量. 如var user=new ArrayList<User>(); why •避免了信息冗余 •对齐了变量名 •更容易阅读 how •java10之前的变量声明: URL codefx = new URL("http://codefx.org") URLConnection

  • 如何通过指针突破C++类的访问权限

    看如下代码 #include "pch.h" #include <iostream> using namespace std; class A { public: A(int a, int b,int c) :m_a(a), m_b(b),m_c(c) {}; private: int m_a, m_b,m_c; }; int main() { A obj( 1, 2, 3); int a = obj.m_a; //Compile error A *p = new A(3,

随机推荐