java定义全局变量的方法_java调用另一个类的变量

java定义全局变量的方法_java调用另一个类的变量“java中全局变量应该放哪儿?”引发的争论1、单独写一个final的类,在里面定义finalstatic的全局变量,在其它程序里包含进来就可以了。2、类中的任何staticpublic的成员变量都是全局共享的。3、JAVA中不应该有所谓全局变量的概念,全局变量严重影响了封装和模块化,所以如果你的程序中需要所谓的全局变量,那一定是你对程序的设计出了问题。4、那JAVA提供FINALSTAT…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

“java中全局变量应该放哪儿? ”引发的争论

1、单独写一个final的类,在里面定义final static的全局变量,在其它程序里包含进来就可以了。

2、类中的任何static public的成员变量都是全局共享的。

3、JAVA中不应该有所谓全局变量的概念,全局变量严重影响了封装和模块化,所以如果你的程序中需要所谓的全局变量,那一定是你对程序的设计出了问题。

4、那JAVA提供FINAL STATIC 干吗用啊,存在即合理,很多情况是需要用到全局变量的。他能减少参数的传递,能避免重复声明。

5、FINAL STATIC应该理解为常量,而不是“全局变量”,它的目的不是为了让你每个类都可以访问,而是独立于具体对象,抽象到类层次的东东。

