首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我应该让这个类静态吗?

这个问答内容涉及到编程语言中的类(class)和静态(static)的概念。下面是关于这个问题的完善且全面的答案:

在编程语言中,类(class)是一种用于定义对象的模板,它包含了数据成员和成员函数。静态(static)是一个关键字,用于指定类中的静态成员或静态变量。静态成员和静态变量在类中只有一个副本,而不是每个对象实例都有一个副本。

静态成员函数是一种特殊的成员函数,它可以在没有创建对象实例的情况下调用。静态成员函数只能访问静态成员变量,不能访问非静态成员变量。

静态变量通常用于存储全局变量或常量,而静态成员变量则用于存储与类相关的全局变量或常量。

在决定是否将类设置为静态时,需要考虑以下因素:

  1. 如果类只包含静态成员和静态成员函数,那么可以将类设置为静态类。这样可以避免创建不必要的对象实例,提高程序的性能和效率。
  2. 如果类包含非静态成员和静态成员,那么不能将类设置为静态类。因为静态成员函数不能访问非静态成员变量。
  3. 如果类包含非静态成员和非静态成员函数,那么需要根据实际需求来决定是否将类设置为静态类。如果需要创建多个对象实例,并且需要访问非静态成员变量和非静态成员函数,那么不应该将类设置为静态类。

总之,是否将类设置为静态取决于实际需求和设计目的。在决定是否将类设置为静态时,需要考虑程序的性能、效率和可维护性等因素。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

2018年应该学习Java

应该学习Java?这是一个不断出现的问题。如果你刚开始是一个开发人员,如果你已经是一个前端开发人员,或者即使你是一个。net背景的人,很多人都想知道学习Java是否是一个正确的职业/个人开发步骤。...10多年后的今天,这个问题变得有趣起来,原因有很多。 列出经常听到的关键问题: Java过时了,过时了。 有更好的JVM语言,如Scala、Clojure和Kotlin。...是一个前端开发人员,NodeJS不是更实用? 使用Java是不愉快的。 Java太慢/消耗太多内存。 为什么应该学Java而不是X、 Y、 Z等其它语言 ?...这是一个问题?这就是年龄歧视!当然,年龄本身并不是一个争论点,所以让我们来看看这个陈述的另一部分。 Java真的过时了吗?TIOBE索引跟踪编程语言的流行程度。...应该学习Java? 是的,你应该学习Java。这是当今世界上最流行的语言。它相当简单、现代、快速,而且正在进化。有大量的图书馆可以帮助您编写令人惊叹的代码,并且可以方便地在线获取帮助和资料。

1.1K30

静态方法可以重写

比较坑的一个问题是,子类能否重写父静态方法? 答案当然是可以的。但是重写之后会发生什么,是否调用子类静态方法会执行子类的逻辑,这才是坑所在的地方。...从这个角度来说,重写静态方法是不允许的。 重写静态方法会发生什么? 虽然原则上不允许重写静态方法,但是, 编译器是不会报错的 那么重写之后会发生什么呢?...这也就证明了,静态方法是在编译时使用了编译信息,进行静态绑定的。它和对象无关,而和有关。 总结 对于静态方法,我们不应该尝试去重写,而且调用时应该进行调用,而不是对象进行调用。...静态方法是属于的方法,在编译阶段就确定了。因此即使重写了也没意义。 如果这样说的不够明白,可以回想平时开发中我们经常用的工厂模式,或者面向接口编程。...我们经常会用父来声明一个对象,而对象是在运行时才确定的,这就是运行时重写的意义所在。而对于静态方法的调用,虽然Java允许通过对象来调用,但只是为了开发方便,正确的姿势是通过来调用。

