java是没有全局变量_为什么java没有全局变量

看一个python写的java,居然写出全局变量了。

如果熟练熟悉py oop也能够知道,类里面是没有全局变量的。

类里面的变量就分三种 类属性 实例属性 局部变量  ,类属性 也可以叫静态属性 静态变量 ,实例属性也可以成员变量都差不多的意思。但不存在什么全局变量。

为什么有的语言有全局变量?js  py php都有。

在py中如果使用面向过程编程的时候,多个函数操作一个变量,除非频繁的在多个函数中传参和return。否则就需要用到全局变量了,因为函数是在模块级别的命名空间下,那么函数之外写变量只能是模块下面写了,模块之下的变量就叫全局变量。

如果是oop编程,方法的命名空间并不是在模块下,而是在类名下,所以只需要把那个本来在面向过程的时候需要写成全局变量的东西,写成实例或者类属性即可。这样在多个方法中都可以访问这个变量。因为oop把命名空间下沉了一级,模块 - 类 -方法 三级,不同于面向过程时候的 模块 -函数 两级。

java作为强制oop的语言,一切以类为命名空间,当然就没必要搞个全局变量了。

这和我之前所印证的一样,写py时候不要使用全局变量尤其是全局可变变量,和到处声明gloabl,真的是蛋疼,一点oop的意识都没。使用oop完全可以彻底消除全局变量。一直安逸于十几年如一日重复写面向过程的low逼代码不是一件好事。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值