6、class Global { public static final String APPNAME= “xyz”; // global constant public static String currentUser = “abc”; // global variable … } class WhatEver { … System.out.println(Global.APPNAME); Global.currentUser = “Williams”; }

7、JAVA中不应该出现”全局变量“的概念。以上争论的焦点是:public static final 类型 变量 是否属于所谓的“全局变量”不得而知。它只不过实现了全局的意图。我们要用到该变量时,只需要把该变量所在的类引用进来就可以了。这不正是我们所需要的吗?不过还是要强调一定要真正理解JAVA当初出现的初衷就是为了安全性和跨平台性。 去掉了类似C,C++中的全局变量的概念,就是基于此的。

8、有了全局变量安全性就差了。

9、不用全局变量固然不无道理,但是世事无绝对,看运用,有的时候垃圾也能变成王道!

就象goto一样,他本身没什么错,错在运用者,用的过多过滥当然不对,但是为了避免使用GOTO却用1000行来饶开,难道看1000行代码就一定看的很清晰吗?java的全局变亮也是一样,不能用的太滥,什么东西都往全局上靠图省事自然会出问题,但是过度恐惧不敢用也不可取,该用的场合还是要用的.特别是独体类型,全虚拟机只有一份,数据库连接池对象一般就是独体对象,至于原因,我想不用我多说了吧!

10、如果一个栈内存段就能搞定的事情,为何要用多个堆内存段来实现呢?

11、对于“象goto一样,他本身没什么错,错在运用者,用的过多过滥当然不对,但是为了避免使用GOTO却用1000行来饶开,难道看1000行代码就一定看的很清晰吗?”确实全局变量在某些环境下可能还有其实际的意义。但是在JAVA中,确实没有所谓的全局变量的概念,通过设置一个abstract class or interface,并将许多final or final static field置于其中,并在使用时调用ClassName.xxx or InterfaceName.xxx来模拟全局变量的使用(可以肯定的是,在许多的著作中大师们都已经反复强调了将许多常数放入一个abstract class or interface,并使之成为常数类或常数接口的做法是对此功能的误用,并不鼓励如此使用,有兴趣可以参阅《effective java》——机械工业出版社出版 Joshua Bloch 著),

但首先,final or final static确实不是全局变量的概念,在JAVA中,一切都是对象,在对象中声明的无论是field还是method亦或是property都将归属于某一种抽象或具体类型,否则也不会在调用中使用ClassName.xxx or InterfaceName.xxx这样的形式来加以说明这是这个CLASS的XXX,那是那个INTERFACE的XXX。事实上final代表的是一种常量形式(Constant),而static则代表一种静态观念,常量的概念是为了区别于变量而存在的不变的变量(有些别扭,突然发现自己词语贫乏,HOHO),而静态则是希望区别于某一具体Object而独立存在于某一特定类型的变量(到可以称之为该类型的全局变量,但个人感觉不很确切)。全局变量的概念显然过于宽泛,以至于我们说一个程序甚至是一个系统拥有一个唯一的变量变成可能,但final or static显然不是为其而设计的(当然可以模拟)。其次,阁下提到的有关于“全虚拟机只有一份,数据库连接池对象…”是设计模式中所谓单例模式的实际应用,该模式确实非常像所谓的全局变量的概念,但设计这样单个实例确实是因为在系统的整个生命周期中只需要一份该实例存在的缘故,更多的是突出概念而非实际应用,而全局变量则更多就是为了实际应用而生,这样就会导致许多不成熟的,不加思考的应用加于其上而导致黏糊的像意大利面条一样的代码。所以个人认为,依在下实在低微的学识实在不敢胡乱评说关于全局变量是否有实际意义这样巨大的课题,这样的课题还是留给那些专家去讨论吧。至于如何实际应用全局变量,我看,还是有则去之,无则加冕吧,实在要用偶也么的办法(不过自从使用C++/JAVA开始,全局变量的使用确实降到了一个极低的程度,也许是因为在下的代码写的还是太少的缘故吧,呵呵…)。

12、static 变量可以使用,不要认为程序中出现了static成员或方法就是程序写的不好,用不用静态成员与程序写的好坏没有直接的因果关系,不要钻牛角尖。

13、interface Global { public static final }

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/171738.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • linux下elasticsearch 安装、配置及示例「建议收藏」

    linux下elasticsearch 安装、配置及示例「建议收藏」简介开始学es,我习惯边学边记,总结出现的问题和解决方法。本文是在两台linux虚拟机下,安装了三个节点。本次搭建es同时实践了两种模式——单机模式和分布式模式。条件允许的话,可以在多台机器上配置es节点,如果你机器性能有限,那么可以在一台虚拟机上完成多节点的配置。如图,是本次3个节点的分布。hostnameIPes节点master192.168.137.100

  • Operand should contain 1 column(s)

    Operand should contain 1 column(s)

  • 利用键盘钩子捕捉linux键盘动作,利用键盘钩子捕获Windows键盘动作[通俗易懂]

    利用键盘钩子捕捉linux键盘动作,利用键盘钩子捕获Windows键盘动作[通俗易懂]下载本文示例代码引言  在科研生产中对研制、调试操作的记录是非常有必要而且是有很重要价值的。通过对记录信息的分析,可以在事故发生后准确的分析出事故的起因、操作是否存在失误等许多重要线索。通常需要记录的信息是多种多样的,如环境温度记录、软件运行记录、文件访问记录等等。这里将以键盘信息记录为例来讲述类似的实验信息自动记录的一般实现方法。  由于需要记录当前系统下所有应用程序的键盘录入记录,因此必须采取…

  • linux0.11_linux命令vim什么意思

    linux0.11_linux命令vim什么意思前言所有的UnixLike系统都会内建vi文书编辑器,其他的文书编辑器则不一定会存在。但是目前我们使用比较多的是vim编辑器。vim具有程序编辑的能力,可以主动的以字体颜色辨别语法的

  • CTF misc之流量分析题套路总结[通俗易懂]

    CTF misc之流量分析题套路总结[通俗易懂]1.前言昨天去I春秋刷了几题流量分析题,然后总结了一下流量分析题的做题方法。2.刷题2.1可恶的黑客步骤一、HTTP追踪流先了解进行什么操作可以看到是传了webshell然后进行文件操作套路1:一般是传webshell然后菜刀连接,参数进行base64位加密,先解密参数,了解进行了什么操作一步步解密请求参数了解进行什么操作这个是传webshell里

  • 领域驱动实践总结(基本理论总结与分析V+架构分析与代码设计+具体应用设计分析)

    领域驱动实践总结(基本理论总结与分析V+架构分析与代码设计+具体应用设计分析)领域驱动实践总结一:基本理论总结与分析一、领域驱动设计两大设计:战略设计和战术设计二、理解和分析领域+子域+核心域+通用域+支撑域三、理解和分析界限上下文,定义领域边界四、理解和分析实体和值对象五、理解和分析聚合思想:聚合和聚合根六、理解很分析领域事件来解耦微服务…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号