首页 > 编程语言 >Java 修饰符

Java 修饰符

时间:2024-07-09 09:31:18浏览次数:11  
标签:Java 包内 子类 void 修饰符 访问 public

Java 中的修饰符用于修饰类、方法、变量等元素,它们控制了这些元素的访问性、继承性和其他特性。主要的修饰符包括:

1. **访问控制修饰符**:
   - **public**: 可以被任何其他类访问。
   - **protected**: 可以被同一包内的类及其子类访问。
   - **default (no modifier)**: 只能被同一包内的类访问。
   - **private**: 只能被同一类的成员访问。

   ```java
   public class Example {
       public int publicVar;
       protected String protectedVar;
       String defaultVar;  // 默认访问控制符,同一包内可访问
       private boolean privateVar;

       // 方法示例
       public void publicMethod() {
           // 可以被任何类访问
       }

       protected void protectedMethod() {
           // 可以被同一包内及子类访问
       }

       void defaultMethod() {
           // 同一包内可访问
       }

       private void privateMethod() {
           // 只能被同一类内部访问
       }
   }
   ```

2. **非访问控制修饰符**:
   - **final**: 表示最终状态,不能被继承(类)、不能被覆盖(方法)、不能被修改(变量)。
   - **abstract**: 用于抽象类和方法,没有实现,需要子类实现。
   - **static**: 表示静态变量或方法,属于类而非实例。
   - **synchronized**: 用于多线程并发控制,确保方法或代码块在同一时间只能被一个线程访问。
   - **volatile**: 用于多线程编程,确保变量的可见性。
   - **transient**: 在序列化时,指示某个变量不需要持久化。
   - **native**: 表示方法的实现由本地代码(如C或C++)提供。
   - **strictfp**: 确保浮点运算的结果在不同平台上一致。

   ```java
   public abstract class Example {
       public static final int MAX_VALUE = 100;
       protected transient String data;  // 在序列化时会被忽略
       private static synchronized void staticMethod() {
           // 静态同步方法
       }
       public abstract void abstractMethod();  // 抽象方法,子类必须实现
   }
   ```

这些修饰符不仅控制了代码的可访问性和行为,还有助于代码的可读性、维护性和安全性。

标签:Java,包内,子类,void,修饰符,访问,public
From: https://blog.csdn.net/fan0430/article/details/140286062

相关文章

  • Java计算机毕业设计网上求职招聘系统(开题+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着互联网技术的迅猛发展和普及,网络已成为人们获取信息、交流互动的重要平台。在就业市场日益竞争激烈的环境下,传统的求职招聘方式已难以满足求职者......
  • Java计算机毕业设计幼儿园管理系统(开题+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着教育信息化的深入发展,幼儿园作为儿童启蒙教育的重要阶段,其管理模式的现代化与智能化已成为必然趋势。传统的手工记录、纸质管理方式不仅效率低下......
  • Java计算机毕业设计校园共享单车系统的设计与实现(开题+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着高校规模的不断扩大和学生人数的增加,校园内的交通问题日益凸显。传统的自行车管理方式不仅效率低下,还存在车辆调度不灵活、租赁流程繁琐、车辆维......
  • 基于Java+SpringBoot+Vue的影城管理系统的设计与开发(源码+lw+部署文档+讲解等)
    文章目录前言项目背景介绍技术栈后端框架SpringBoot前端框架Vue数据库MySQL(MyStructuredQueryLanguage)具体实现截图详细视频演示系统测试系统功能测试系统测试结论代码参考数据库参考源码获取前言......
  • Java高级-线程池
    1.什么是线程池?用于管理线程对象的池子。2.为什么使用线程池?一个线程大约占用内存1M。 1.解决频繁创建线程和销毁线程消耗的性能。 2.解决大量创建线程而导致的内存泄漏问题。3.如何创建线程池?Java中提供了两种方式:第一种:通过工具类完成线程池的创建-:语法简......
  • JAVA基础-----128陷阱
    一、何为128陷阱Java中Integer类型在使用==比较时的特殊行为------128陷阱,解释了当数值在-128到127范围内,由于valueOf方法的缓存机制导致地址相同,比较为真;超出这个范围则新分配内存,地址不同,比较为假。可以预测一下下面程序的输出结果:答案在最后后面!二、造成该现象的原因......
  • javaMap笔记分享
    Map映射(map)是存储键和值间关联(即,键值对)的对象。给定一个键,可以找到其值。键和值都是对象。键必须唯一,但是值可以重复。13.1 支持映射的接口接 口描 述Map将唯一键映射到值NavigableMap扩展SortedMap接口,以处理基于最接近匹配搜索原则的键/值对检索So......
  • java集合笔记分享
    集合 前言集合:集合是java中提供的一种容器,可以用来存储多个数据。集合和数组既然都是容器,它们有啥区别呢?集合和数组的区别:   数组的长度是固定的。集合的长度是可变的。   数组中存储的是同一类型的元素,可以存储基本数据类型值。集合存储的都是对象。而且对象的......
  • Java核心技术学习笔记(五)
    一、ArrayList,LinkedList,Vector的相同点与区别Java集合框架提供多种数据结构,其中ArrayList、LinkedList和Vector是常用列表实现。它们具有共同特性,如实现List接口、有序性和可动态调整大小,但也存在底层数据结构、线程安全性和性能等方面的区别。选择哪种集合取决于具体使用场景。......
  • Java--多态
    1.多态为同一方法根据发送对象的不同而采用多种不同的行为方式2.一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多3.多态存在的条件    1.有继承关系    2.子类重写父类方法    3.父类引用指向子类对象4.多态是方法的多态,属性没有多......