1.5K20
  • 可以弃用这个端点

    无论移除的原因是什么——新版本还是计划的生命周期结束——优雅的 API 弃用的第一步是观察: 是否使用了这个端点? 如果是这样,是谁在召唤它? 是否使用了这个端点?...让我们检查到/v1/catalog 端点的 HTTP 流量,看看是否有这个端点的任何客户端。 PxL 脚本的输出,显示发送到特定服务的所有 HTTP/2 流量。 端点与通配符?...d3588631-ad8e-49df-bbd6-3167f7efb291/details /v1/catalog/d3234332-s5fe-s30s-gsh6-323434sdf634/details 应该被聚集到逻辑端点中...Catalog 服务流量的这个高级视图确认有两个版本的/Catalog 端点接收流量,并且只有/v1 版本有/details 端点。 谁使用这个端点? 不幸的是,你的端点仍然在接收流量。...这里有一些其他的地方可以检查: 请求体 URL 参数 入站请求的 IP 地址 你确定的任何 API 客户端都应该在即将弃用时得到通知。

    1.6K10

    应该删除微软帐户密码

    十五年前,比尔盖茨也曾在RSA2006大会中发表安全演讲时指出:“密码在三四年内开始退休”,但也迟迟未能真正实现。 直到近日,微软终于正式宣布“杀死”密码,允许用户删除帐户密码。...是否应该删除密码 是,我们建议你删除密码,更加安全,体验也更好。 与以前简单的密码验证登录相比,无密码手机登录确实有更多优势。 用户在手机上批准登录时需要进行身份验证,以确保是本人在操作。...two-step.png 如果绑定的邮箱、手机号等因各种原因无法接收验证码,那只能继续点击“没有其中任何一项”,使用帐户恢复代码来重置密码。 使用恢复代码来重置密码,用户需要输入长达25位的字符。...当然,还要好好了解厂商使用的端到端加密技术能否验证,毕竟连Facebook这种大厂也没有按照声称的那样做好,看这个 WhatsApp 安全再受指控,端到端加密无从验证?。...可以手写下来放在家里,也可以将它存储在具备良好加密设计的密码管理器中,至少采用第二代加密技术保护信息,看这个 密码管理器进化史(2/4)。

    1.6K00

    这个工具,立刻抛弃了 PowerDesigner

    之前是做数据仓库开发的,有一个很重要的环节就是元数据模型管理,当时用的是 PowerDesigner,这个软件是强大,但是随着模型的增多,启动越来越慢,甚至超过了 2 分钟。...而且这玩意是收费的,很明显,自己下载的是破解版的,随着版权意识越来越重视,这是不可持续的。...今天,在开源网站上找到一个中国人自己开发的元数据建模工具,免费又好用,名字叫 chiner,发音:[kaɪˈnər],支持 Windows,Linux,Mac,而 PowerDesigner 只能在...下载 chiner 用了下,10 分钟就上手了,基本没有学习成本,非常适合中国人使用。后台回复「chiner」获取下载链接。...视图由多个表结合而成,支持多表以及字段的选择,如下图: 视图及来源数据表,如下图: 3 可定制的数据类型及数据域 可扩展的数据类型,并且支持多种数据库方言的适配,如下图: 数据域,用于设置同一具有特定业务含义的数据类型

    1.6K30

    这个 GitHub 热门工具,很意外

    难道中小企业对这一项技术只能望尘莫及? 普通 App 难道就没法分一杯羹,获得运行小程序的能力?数字化时代, 普通 App 最终又将何去何从?...正好,发现了一个在 Github 很热门的前端容器技术 —— FinClip。一个可以任何 APP 都能具备小程序运行能力的前端容器技术。...由于导出的工程文件已经集成了 FinClip SDK ,所以直接拥有小程序的运行能力,后续可在这个 App 上直接上架更多小程序,自建自己的小程序生态。...在这个讲究快速敏捷迭代的时代,企业应该需要考虑对自己的 App 进行瘦身,把新旧功能剥离,以独立生命周期、独立开发测试团队的方式进行开发 – 有用的场景继续深入、无效的尝试即时废弃。...总体技术架构必须基础 App 保持稳定、频繁增删变更业务功能成为可能,同时最大程度降低开发门槛、减少试错成本、实现敏捷迭代。 移动开发的终局一定是走向更开放、更快速、更稳定。

    41340

    这个在线文档工具, 上头了!

    showdoc + runapi 最近, 一个朋友推荐了一个在线的项目文档工具showDoc和RunApi....出于对他人的尊重, 特地使用了一下, 不用不知道, 一用就"上头了", 借这个上头劲赶紧把文章给撸出来....ShowDoc 工具介绍 官网入口 我们看他这个官网, 这个官网就很讲究, 绿色, 要想生活过得去, 我们总要见点绿… 不开玩笑了....经过的使用后发现, 这个确实好用. 稍微介绍下: 对于每种类型的文档(api, 数据字典, 团队技术文档等)都会有模板供你使用. 如果你的文档极具个人风格, 还可以支持自定义模板....修改启动 主要是添加了一个@RestController和一个访问方法test1 令我们访问接口方法的时候, 便可以有返回值 @SpringBootApplication @RestController

    1.8K20

    Python 静态分析Pylint、Pyflakes 与 Mypy ——应该用谁?

    Pylint:你的代码符合 PEP-8风格 PEP-8[1]是 Python 的官方编码风格指导。...我们平时常常说到的: 函数名、变量名使用小写字母和下划线,名使用驼峰命名法 缩进使用4个空格 运算符、赋值符号左右侧都要有空格,冒号右侧有空格左侧没有空格 多行字符串用三对单引号,但是 docstring...通过修改 pylint 的配置文件,可以修改它检查的方式,从而使它遵守其他的编码规范,例如你们团队大部分人是从 Java 转到 Python 的,那么可以强行变量名函数名都变成驼峰命名法。...需要注意的是,由于 Pyflakes 是静态分析的工具,所以对于像'1' + 1这种异常是无法检查出来的。 Mypy:静态类型检查器 Mypy 动态语言 Python 拥有静态类型检查的能力。...如果要对代码做静态类型检查,那么使用 Mypy。

    4.9K10

    这个 bug 更加理解 Spring 单例了

    是风筝,公众号「古时的风筝」,一个兼具深度与广度的程序员鼓励师,一个本打算写诗却写起了代码的田园码农!...其实就是单例 有同学说,你过分了啊,这能不知道为啥?...他用 redis 或数据库中的access_token去调一下服务号接口,看看是不是也有同样的过期问题。 结果一试,redis 中存的是没问题的,可以正常使用。...那彻底排除是定时任务的问题了,问题的症结应该就出在两个地方: 1、在获取 redis 中的access_token的过程; 2、将获取到的 access_token拼接到请求接口 URL 上发生了错误;...这里违反了 Spring 单例模式的一个点,那就是 Spring 单例模式,不适合存储有状态的值,比如这里的 callback就是个有状态的值,它应该随着定时任务的进行,获取到不同的值。

    35410

    惊呆,Oracle的这个坑竟然踩上了

    今天来分享一下这个问题,更多的人避开这个坑。...这个代码之前从来没有出过问题,最近也没有上过线,今天唯一的不同就是文件数据量越来越大,今天比昨天大了几万行。...数据库情况: 看不到有sqlldr命令等待的情况 CPU正常 手工执行上面命令可以成功,但是打印的日志非常多,如下图: 3 原因分析 网上搜这个问题竟然很多,原因有下面三: 3.1 Oracle版本低...-1 : status; } 4.3 文件接收标准输出 可以在sqlldr命令中增加文件参数来接收命令的标准输出,最后采用了这种方式,命令如下: sqlldr test/test123@biz control...,一直以为是Oracle的问题,但是后来研究发现,这个锅真的不能让Oracle来背。

    39740

    2021年还能选择大数据这个行业

    对于互联网行业来讲,人人都应该要学会去抓住机会,并且现如今的话企业对于IT人才的需求是非常高的,那么这对于年轻人来讲显然就成了一个机遇。 所以这篇文章会综合的给大家进行大数据行业的一个分析。...16sucai_P59202C039.JPG 一.人人都可从事大数据行业?...纵观近几年行业薪资统筹的情况,在大数据工作一两年之后,薪资只会随着你的经验你的能力越涨越高,越积越多,月入过万那是最简单最基本的事情了,这个情况在别的行业是很难达到的。 二.大数据行业工作累?...关于这个问题,累,一定很累。但是你需要相信的是付出与回报是成正相关的,并且你越努力你的回报便会越高,从这个点来看,其他很多行业它是无法保证的。...所以 从行业发展前景来说大数据 行业的需求很大,并且只要你有信心,你想从事这个行业,你想学,那么人人都是可以转行 IT的。 三.大数据从业者未来发展会有局限

    48310

    有了这个日期工具日期转化不再烦恼

    人爱恨不已,而有些又记不住,每次遇到都得问度娘。最近在开发过程中亦是如此。 为了自己更好的记忆,方便以后遇到日期类型转化相关开发。...因此,自己作了适当的整理,编写了一个日期工具,包括获得今天日期、昨天日期、明天日期、日期和字符串之间转化等相关转化。希望这个日期工具,也能提高你对日期转化的开发效率。...日期工具:DateTools.java package com.hrg; import java.text.ParseException; import java.text.SimpleDateFormat...; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; /** * 日期工具...当然,代码里面有部分是冗余的,主要是为了方便大家清晰看懂。你看懂理解后,可以根据业务需要进行适当的修改。

    1.1K20

    “开发一个静态 HTML 页面,要价 18000 美元,有错?”

    但为了保持谨慎,上报了 20 个小时,总计 1500 美元。 毕竟这只是一个 HTML 页面而已,也只能收取这么多费用。他们到 25 英里外的卫星办公室去。...当预计的 20 小时到期时,确保向经理发送了另一封电子邮件,他知道确实人一直在公司,但我没有收到我需要的资源。当然,那封电子邮件被无视了。 接下来的星期一,犹豫地开过了这 25 英里。...Michelle 的自动回复称她正在度假,所有询问都应该直接告诉她的经理。她的经理回复说“谁是 Ibrahim?(的名字)”的经理回复说他很抱歉还没有向大家介绍。...花了一个多月的时间来写一个静态 HTML 页面,而现在整个团队都要评价的工作?...事实上,他们所说的关于我做的项目的所有内容只有: 人1:嘿,有人在做这个赞助页面? 人2:是的,认为已经完成了。 人1:太好了,今晚合并吧。 那天晚上回家的时候,意识到自己正面临另一个挑战。

    72720

    利用pandas想提取这个列中的楼层的数据,应该怎么操作?

    大家好,是皮皮。 一、前言 前几天在Python白银交流群【东哥】问了一个Pandas数据处理的问题。问题如下所示:大佬们,利用pandas想提取这个列中的楼层的数据,应该怎么操作?...二、实现过程 这里粉丝的目标应该是去掉暂无数据,然后提取剩下数据中的楼层数据。看需求应该是既要层数也要去掉暂无数据。...目标就只有一个,提取楼层数据就行,可以直接跳过暂无数据这个,因为暂无数据里边是没有数据的,相当于需要剔除。...使用正则表达式提取数字 df['楼层数'] = df['楼层'].str.extract(r'(\d+)') # 过滤并删除不包含数字的行 df = df.dropna(subset=['楼层数']) 经过指导,这个方法顺利地解决了粉丝的问题...三、总结 大家好,是皮皮。这篇文章主要盘点了一个Pandas数据处理的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。

    11010

    “开发一个静态 HTML 页面,要价 18000 美元,有错?”

    但为了保持谨慎,上报了 20 个小时,总计 1500 美元。 毕竟这只是一个 HTML 页面而已,也只能收取这么多费用。他们到 25 英里外的卫星办公室去。...当预计的 20 小时到期时,确保向经理发送了另一封电子邮件,他知道确实人一直在公司,但我没有收到我需要的资源。当然,那封电子邮件被无视了。 接下来的星期一,犹豫地开过了这 25 英里。...Michelle 的自动回复称她正在度假,所有询问都应该直接告诉她的经理。她的经理回复说“谁是 Ibrahim?(的名字)”的经理回复说他很抱歉还没有向大家介绍。...花了一个多月的时间来写一个静态 HTML 页面,而现在整个团队都要评价的工作?...事实上,他们所说的关于我做的项目的所有内容只有: 人1:嘿,有人在做这个赞助页面? 人2:是的,认为已经完成了。 人1:太好了,今晚合并吧。 那天晚上回家的时候,意识到自己正面临另一个挑战。

    72920
    领券