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 }

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • postman安装包怎么安装_数据库安装教程

    postman安装包怎么安装_数据库安装教程一、Postman背景介绍用户在开发或者调试网络程序或者是网页B/S模式的程序的时候是需要一些方法来跟踪网页请求的,用户可以使用一些网络的监视工具比如著名的Firebug等网页调试工具。今天给大家介绍的这款网页调试工具不仅可以调试简单的css、html、脚本等简单的网页基本信息,它还可以发送几乎所有类型的HTTP请求!Postman在发送网络HTTP请求方面可以说是Chrome插件类产品中的代表产品之一。二、Postman的操作环境postman适用于不同的操作系统,PostmanMac、Windo

    2022年9月18日
    2
  • SQL级联删除_级联删除用例

    SQL级联删除_级联删除用例SQL级联删除——删除主表同时删除从表——同时删除具有主外键关系的表(转载)createtablea(idvarchar(20)primarykey,passwordvarchar(20)notnull)createtableb(idintidentity(1,1)primarykey,namevarchar(50)notnull,userIdvarchar(20),foreignkey(userId)referencesa(id)

    2022年9月27日
    2
  • Lena图像原图及由来[通俗易懂]

    Lena图像原图及由来[通俗易懂]莱娜图在数字图像处理学习与研究中颇为知名,常被用作数字图像处理各种实验的例图。

    2022年6月19日
    36
  • MODIS数据说明

    MODIS数据说明MODIS目前主要存在于两颗卫星上:TERRA和AQUA。TERRA卫星每日地方时上午10:30时过境,因此也把它称作地球观测第一颗上午星(EOS-AM1)。AQUA每日地方时下午过境,因此称作地球观测第一颗下午星(EOS-PM1)。两颗星相互配合,每1-2天可重复观测整个地球表面,得到36个波段(表1)的观测得到,这些数据广泛用于全球陆地、海洋和低层大气内的动态变化过程研究。MODIS获

    2022年5月7日
    89
  • 简单的批处理命令_bat批处理执行cmd命令

    简单的批处理命令_bat批处理执行cmd命令批处理命令简单教程转载来源:https://blog.csdn.net/Joker_N/article/details/89838719文章目录批处理命令简单教程一、常用命令简介1、echo命令2、rem命令3、pause命令4、call命令5、start命令6、goto命令7、set命令二、常用符号简介1、回显屏蔽@2、重定向1>;与>>3、重定向2<4、管道符号|5、转义符^6、逻辑命令符三、命令释义1、文件夹管理2、文件管理3、网络命令4、系统管理四

    2022年8月22日
    6
  • 运维面试官喜欢问的问题是_运维是什么意思

    运维面试官喜欢问的问题是_运维是什么意思你最大的缺点是什么?行为问题(behaviouralquestion),这类问题目的是看性格是否合适公司文化。主要考察:①你是否真心想做这个工作;②你性格与企业文化是否相符。所有答案都应该围绕这两点组织,即每个经历都应回归到你通过这个经历学到什么该职位所需关键技巧,这些经历为何让你想做这个工作,和该经历体现出你什么样的个人风格。你最大的缺点是什么:①避免避重就轻,谈一个算不得缺点的缺点,这…

    2025年8月27日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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