如何从另一个文件中的外部类访问变量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从另一个文件中的外部类访问变量相关的知识,希望对你有一定的参考价值。

我的文件结构如下:

Main/
Games/ 
   roulette.rb
casino.rb
wallet.rb
player.rb

我有一个钱包类,在课堂上持有货币价值。

class Wallet
    attr_accessor :money
    def initialize
        @money = 0
    end
end

然后我有一个继承自Wallet类的玩家类

class Player < Wallet

    attr_accessor :name
    def initialize
        super()
        @name = nil
        get_user_info
    end

然后,我有一个继承自Player的Casino类

class Casino < Player
    def initialize
        binding.pry
        puts @money, @name
    end

我还使用require_relative来读取两个文件,这些文件可以让我访问它们的全局变量@money, @name

如果我在roulette.rb文件中,这里是我写的代码,看它是否有值。

require_relative '../wallet.rb'

class Roulette
    def initialize
        puts @wallet
    end
end

我将如何在赌场课程中访问这些变量?谢谢您的帮助。

答案

那些不是全局变量。它们被称为“实例变量”,要访问它们,您需要创建赌场和玩家的实例。看起来像这样。

player = Player.new
player.money # => 0
player.money += 10
player.money # => 10

在你的Casino类中,你不会调用父初始化器(我认为这是一个简单的疏忽),所以它不会初始化@name@money

轮盘赌并没有做任何事情来获得钱包。所以它保持默认值为零。

以上是关于如何从另一个文件中的外部类访问变量的主要内容,如果未能解决你的问题,请参考以下文章

访问从另一个类调用的函数中的变量

如何从另一个类(java)访问主类的变量?

如何在c#中访问内部类中的外部类的变量[重复]

UIImageView 范围。从另一个类访问

如何从另一个片段访问片段对象

如何从另一个类访问函数?