Ruby 全局变量,实例变量,类变量
class Computer
$manufacturer = "Mango Computer, Inc." # “$" 是全局变量关键字
@@num_of_instances = 0 # ”@@“是类变量的关键字,类变量可以作用于所有的实例对象,可以用来计算实例变量的数目
def initialize(username, password) #username 为本地变量
@username = username # "@" 关键字表示实例变量
@password = password
@@num_of_instances += 1
end
def current_user
@username
end
def self.display_total_instance #类方法
@@num_of_instances
end
end
# Make a new Computer instance:
hal = Computer.new("Dave", 12345)
col = Computer.new("Hen", 23435)
puts "Current user: #{hal.current_user}"
puts "Manufacturer: #{$manufacturer}"
puts "Instances: #{Computer.display_total_instance}"
============》
Current user: Dave
Manufacturer: Mango Computer, Inc.
Instances: 2
注:全局变量还有一种创建方式,即在所有的类和方法外面创建。但是全局变量在哪都可以直接访问,不安全,所以尽量少使用。
其它变量需要通过方法来访问。
Ruby 全局变量,实例变量,类变量的更多相关文章
- ruby中实例变量、类变量等等的区别和联系
ruby的变量有局部变量,全局变量,实例变量,类变量,常量. 1.局部变量 局部变量以一个小写字母开头或下划线开头 局部变量有局部作用域限制(比如一个block内),它的作用域起始于声明处,结束于该声 ...
- 3.ruby语法基础,全部变量,实例变量,类变量,局部变量的使用和注意的要点
1.ruby的全局变量的概念和Java的全局变量的概念不同, ruby的全局变量是以$符号开头的,如果给全局变量的初始化值为nil会出现警告. 赋值给全局变量,这是ruby不推荐的,这样会使程序变得很 ...
- ruby的实例变量
class Box def initialize(w,h) @width,@height=w,h end def getArea @height*@width end end class BigBox ...
- java入门---变量类型&类变量&局部变量&实例变量&静态变量
在Java语言中,所有的变量在使用前必须声明.声明变量的基本格式如下: type identifier [ = value][, identifier [= value] ...] ; ...
- python中的实例方法、静态方法、类方法、类变量和实例变量
class MyTest: myname = 'peter' # add a instance attribute def __init__(self, name): self.n ...
- python——实例方法、静态方法、类方法、类变量和实例变量浅析
概述: 实例方法就是类的实例能够使用的方法. 静态方法是一种普通函数,就位于类定义的命名空间中,它不会对任何实例类型进行操作.使用装饰器@staticmethod定义静态方法.类对象和实例都可调用静态 ...
- ruby中的类实例变量和实例的实例变量
ruby中有实例变量这个语法,有点类似java的对象的属性,但是ruby中类也有实力变量, class Person @name = 'hello' def initialize(name,age) ...
- Java学习日记基础(五)——类、对象之this、静态变量(类变量)、静态方法(类方法)、四大特征
this 赵本山问奥尼尔:“我的爸爸的爸爸是谁?” 奥尼尔:“不知道” 赵本山:“你傻啊,是我爷爷” 奥尼尔回去问科比:“我的爸爸的爸爸是谁?” 科比:“不知道” 奥尼尔:”你傻啊,是赵本山的爷爷“ ...
- Java中类变量和实例变量的初始化
1. 类变量和实例变量 类变量即类成员变量中的静态变量,它们可以通过类名来直接访问. 实例变量是类成员变量中的非静态变量,只有在实例化对象之后通过对象来访问. 2. 空间分配的时间不同 类变量是在类加 ...
- Python类三种方法,函数传参,类与实例变量(一)
1 Python的函数传递: 首先所有的变量都可以理解为内存中一个对象的'引用' a = 1 def func(a): a = 2 func(a) print(a) # 1 a = 1 def fun ...
随机推荐
- Mysql 性能优化20个原则(3)
12. Prepared Statements Prepared Statements很像存储过程,是一种运行在后台的SQL语句集合,我们可以从使用 prepared statements 获得很多好 ...
- validation set以及cross validation的常见做法
如果给定的样本充足,进行模型选择的一种简单方法是随机地将数据集切分成三部分,分为训练集(training set).验证集(validation set)和测试集(testing set).训练集用来 ...
- 生活娱乐 WIFI机器人(某机器发烧友自己动手做一台)
某机器发烧友自己动手做一台WIFI机器人,以下是这位发烧友的自述!让我们一起来分享他的劳动成果-- 在经历了十多天的疯狂淘宝.组装.调试.拆卸.再组装.再调试的过程后,俺的Wifi Robot终于于2 ...
- atitit. hb 原生sql跨数据库解决原理 获得hb 数据库类型执行期获得Dialect
atitit. hb 原生sql跨数据库解决原理 获得hb 数据库类型执行期获得Dialect #-----原理 Hibernate 执行期获得Dialect 2010-07-28 12:59 ...
- HDU 2669 Romantic(扩展欧几里德)
题目链接:pid=2669">http://acm.hdu.edu.cn/showproblem.php?pid=2669 Problem Description The Sky is ...
- 基于bootstrap_网站汇总页面
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 软件版本号(BETA、RC、ALPHA、Release、GA等)
Alpha: Alpha是内部测试版,一般不向外部发布,会有很多Bug.除非你也是测试人员,否则不建议使用.是希腊字母的第一位,表示最初级的版本,alpha 就是α,beta 就是β , ...
- Ajax的简单实现(Json)
之前写的是一般的Ajax if (request.status === 200) { document.getElementById("createResult").innerHT ...
- POJ 2586 Y2K Accounting Bug(枚举大水题)
Y2K Accounting Bug Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10674 Accepted: 53 ...
- 用Qt编写的计算文件MD5值的Demo
Dialog.ui <?xml version="1.0" encoding="UTF-8"?> <ui version="4.0& ...