`
limux
  • 浏览: 5765 次
  • 性别: Icon_minigender_1
  • 来自: 潍坊
最近访客 更多访客>>
社区版块
存档分类
最新评论

class instance variable

    博客分类:
  • ruby
阅读更多

  研究merb的源代码时,看到Merb::Config.use,其中定义了@configuration,应该是instance variable,但是use却class method,由此就引出了class instance variable。

  在ruby中,object是class,class也是object,是Class的instance。所以普通的class也就可以象普通的object一样拥有instance variable,称做class instance variable。《The Ruby Programming Language》中有详细介绍。

  class instance variable很象普通的instance variable,但是instance variable与class instance variable的行为很不同。class instance varaible即可以在class method中存取,也可在instance method中存取。同一个class instance variable可以同时在这两种不同类型的方法中存取,并可具有不同的值,就象是两个毫不相干的不同的变量,但是名字完全一样。

 

参考链接:http://railstips.org/2006/11/18/class-and-instance-variables-in-ruby

 

Demo:

class Foo
  @foo = 1

  def foo
     @foo = 2
  end

  def self.say
    puts @foo
  end

  def say
    puts @foo
  end
end

Foo.say  => 1
foo = Foo.new
foo.foo
foo.say  => 2
 
2
1
分享到:
评论

相关推荐

    ios demo,自定义一个类,实例变量和成员变量的实现

    _instanceVariable = instanceVariable; } - (NSString *)instanceVariable { return _instanceVariable; } @end ``` 在这个例子中,我们使用`@synthesize`指令来自动创建`_memberVariable`的setter和getter,而...

    variables:类和实例变量的“变量”对象

    Object#instance_variable_get Object#instance_variable_set 但请注意,这些都共享一个公共前缀 - instance_variable_或class_variable_ 。 这感觉有点,让我们尝试用一些Variable对象来它!安装 gem install ...

    Objective-C头文件导出工具class-dump

    -a show instance variable offsets -A show implementation addresses --arch <arch> choose a specific architecture from a universal binary (ppc, ppc64, i386, x86_64) -C <regex> only display classes ...

    InstanceVar

    在iOS开发中,实例变量(Instance Variable)是类对象中用于存储数据的私有变量,它们通常是类的内部实现细节,对外不可见。本篇内容将深入探讨实例变量如何引发循环引用问题,以及如何解决这一问题,以确保内存管理...

    java api 文档 jdk9

    a - Variable in class java.awt.AWTEventMulticaster A variable in the event chain (listener-a) A - Static variable in class java.awt.PageAttributes.MediaType The MediaType instance for Engineering A, 8...

    Ruby类实例变量、类实例方法和类变量、类方法的区别

    @instance_variable = "instance variable" end def self.class_method @@class_variable end def instance_method @instance_variable end end class ClassB end # 创建实例 a = ClassA.new b = Class...

    class-dump:从Mach-O文件生成Objective-C标头

    类转储 class-dump是一个命令行实用程序,用于检查Mach-O文件的Objective-C段。 它为类,类别和协议生成声明。 这是使用'otool -ov'提供的相同信息,但以普通的Objective-C... -a show instance variable offsets -A

    Python面试内容很多,干货满满

    print(my_instance.class_var) # 输出:I am a class variable. print(my_instance.instance_var) # 输出:I am an instance variable. ``` #### 5. Python自省 Python提供了一些内置函数和模块来帮助进行自省,即...

    javafinal和static总结.docx

    System.out.println("Instance variable: " + INSTANCE_VARIABLE); System.out.println("Static variable: " + STATIC_VARIABLE); System.out.println("Local variable: " + LOCAL_VARIABLE); } } ``` #### 三...

    01Ruby 变量.docx

    3. **实例变量 (Instance variable)**:以 `@` 开头。 4. **类变量 (Class variable)**:以 `@@` 开头。 5. **常量 (Constant)**:由大写字母开头。 接下来,我们将逐一探讨这些变量类型的使用方式和特点。 #### ...

    Python Interview

    print(instance1.class_var) # 输出:This is a class variable print(instance1.instance_var) # 输出:Instance variable for instance1 print(instance2.class_var) # 输出:This is a class variable print...

    Python面向对象编程介绍.docx

    面向对象编程的核心概念主要包括类(Class)、对象(Object)、实例变量(Instance Variable)、方法(Method)以及继承(Inheritance)。 1. 类(Class):类是创建对象的蓝图,它定义了一组属性(数据成员)和...

    深入分析Ruby 变量

    @开头:实例变量(Instance variable)。 @@开头:类变量(Class variable)类变量被共享在整个继承链中 大写字母开头:常数(Constant)。 Ruby 全局变量 全局变量以 $ 开头。未初始化的全局变量的值为 nil,在...

    类变量、全局变量、实例变量, 多态、为什么ruby、ruby编码规范

    puts my_instance.class_variable_get(:@@class_var) # 输出 "Hello, Class Variable!" ``` 二、全局变量 全局变量以`$`前缀标识,它们在整个程序的任何地方都可被访问。全局变量的使用应谨慎,因为它们可能导致...

    09.【继承、super、this、抽象类】.zip

    例如,`this.instanceVariable`表示当前对象的实例变量,而`instanceVariable`可能被解析为局部变量。 抽象类(Abstract Class)是不能实例化的类,它定义了一组接口(即方法的签名),但并不提供具体实现。抽象类...

    Python教程:面向对象.pdf

    属性是类的成员,包括实例变量(Instance Variable)和类变量(Class Variable)。实例变量是与对象绑定的变量,每个对象都有自己独立的一份副本。类变量则是所有对象共享的同一份变量。例如: ```python class ...

    UnikornTube_Server

    public class Example {// Example instance variable :: prefix '_' private int _maVariable; /** * Gets something */ public int GetSomething () { return _maVariable; } /** * Sets Something : ...

    面向对象重点复习

    System.out.println(mc1.instanceVariable); // 输出: 15 System.out.println(mc2.instanceVariable); // 输出: 10 MyClass.classVariable = 25; System.out.println(MyClass.classVariable); // 输出: 25 } }...

    C#命名規范詳細解說

    例如,`localVariable`,`instanceVariable`。局部变量(Local Variable)和成员变量(Member Variable)的命名应清晰明了,反映其用途。 5. **常量命名**:常量(Constant)通常以全大写字母表示,并用下划线分隔...

    ActionScript3.0教程

    var message:String = "instance variable"; // 实例属性 } var myST:StaticTest = new StaticTest(); trace(StaticTest.message); // 输出: static variable trace(myST.message); // 输出: instance ...

Global site tag (gtag.js) - Google Analytics