Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
difference between class and object methods
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  5 messages - Collapse all  -  Translate all to Translated (View all originals)
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Sagy Drucker  
View profile  
 More options Jan 31, 7:29 am
Newsgroups: comp.lang.ruby
From: Sagy Drucker <sagysr...@gmail.com>
Date: Tue, 31 Jan 2012 04:29:00 -0800 (PST)
Subject: difference between class and object methods
hello
am i correct when i compare to java, and say:
object methods in ruby are equivalent object methods in java
and class methods in ruby are equivalent STATIC functions in java?

also,
class variables in ruby are equivalent to static variables in java?

thanks...
sagy... ( a very new ruby programmer )


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Robert Klemme  
View profile  
 More options Jan 31, 3:21 pm
Newsgroups: comp.lang.ruby
From: Robert Klemme <shortcut...@googlemail.com>
Date: Tue, 31 Jan 2012 21:21:26 +0100
Local: Tues, Jan 31 2012 3:21 pm
Subject: Re: difference between class and object methods
On 31.01.2012 13:29, Sagy Drucker wrote:

> am i correct when i compare to java, and say:
> object methods in ruby are equivalent object methods in java
> and class methods in ruby are equivalent STATIC functions in java?

> also,
> class variables in ruby are equivalent to static variables in java?

Yep, that's mostly correct.  But you should rather not bother to use
class variables (those prefixed with @@) but instead should only use
instance variables of a class, e.g.

class X
   def self.a_class_method
     @@do_not_use_class_variables = 1
     @but_use_class_instance_variables = 2
   end
end

Reason is that class variables have weird scoping rules which can
produce strange effects.

Kind regards

        robert

--
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Rodrigo Kochenburger  
View profile  
 More options Feb 1, 10:41 am
Newsgroups: comp.lang.ruby
From: Rodrigo Kochenburger <div...@gmail.com>
Date: Wed, 1 Feb 2012 07:41:27 -0800 (PST)
Local: Wed, Feb 1 2012 10:41 am
Subject: Re: difference between class and object methods
I'm not sure I'm entirely sure about this but I think comparing class level methods/variables to static methods is wrong. Please, correct me if I'm wrong.

Class methods are similar to static functions in java in terms of both being methods defined in what, conceptually, is a class. It is not really a static method because the interpreter will still do a dynamic dispatching of the method because ruby classes are still objects, instances of the class Class.

Class variables are variables that lives on the Class object and it is also accessible from all the instances and subclasses. If you change the value of the variable in a subclass, it will change the original value, affecting all classes and objects associated.

There is also the concept of class instance variable, which is a instance variable that resides in the singleton instance of the class.

More about this here: http://railstips.org/blog/archives/2006/11/18/class-and-instance-vari...


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Danny Woods  
View profile  
 More options Feb 2, 4:47 pm
Newsgroups: comp.lang.ruby
From: Danny Woods <dannywo...@yahoo.co.uk>
Date: Thu, 02 Feb 2012 21:47:10 +0000
Local: Thurs, Feb 2 2012 4:47 pm
Subject: Re: difference between class and object methods

Sagy Drucker <sagysr...@gmail.com> writes:
> hello
> am i correct when i compare to java, and say:
> object methods in ruby are equivalent object methods in java
> and class methods in ruby are equivalent STATIC functions in java?

Instance methods in Ruby can be considered semantically equivalent to
instance methods in Java.

Ruby's class methods are quite different.  In Ruby, classes are
themselves objects that are available at runtime (yes, it's somewhat
circular), and so can have their own methods and variables.  Classes are
instances of the class Class (e.g. String.class == Class; this ties up at
the end, where Class.class == Class).

Java's static methods and variables are not class methods in the same
sense.  In Java, you cannot refer to 'super' in a static method, as
there is no 'this' (q.v. self, the current object; classes aren't objects in
Java.  In a Ruby class method, 'self', refers to the class object).
Since there is no this/self, static methods in Java cannot be overridden in
subclasses (although they can be replaced by a static method with the
same signature).  Being associated with a real object (the class), Ruby
class methods can be thought of as instance methods; they're just
methods on the class, not an individual instance of it.

Hope that helps.

Cheers,
Danny


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Alec Ross  
View profile  
 More options Feb 3, 6:51 am
Newsgroups: comp.lang.ruby
From: Alec Ross <a...@arlross.demon.co.uk>
Date: Fri, 3 Feb 2012 11:51:38 +0000
Local: Fri, Feb 3 2012 6:51 am
Subject: Re: difference between class and object methods
In message <m3pqdwaowx....@mirror.lair>, Danny Woods
<dannywo...@yahoo.co.uk> writes

But of course in there is an established terminology for "class methods"
and "static methods" (see, e.g.:

  http://en.wikipedia.org/wiki/Class_method#Class_methods

), where, where, as it states there that "class methods are synonymous
with static methods" in Java and C++.  And indeed also in C#, see. e.g.:

  http://msdn.microsoft.com/en-us/library/aa645766%28v=vs.71%29.aspx ,

See also the comments on that Wikipedia entry in respect of Ruby in this
regard.

>In Java, you cannot refer to 'super' in a static method, as
>there is no 'this' (q.v. self, the current object; classes aren't objects in
>Java.  In a Ruby class method, 'self', refers to the class object).
>Since there is no this/self, static methods in Java cannot be overridden in
>subclasses (although they can be replaced by a static method with the
>same signature).  Being associated with a real object (the class), Ruby
>class methods can be thought of as instance methods; they're just
>methods on the class, not an individual instance of it.

>Hope that helps.

>Cheers,
>Danny

HTH,

Alec
--
Alec Ross


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages
« Back to Discussions « Newer topic     Older topic »