news 2026/2/13 16:51:20

Java中的修饰符

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java中的修饰符

一.static

static是静态修饰符

表示“属于类本身,而不是某个类的实例”,即不需要创建对象就可以通过类名访问static成员

被static修饰的,会优先与对象先在内存中加载出来

1.static修饰成员变量

即静态变量,也叫类变量,这个类的所有对象都共享静态变量的数据

package staticdemo; public class Student { private String name; private int age; public static String schoolName; // static表示静态,是Java中的一个修饰符,可以修饰成员方法,成员变量 // 被static修饰后称为静态成员变量或静态成员方法 // 静态变量是所有类的实例所共享的,静态变量也叫类变量 // 静态变量的调用方式:类名.静态变量名(推荐) 或 实例对象.静态变量名 public Student() { } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public void show(){ System.out.println(name + ", " + age + ", " + schoolName); } }

2.static修饰成员方法

  • javabean类:用于描述一类事物的类,比如学生、猫、狗……
  • 测试类:用于检查其他类是否书写正确,并带有main方法,是程序的主入口
  • 工具类:不是用来描述一类事物,而是来帮助编程的人来完成一些事情的类(提供一组独立的,无状态的,可复用的功能)

在创建工具类的时候,需要注意:

  1. 类名见名知意
  2. 要私有化构造方法,不让外界创建这个工具类的对象。因为创建工具类的对象没有什么意义(防止实例化,也节省内存)
  3. 类的方法定义为静态方法(因为工具类中的方法不依赖于任何对象,直接类名.方法就可以调用)

例子:

在实际开发中,经常会用到一些数组使用的工具类。如提供一个工具类方法printArr,用于返回整数数组的内容;如提供一个工具类方法getAverage,用于返回一维浮点型数组的平均值;

public class ArrayUtil { // 私有化构造方法:不让外界创造它的对象 private ArrayUtil(){}; public static String printArray(int[] arr){ StringBuilder sb = new StringBuilder(); sb.append("["); for (int i = 0; i < arr.length; i++){ if (i == arr.length - 1){ sb.append(arr[i]); } else { sb.append(arr[i]).append(", "); } } return sb.append("]").toString(); } public static double getAverage(double[] arr){ double sum = 0; for (int i = 0; i < arr.length; i++){ sum += arr[i]; } return sum / arr.length; } }

3.static使用的注意点

1.静态方法中没有this关键字

非静态方法中的参数有一个默认的this参数,即方法名(类名 this)。但是this不用手动调用,是虚拟机自动赋值调用的。而静态方法中没有this关键字作为方法的参数(复习:this指的是当前类的对象即调用者的地址)

非静态的方法与对象相关,所以要有this关键字

而静态的方法与对象无关,是全局共享的,所以没有this关键字

2.静态方法不能调用类中非静态的成员方法

因为非静态的方法和对象相关,是含有默认的this关键字的。如果要调用非静态方法,要加上this关键字(虚拟机自动加)。但是静态方法中没有this关键字,虚拟机不会自动加上和调用,编程的人手动加上也会报错。所以静态方法中不能调用类中的非静态的成员方法

3.非静态的方法可以调用类中所有的成员方法或成员变量

非静态方法有this关键字,而且静态变量和静态方法是全局(整个类)共享的,所以非静态的方法可以调用所有的方法和变量

二.public

1.详情

public是Java的一个访问修饰符,它的主要作用是控制类、方法、变量等成员的访问范围。当成员被声明为public时,表示该成员可以被其他任何类访问,无论这些类是否在同一个包中。

public修饰类时表示这个类可以被其他的类访问,如果类名不用public修饰,比如默认

class 类名(){ ... }

就表示这个类只能在同一个包内被访问

2.public与其他修饰符的对比

修饰符同类同包子类(不同包)不同包
public
protected
默认(无)
private
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/10 19:38:29

华为OD技术面真题 - 数据库MySQL - 2

文章目录 介绍一下MySQL查询语句执行过程简述一下MySQL的架构说一下你理解的数据库索引&#xff1f;分别说说索引的优点和缺点说说MySQL中索引类型&#xff1f;如何创建合适的索引&#xff1f;怎么优化查询速度 介绍一下MySQL查询语句执行过程 执行SQL查询语句会经过上述组件和…

作者头像 李华
网站建设 2026/2/12 1:54:38

自定义类型转换机制

1、非修改序列算法 这些算法不会改变它们所操作的容器中的元素。 1.1 find 和 find_if find(begin, end, value)&#xff1a;查找第一个等于 value 的元素&#xff0c;返回迭代器&#xff08;未找到返回 end&#xff09;。find_if(begin, end, predicate)&#xff1a;查找第…

作者头像 李华
网站建设 2026/2/9 21:19:30

Transformer 大模型架构深度解析(4)详解 Transformer 架构

目录 文章目录目录Transformer 架构Input EmbeddingPositional EncodingEncoder软对齐注意力的思想词向量相似度的计算方法Scaled Dot-Product AttentionSelf-AttentionMulti-Head Attention&#xff08;Self-Attention&#xff09;Feed Forward Neural NetworkResidual Connec…

作者头像 李华
网站建设 2026/2/8 18:02:48

‌别再手动对比日志了!AI日志分析工具实测TOP3

软件测试中的日志分析痛点‌ 在软件测试工作中&#xff0c;日志分析是核心环节&#xff0c;涉及错误追踪、性能监控和测试报告生成。传统手动方法耗时耗力&#xff1a;测试工程师需逐行比对日志文件&#xff0c;识别异常模式&#xff0c;平均每个项目消耗20-30小时。常见问题包…

作者头像 李华
网站建设 2026/2/8 15:47:27

基于Vue的数字图书馆设计与开发793m5(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末

系统程序文件列表 系统功能 用户,图书类别,图书信息 开题报告内容 一、 课题背景、研究目的与意义 1. 课题背景 随着信息技术的高速发展和数字化转型的深入推进&#xff0c;传统图书馆的服务模式面临诸多挑战&#xff1a;空间限制导致藏书容量有限&#xff0c;纸质资源易损…

作者头像 李华
网站建设 2026/2/7 19:42:17

基于spring boot的调查问卷系统的设计与实现(源码+论文+部署+安装)

感兴趣的可以先收藏起来&#xff0c;还有在毕设选题&#xff0c;项目以及论文编写等相关问题都可以给我留言咨询&#xff0c;我会一一回复&#xff0c;希望可以帮到大家。一、程序背景在当前信息化快速发展的大环境下&#xff0c;传统纸质问卷调查存在效率低下、成本高昂、地域…

作者头像 李华