静态方法与实例方法的区别

静态方法与实例方法的区别

  • 1、静态方法(Static Methods)
    • 1.1 调用方式
    • 1.2 访问权限
  • 2、实例方法(Instance Methods)
    • 2.1 调用方式
    • 2.2 访问权限
  • 3、总结


💖The Begin💖点点关注,收藏不迷路💖

在Java中,静态方法和实例方法是两种常见的方法类型。它们之间有着显著的区别,这些区别主要体现在它们的调用方式和可访问的成员类型上。

1、静态方法(Static Methods)

静态方法属于类本身,而不是类的实例。这意味着你可以在不创建类的实例的情况下调用静态方法。静态方法通常用于执行与类本身相关但不依赖于任何特定对象的操作。

1.1 调用方式

静态方法可以使用类名直接调用,也可以使用对象名调用,但通常建议使用类名调用以强调其静态特性。

ClassName.staticMethodName();  
 
// 或者使用对象名(不推荐)  
ClassName obj = new ClassName();  
obj.staticMethodName();

1.2 访问权限

静态方法在访问本类的成员时,只能访问静态成员(即静态成员变量和静态方法)。这是因为静态方法不依赖于任何特定的对象实例,因此它们无法访问与特定对象相关的非静态成员。

public class MyClass {  
    public static int staticVar = 10;  
    public int instanceVar = 20;  
  
    public static void staticMethod() {  
        // 可以访问静态变量  
        System.out.println(staticVar);  
          
        // 不能直接访问实例变量  
        // System.out.println(instanceVar); // 编译错误  
    }  
}

2、实例方法(Instance Methods)

实例方法属于类的实例。这意味着你需要创建一个类的实例(即对象)才能调用实例方法。实例方法通常用于执行与特定对象相关的操作。

2.1 调用方式

实例方法只能通过对象名调用。

ClassName obj = new ClassName();  
obj.instanceMethodName();

2.2 访问权限

实例方法可以访问类的所有成员,包括静态成员和实例成员。这是因为实例方法是在特定对象上调用的,因此它们可以访问与该对象相关的所有成员。

public class MyClass {  
    public static int staticVar = 10;  
    public int instanceVar = 20;  
  
    public void instanceMethod() {  
        // 可以访问静态变量  
        System.out.println(staticVar);  
          
        // 可以访问实例变量  
        System.out.println(instanceVar);  
    }  
}

3、总结

1、静态方法和实例方法之间的主要区别在于它们的调用方式和可访问的成员类型。

2、静态方法属于类本身,可以通过类名直接调用,并且只能访问静态成员。

3、而实例方法属于类的实例,需要通过对象名调用,并且可以访问类的所有成员(包括静态成员和实例成员)。
在这里插入图片描述


💖The End💖点点关注,收藏不迷路💖

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用 Smart-doc 记录 Spring REST API

如果您正在使用 Spring Boot 开发 RESTful API,您希望让其他开发人员尽可能容易地理解和使用您的 API。文档是必不可少的,因为它为将来的更新提供了参考,并帮助其他开发人员与您的 API 集成。很长一段时间以来,记录 REST API 的方…

用Python轻松转换Markdown文件为PDF文档

Markdown,以其简洁的语法和易于阅读的特性,成为了许多作家、开发者和学生记录思想、编写教程或撰写报告的首选格式。然而,在分享或打印这些文档时,Markdown的纯文本形式可能无法满足对版式和布局的专业需求。而将Markdown转换为PD…

模拟退火算法1——简介

模拟退火算法来源于固体退火原理,将固体加温至充分高,再让其徐徐冷却,加温时,固体内部粒子随温升变为无序状,内能增大,而徐徐冷却时粒子渐趋有序,在每个温度都达到平衡态,最后在常温…

【C++】 解决 C++ 语言报错:Stack Overflow

文章目录 引言 栈溢出(Stack Overflow)是 C 编程中常见且严重的错误之一。栈溢出通常发生在程序递归调用过深或分配过大的局部变量时,导致栈空间耗尽。栈溢出不仅会导致程序崩溃,还可能引发不可预测的行为。本文将深入探讨栈溢出…

周下载量20万的npm包---store

https://www.npmjs.com/package/store <script setup> import { onMounted } from vue import store from storeonMounted(() > {store.set(user, { name: xutongbao })let user store.get(user)console.log(user) //对象console.log(localStorage.getItem(user)) //…

各种特殊损失函数

死区损失函数 点击查看代码 import numpy as np import matplotlib.pyplot as plt# Define the parameters a 2 b 5 epsilon 0.1# Define the loss function L(x) and its derivative def L(x, a, b, epsilon):if x < a:return (x - a)**2 / (2 * epsilon)elif x > b:…

Windows编程原理-消息驱动的机制

Windows为每一个输入事件产生一个输入消息&#xff0c;如&#xff1a; 移动鼠标按键…… 从程序角度看待Windows消息处理 Windows使用一个窗口前必须&#xff1a; 填充一个结构&#xff1a;WNDCLASS注册窗口创建窗口使用窗口撤销窗口 从这个机制看&#xff0c;windows操作系统…

