Ruby Static Members - GeeksforGeeks

06 Dec, 2019
In Programming, static keywords are primarily used for memory management. The static keyword is used to share the same method or variable of a class across the objects of that class.
There are various members of a class in Ruby. Once an object is created in Ruby, the methods and variables for that object are within the object of that class. Methods may be public, private or protected, but there is no concept of a static method or variable in Ruby. Ruby doesn’t have a static keyword that denotes that a particular method belongs to the class level. However static variable can be implemented in ruby using class variable and a static method can be implemented in ruby using a class variable in one of the methods of that class.
In Ruby, there are two implementations for the static keyword:
Static Variable
Static Method
Static Variable: A Class can have variables that are common to all instances of the class. Such variables are called static variables.A static variable is implemented in ruby using class variable. When a variable is declared as static, space for it gets allocated for the lifetime of the program. The name of the class variable always begins with the @@ symbol.Example :
# Ruby program to demonstrate Static Variable   class Geeks      # class variable    @@geek_count = 0      def initialize        @@geek_count += 1        puts "Number of Geeks = #{@@geek_count}"    endend  # creating objects of class Geeks g1 = Geeks.newg2 = Geeks.newg3 = Geeks.newg4 = Geeks.new
Output:
Number of Geeks = 1
Number of Geeks = 2
Number of Geeks = 3
Number of Geeks = 4
In the above program, the Geeks class has a class variable geek_count. This geek_count variable can be shared among all the objects of class Geeks. the static variables are shared by the objects
Static Method: A Class can have a method that is common to all instances of the class. Such methods are called static methods.Static methods can be implemented in ruby using class variables in the methods of that class.Example :
# Ruby program to demonstrate Static Method  class Geeks          #class method    @@geek_count = 0      # defining instance method     def incrementGeek        @@geek_count += 1    end    # defining class method    def self.getCount        return @@geek_count    endend  # creating objects of class Geeksg1 = Geeks.new# calling instance methodg1.incrementGeek()  g2 = Geeks.new# calling instance methodg2.incrementGeek()  g3 = Geeks.new# calling instance methodg3.incrementGeek()  g4 = Geeks.new# calling instance methodg4.incrementGeek()  # calling class methodputs "Total Number of Geeks = #{Geeks.getCount()}"
Output:
Total Number of Geeks = 4
In the above program, incrementGeek() method is the static method of the class Geeks which can be shared among all the objects of class Geeks. Static member functions are allowed to access only the static data members or other static member functions, they can not access the non-static data members or member functions.
Picked
Ruby-Basics
Ruby-OOP
Ruby
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Include v/s Extend in Ruby
Global Variable in Ruby
Ruby | Hash delete() function
Ruby | Enumerator each_with_index function
Ruby | Case Statement
Ruby | Array select() function
Ruby | Data Types
Ruby | Numeric round() function
Ruby For Beginners
Ruby | Decision Making (if, if-else, if-else-if, ternary) | Set - 1