首页 > 其他分享 >Day33--属性的修饰符

Day33--属性的修饰符

时间:2024-11-18 18:23:40浏览次数:1  
标签:访问 -- 修饰符 Day33 public Person class 属性

Day33--属性的修饰符

  1. public修饰符

    • 含义:被public修饰的属性可以在任何类中被访问。这是一种最宽松的访问控制级别。
    • 示例
    class Person {
        public String name;
    }
    public class Main {
        public static void main(String[] args) {
            Person p = new Person();
            p.name = "John";
            System.out.println(p.name);
        }
    }
    

    在这个例子中,Person类中的name属性被声明为public。在Main类的main方法中,可以直接访问p.name来设置和获取name的值。

  2. private修饰符

    • 含义private修饰的属性只能在其所属的类内部被访问。这是一种最严格的访问控制级别,用于隐藏类的内部实现细节。
    • 示例
    class Person {
        private int age;
        public void setAge(int newAge) {
            if (newAge > 0) {
                age = newAge;
            }
        }
        public int getAge() {
            return age;
        }
    }
    public class Main {
        public static void main(String[] args) {
            Person p = new Person();
            p.setAge(20);
            System.out.println(p.getAge());
        }
    }
    

    这里Person类中的age属性是private的。不能在Main类中直接访问p.age,而是需要通过setAge方法来设置age的值,通过getAge方法来获取age的值。

  3. protected修饰符

    • 含义protected修饰的属性可以在其所属的类内部、同一个包中的其他类以及该类的子类(无论子类是否在同一个包中)中被访问。
    • 示例
    package com.example;
    class Parent {
        protected int protectedValue = 10;
    }
    class Child extends Parent {
        public void accessProtectedValue() {
            System.out.println(protectedValue);
        }
    }
    public class Main {
        public static void main(String[] args) {
            Child c = new Child();
            c.accessProtectedValue();
        }
    }
    

    在这个例子中,Parent类中的protectedValue属性被protected修饰。Child类继承自Parent类,可以在Child类的accessProtectedValue方法中访问protectedValue。同时,Main类在同一个包(com.example)中,通过Child类的实例也可以间接访问protectedValue

  4. 默认(没有修饰符)修饰符

    • 含义:如果属性没有使用publicprivateprotected修饰,那么它具有默认的访问权限。默认访问权限的属性可以在同一个包中的其他类中被访问,但不能在不同包的类中直接访问。
    • 示例
    package com.example;
    class DefaultAccessClass {
        int defaultValue;
    }
    class AnotherClassInSamePackage {
        public void accessDefaultValue() {
            DefaultAccessClass dac = new DefaultAccessClass();
            dac.defaultValue = 5;
            System.out.println(dac.defaultValue);
        }
    }
    public class Main {
        public static void main(String[] args) {
            AnotherClassInSamePackage aci = new AnotherClassInSamePackage();
            aci.accessDefaultValue();
        }
    }
    

    这里DefaultAccessClass中的defaultValue没有修饰符,它可以被AnotherClassInSamePackage(在同一个包com.example中)访问和修改。但是如果在其他包中的类想要访问这个属性,就会受到限制。

标签:访问,--,修饰符,Day33,public,Person,class,属性
From: https://www.cnblogs.com/xiaokunzhong/p/18553343

相关文章

  • 人工智能之机器学习线代基础——行列式、矩阵的 逆(inverse)、伴随矩阵
    行列式(Determinant)是线性代数中的一个重要概念,用于描述方阵的一些性质。行列式是一个标量,计算方法和矩阵的大小有关。 不使用代数余子式的定义     不使用代数余子式的定义的三阶计算案例     矩阵的逆(inverse) 伴随矩阵  ......
  • 来自笔记本的移植
    编译汇编代码到可执行文件并执行步骤假设文件名字是flag.asm在linux中,先nasm-felfflag.asm-oflag.o然后再ld-melf_i386-oflagflag.o然后就可以了,找个时间看看,nasm的用法修改aslr参数值:sudosysctl-wkernel.randomize_va_space=0#这是修改为0p.sendline(shellcod......
  • SqlServer数据库恢复备份数据的方法
    一、如何备份 二、开始还原当时在公司是要将阿里云的sqlserver中的数据备份一份到公司内网数据库,并将数据恢复到公司内网SqlServer数据库,当我按照原库的要求创建了新的空库。在SSMS控制台还原的时候,它竟然报错,报:system.data.sqlclient.Sqlerror:备份集中的数据库备份与现......
  • 日常学习
    在pwn19中,遇到一个问题,fclose关闭了输出流,百度查到解决方法是使用1>&0以下:在Linux中,>&0是一种输入重定向的语法。重定向是一种将命令的输入或输出从默认的位置改为指定位置的方法。在这个语法中,>符号用于输出重定向,&符号用于指定文件描述符(FileDescriptor)。文件描述符是一个......
  • GPU渲染一文详解,设置、优势和技巧
    在3D渲染领域,速度和效率至关重要,而GPU渲染已成为游戏规则的改变者,这是不争的事实。本文将介绍有关GPU渲染的所有信息,从设置硬件到探索其优势,以及优化工作流程的一些有用技巧。我们希望本指南能帮助您更好地了解GPU为您提供了哪些功能,以实现更快、更高效的渲染。什么是GPU渲染?......
  • vue2-组件化编程
    模块:向外提供特定功能的js呈现组件:用来实现局部(特定)功能效果的代码集合模块化:当应用中的js都以模块来编写的,那这个应用就是一个模块化的应用组件化:当应用中的功能都是多组件的方式来编写的,那这个应用就是一个组件化的应用编写组件-非单文件组件非单文件组......
  • 实验4
    实验任务1:1#include<iostream>23usingstd::cout;4usingstd::endl;56//类A的定义7classA{8public:9A(intx0,inty0);10voiddisplay()const;1112private:13intx,y;14};1516A::A(intx0,inty0):x{x0},y{......
  • 银河护胃队-冲刺集合
    作业所属课程https://edu.cnblogs.com/campus/fzu/SE2024/作业要求https://edu.cnblogs.com/campus/fzu/SE2024/homework/13305作业的目标日志集合团队名称银河护胃队团队成员学号-名字072208130-曹星才(组长)052205144-张诗悦102201120-陈康培102201342-潘宇......
  • 手把手教你搭建OpenScenario交通场景(下)
        在《手把手教你搭建OpenScenario交通场景(上)》中,我们已经介绍,在动力学仿真软件ModelBase中对车辆、行人、物体和RSU四类实体进行创建后,实体的名称将根据各自类型出现在编辑器左上位置的实体列表中进行显示,并可用于通过点击在编辑器中实现快速查找。模型库    ......
  • JavaScript 字符串的常用方法有哪些
    速览JavaScript字符串的常用方法包括charAt、charCodeAt、concat、indexOf、lastIndexOf、slice、substring、toLowerCase、toUpperCase、trim、replace、split、padStart、padEnd等。详答1.基本信息JavaScript中的字符串是一种原始数据类型,提供了丰富的操作方法来处......