Java | Leetcode Java题解之第214题最短回文串

题目&#xff1a; 题解&#xff1a; class Solution {public String shortestPalindrome(String s) {int n s.length();int[] fail new int[n];Arrays.fill(fail, -1);for (int i 1; i < n; i) {int j fail[i - 1];while (j ! -1 && s.charAt(j 1) ! s.charAt…

Rural Access Index (RAI)农村通达指数

农村通达指数&#xff08;RAI&#xff09; 简介 农村通达指数&#xff08;RAI&#xff09;是全球交通领域最重要的发展指标之一。它是目前可持续发展目标中唯一一个直接衡量农村通达性的指标&#xff0c;通过评估农村人口的四季道路通达性来实现。在 2015 年作为可持续发展目…

Go语言--自定义函数

定义格式 函数构成代码执行的逻辑结构。在 Go语言中&#xff0c;兩数的基本组成为:关键字 func、函数名、参数列表、返回值、所数体和返回语句。 函数定义说明: func:函数由关键字func开始声明FuncName:函数名称&#xff0c;根据约定&#xff0c;数名首字母小写即为private…

Git 操作补充:变基

变基 在 Git 中&#xff0c;整合来自不同分支的修改&#xff0c;除了 merge&#xff0c;还有一种方法&#xff0c;变基 rebase。git rebase 命令基本是是一个自动化的 cherry-pick 命令&#xff0c;它计算出一系列的提交&#xff0c;然后在其他地方以同样的顺序一个一个的 che…

华为 eNSP 模拟器 配置RIP实例 动态路由协议

1 实验拓扑 2 配置路由器 #R1 Huawei>sys [Huawei]sysname R1 [R1]interface GigabitEthernet 0/0/0 [R1-GigabitEthernet0/0/0]ip address 192.168.1.1 255.255.255.0 [R1-GigabitEthernet0/0/0]qu [R1]rip [R1-rip-1]network 192.168.1.0 [R1-rip-1]version 2 [R1-rip-…

C++:求梯形面积

梯形面积 已知上底15厘米&#xff0c;下底25厘米&#xff0c;问梯形面积值是多少&#xff1f; #include<iostream> using namespace std; int main() {//梯形的面积公式&#xff08;上底下底&#xff09; 高 2//上底变量、下底变量int s,d,h,m;s15;d25;h 2*150 * 2/s ;…

Bootstrap 图片

Bootstrap 图片 Bootstrap 是一个流行的前端框架,它提供了一套丰富的工具和组件,用于快速开发响应式和移动优先的网页。在本文中,我们将探讨如何使用 Bootstrap 来处理和展示图片,包括图片的响应式设计、图片样式和图片布局。 响应式图片 Bootstrap 通过其栅格系统提供了…

接口自动化测试高频面试题

一、json和字典的区别&#xff1f; json就是一个文本、字符串&#xff1b;有固定的格式&#xff0c;格式长的像python字典和列表的组合&#xff1b; 以key-value的键值对形式来保存数据&#xff0c;结构清晰&#xff0c;。可以说是目前互联网项目开发中最常用的一种数据交互格…

k8s record 20240703

1. containerd 它不用于直接和开发人员互动&#xff0c;在这方面不和docker竞争 containerd的用时最短&#xff0c;性能最好。 containerd 是容器的生命周期管理&#xff0c;容器的网络管理等等&#xff0c;真正让容器运行需要runC containerd 是一个独立的容器运行时&am…

PyTorch环境配置及安装

PyTorch环境配置及安装 Step1&#xff1a;安装Anaconda 参考该链接&#xff08;视频01:30--03:00为安装教程&#xff09;&#xff1a; 【PyTorch深度学习快速入门教程&#xff08;绝对通俗易懂&#xff01;&#xff09;【小土堆】】 https://www.bilibili.com/video/BV1hE41…

AIGC在软件开发中的应用

目录 1. AIGC技术概述1.1 定义与背景1.2 发展历程 2. AIGC在软件开发中的应用2.1 代码生成2.2 错误检测与修复2.3 自动化测试 3. AIGC对开发者职业前景的影响3.1 助力与赋能开发者代码示例&#xff1a;自动化测试 3.2 技能需求转变与职业转型压力代码示例&#xff1a;AIGC辅助的…

鸿翼FEX文件安全交换系统,打造安全高效的文件摆渡“绿色通道”

随着数字经济时代的到来&#xff0c;数据已成为最有价值的生产要素&#xff0c;是企业的重要资产之一。随着数据流动性的增强&#xff0c;数据安全问题也随之突显。尤其是政务、金融、医疗和制造业等关键领域组织和中大型企业&#xff0c;面临着如何在保障数据安全的同时&#…

《数字图像处理与机器视觉》案例四 基于分水岭算法的粘连物体的分割与计数

一、引言 分水岭算法&#xff08;Watershed Algorithm&#xff09;&#xff0c;是一种基于拓扑理论的数学形态学的分割方法&#xff0c;其基本思想是把图像看作是测地学上的拓扑地貌&#xff0c;图像中每一点像素的灰度值表示该点的海拔高度&#xff0c;每一个局部极小值及其影…