【JAVA入门】Day12 - 权限修饰符

news2024/11/18 13:34:49

【JAVA入门】Day12 - 权限修饰符


文章目录

  • 【JAVA入门】Day12 - 权限修饰符
    • 一、private
    • 二、空着不写
    • 三、protected
    • 四、public
    • 五、权限修饰符的使用规则


        权限修饰符是用来控制一个成员能够被访问的范围的。
        权限修饰符可以修饰成员变量方法构造方法内部类

public class Student {
	private String name;
	private int age;
}

        在 Java 中一共四种权限修饰符,它们的作用范围从小到大为: private < 空着不写 < protected < public 。
在这里插入图片描述

一、private

        如果一个变量被 private 修饰,那么它在同一个类中可以使用,在同一个包中的其他类不能使用,在不同包下的子类也无法使用,在不同包下的无关类更不能使用。

  • 在同一个包 XiuShiFu 中,另一个 Animal 类生成的对象 a,无法直接使用 name。
package JavaStudy2.XiuShiFu;

public class Animal {
    private String name;

    public void show() {
        System.out.println(name);	//在自己类中可以直接使用 name
    }
}
package JavaStudy2.XiuShiFu;

public class Test {
    public static void main(String[] args) {
        Animal a = new Animal();
        // System.out.println(a.name); 报错
    }
}
  • 现有另一个包 AnotherBag,其下有一个类 Dog 继承了 XiuShiFu 包(用 import 语句导入)里的 Animal,此时继承过来的 name,也无法被使用。
package JavaStudy2.AnotherBag;

import JavaStudy2.XiuShiFu.Animal;

public class Dog extends Animal {
    public void show() {
        //System.out.println(name); 报错
    }
}
  • 现在另一个包 AnotherBag 中创建了一个新的 Test 类(无关类),然后导入 XiuShiFu 包里的 Animal 类,此时创建的 Animal 对象 a,还是无法使用 name。
package JavaStudy2.AnotherBag;

import JavaStudy2.XiuShiFu.Animal;

public class Test {
    public static void main(String[] args) {
        Animal a = new Animal();
        //System.out.println(a.name); 报错
    }
}

二、空着不写

        空着不写叫默认默认情况下,在同一个类中可以使用,在同一个包其他类中也可以使用,但在不同包下的子类和无关类中就无法使用。

  • 在同一个包 XiuShiFu 中,另一个 Animal 类生成的对象 a,可以直接使用 name。
package JavaStudy2.XiuShiFu;

public class Animal {
    String name;

    public void show() {
        System.out.println(name);	//在自己类中可以直接使用 name
    }
}
package JavaStudy2.XiuShiFu;

public class Test {
    public static void main(String[] args) {
        Animal a = new Animal();
        System.out.println(a.name); 
    }
}
  • 现有另一个包 AnotherBag,其下有一个类 Dog 继承了 XiuShiFu 包(用 import 语句导入)里的 Animal,此时继承过来的 name,无法被使用。
package JavaStudy2.AnotherBag;

import JavaStudy2.XiuShiFu.Animal;

public class Dog extends Animal {
    public void show() {
        //System.out.println(name); 报错
    }
}
  • 现在另一个包 AnotherBag 中创建了一个新的 Test 类(无关类),然后导入 XiuShiFu 包里的 Animal 类,此时创建的 Animal 对象 a,也无法使用 name。
package JavaStudy2.AnotherBag;

import JavaStudy2.XiuShiFu.Animal;

public class Test {
    public static void main(String[] args) {
        Animal a = new Animal();
        //System.out.println(a.name); 报错
    }
}

三、protected

        这个词的意思是受保护的受保护的在本类中能用,在同一个包其他类中也能用,在不同包下的子类还能用,但是无关类用不了。

  • 在同一个包 XiuShiFu 中,另一个 Animal 类生成的对象 a,可以直接使用 name。
package JavaStudy2.XiuShiFu;

public class Animal {
    protected String name;

    public void show() {
        System.out.println(name);	//在自己类中可以直接使用 name
    }
}
package JavaStudy2.XiuShiFu;

public class Test {
    public static void main(String[] args) {
        Animal a = new Animal();
        System.out.println(a.name); 
    }
}
  • 现有另一个包 AnotherBag,其下有一个类 Dog 继承了 XiuShiFu 包(用 import 语句导入)里的 Animal,此时继承过来的 name,没有报错,可以被使用。
package JavaStudy2.AnotherBag;

import JavaStudy2.XiuShiFu.Animal;

public class Dog extends Animal {
    public void show() {
        System.out.println(name);
    }
}
  • 现在另一个包 AnotherBag 中创建了一个新的 Test 类(无关类),然后导入 XiuShiFu 包里的 Animal 类,此时创建的 Animal 对象 a,无法使用 name,报错。
package JavaStudy2.AnotherBag;

import JavaStudy2.XiuShiFu.Animal;

public class Test {
    public static void main(String[] args) {
        Animal a = new Animal();
        //System.out.println(a.name); 报错
    }
}

四、public

        public意思是公共的公共的在以上提到的所有类中都能用。

  • 在同一个包 XiuShiFu 中,另一个 Animal 类生成的对象 a,可以直接使用 name。
package JavaStudy2.XiuShiFu;

public class Animal {
    public String name;

    public void show() {
        System.out.println(name);	//在自己类中可以直接使用 name
    }
}
package JavaStudy2.XiuShiFu;

public class Test {
    public static void main(String[] args) {
        Animal a = new Animal();
        System.out.println(a.name); 
    }
}
  • 现有另一个包 AnotherBag,其下有一个类 Dog 继承了 XiuShiFu 包(用 import 语句导入)里的 Animal,此时继承过来的 name,没有报错,可以被使用。
package JavaStudy2.AnotherBag;

import JavaStudy2.XiuShiFu.Animal;

public class Dog extends Animal {
    public void show() {
        System.out.println(name);
    }
}
  • 现在另一个包 AnotherBag 中创建了一个新的 Test 类(无关类),然后导入 XiuShiFu 包里的 Animal 类,此时创建的 Animal 对象 a,可以使用 name,没有报错。
package JavaStudy2.AnotherBag;

import JavaStudy2.XiuShiFu.Animal;

public class Test {
    public static void main(String[] args) {
        Animal a = new Animal();
        System.out.println(a.name);
    }
}

五、权限修饰符的使用规则

        在开发时,一般只使用 private 和 public。其中:

  • 成员变量私有
  • 方法公开

特例:如果方法中的代码是抽取其他方法中的共性代码,这个方法一般也设私有

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1890909.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

解析Kotlin中的内联函数,inline、noinline、crossinline【笔记摘要】

用编译时常量的概念&#xff0c;引出本文要讲内联函数inline&#xff1a; 1.编译时常量 Java的编译时常量 Compile-time Constant 它有四个要求&#xff1a;1.这个变量需要是 final 的  2.类型只能是字符串或者基本类型  3.这个变量需要在声明的时候就赋值  4.等号右边…

华为路由器静态路由配置(eNSP模拟实验)

实验目标 如图下所示&#xff0c;让PC1ping通PC2 具体操作 配置PC设备ip 先配置PC1的ip、掩码、网关。PC2也做这样的配置 配置路由器ip 配置G0/0/0的ip信息 #进入系统 <Huawei>system-view #进入GigabitEthernet0/0/0接口 [Huawei]int G0/0/0 #设置接口的ip和掩码 […

springboot 自定义的全局捕获异常失效

背景&#xff1a;springbootspringcloud 分布式微服务。 问题&#xff1a;公共模块在使用RestControllerAdvice全局捕获异常时&#xff0c;捕获不到子服务抛出的相应异常 首先看一下全局异常组件有么有被扫描到 如何查看&#xff0c;很简单只需要写一段类加载打印代码&#x…

Ansys Zemax|场曲跟畸变图的前世今生

实现 OpticStudio通过在X和Y方向&#xff08;弧矢和子午方向&#xff09;的傍轴光线追踪确定近轴图像平面的Z坐标&#xff0c;并测量该近轴焦平面与系统图像平面的Z坐标之间的距离。 切向数据是沿Z轴从图像平面到近轴图像平面在切向&#xff08;YZ&#xff09;平面测量的距离…

解决pip安装时的“SyntaxError: invalid syntax”错误

项目场景&#xff1a; 项目中有新的成员加入时&#xff0c;第一步就是安装开发环境&#xff0c;然而往往同样的机器、同样的配置&#xff0c;我们却总能遇到各种各样不同的问题。 今天分享一个简单的操作问题。 问题描述 项目用到pandas&#xff0c;安装pandas时遇到Syntax…

使用 App Store Connect API 生成和读取分析报告

文章目录 前言安装 API Swift SDK配置 API Swift SDK生成分析报告获取所有可用的报告获取报告的分段下载分段的数据总结 前言 Apple 最近推出了50多个新的分析报告&#xff0c;其中包含数百个新的数据点和指标&#xff0c;以帮助开发者了解他们的应用程序的表现情况。 这些报…

k8s部署rancher

一、添加helm chart仓库 二、创建命名空间 # kubectl create ns cattile-system 三、安装cert-manager https://github.com/cert-manager/cert-manager/releases/download/v1.14.5/cert-manager.crds.yaml# kubectl apply -f cert-manager.crds.yaml 四、安装rangcher # he…

day02-广播机制

广播机制 广播是numpy对不同形状的数组进行数值计算的方式&#xff0c;对数组的算术运算通常在相应的元素上进行 1.如果两个数组a和b形状相同&#xff0c;即满足a.shape b.shape&#xff0c;那么a*b的结果就是a与b数组对应位相乘。这要求维数相同且各维度的长度相同 a np.a…

Python成为全球热门语言的“秘密”

1994年&#xff0c;美国举办了一次 针对Python的workshop 从全美国选出来的程序员 聚在一起讨论着这个“秘密武器” Python是如何从一个开发者的“副业” 变成现在全球热门语言呢&#xff1f; 今天我们一起探讨一下Python简史 往下翻看&#xff0c;解锁答案&#x1f447…

帮人安装打印机驱动踩过的坑

自从当了程序员&#xff0c;总被人认为是无所不能。安装系统&#xff0c;组装电脑都会。有啥只要跟电脑沾点边的事情都来找我。这不今天就被叫去帮人安装打印机驱动。 问题描述 以前老电脑都可以用打印机的&#xff0c;自从换新电脑后就不行了。别人可以用&#xff0c;就他的新…

1.(vue3.x+vite)实现卷帘效果

前端技术社区总目录(订阅之前请先查看该博客) 1:效果预览 2:代码编写 <template><div style="width

bug,属性注入时为null

因为在使用拦截器时使用的是new的这个类放容器的 解决方法&#xff1a; 使用有参构造器&#xff0c;在new对象时传入值

yolov8 目标检测快速streamlit可视化界面

参考&#xff1a; https://github.com/ultralytics/ultralytics/blob/2330caa50a8a8e0bb61408df8dca0721fb350dbe/ultralytics/solutions/streamlit_inference.py 版本&#xff1a; ultralytics 8.2.27 # Ultralytics YOLO &#x1f680;, AGPL-3.0 licen…

速锐得解码汽车以太网技术特点接口定义数据传输及应用

在当前的汽车工业中&#xff0c;随着技术的飞速发展&#xff0c;车载网络技术也在不断进步与更新。其中&#xff0c;具备以太网的车型已成为一个新兴趋势&#xff0c;这主要归功于车载以太网技术在车内带宽需求较高的系统上的应用&#xff0c;如高级驾驶辅助系统&#xff08;AD…

vue3单个页面进行防抖节流

防抖 <template><button id"submitButton" ref"submitButton">GET</button> </template><script lang"ts" setup> import { ref, onMounted } from vue;// 防抖函数 function debounce(func: () > void, dela…

浅析C++函数重载

浅析C函数重载 C语言和C函数调用的不同 C语言会进行报错 C能成功运行并且自动识别类型 由此可以看出&#xff0c;C在函数调用时进行了调整&#xff0c;使其支持函数重载&#xff0c;那么我们就来看看进行了哪些调整吧&#x1f60e; 分析函数调用 首先我们要知道&#xff0c…

Mysql8.0.36 Centos8环境安装

下载安装包 官网地址&#xff1a;MySQL :: Download MySQL Community Server (Archived Versions) 可以直接下载后再传到服务器&#xff0c;也可以在服务器采用wget下载。如下&#xff1a; wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.36-linux-glib…

LLM应用:传统NLP任务

LLM出来以后&#xff0c;知乎上就出现了“传统NLP已死”的言论&#xff0c;但是传统NLP真的就被扔进历史的垃圾桶了吗&#xff1f; 其实&#xff0c;尽管LLM具有出色的通用能力&#xff0c;但仍然无法有效应对低资源领域的自然语言处理任务&#xff0c;如小语种翻译。为了更好地…

企业LoRA模型定制服务

&#x1f308; 最强AI绘画模型训练、定制服务公司出炉 —— 触站AI&#xff0c;设计界的智能魔法师 &#x1f9d9;‍♂️ &#x1f3a8; 触站AI&#xff0c;用智能技术解锁设计的无限可能 &#x1f3a8;在创意与科技交织的今天&#xff0c;触站AI以其AI绘画模型训练和定制服务…

「算法题」二分查找算法演示

一个样式更加美观大方的HTML页面示例,其中包括了二分查找算法的演示。 布局描述 页面主体使用白色背景,加上轻微的阴影和圆角边框,使页面看起来更加精致。输入框和按钮使用了更加现代的样式,包括圆角边框和悬浮效果。按钮使用了鲜明的颜色,以吸引用户点击。搜索结果显示时…