very basic question - writing instance method

If we are calling an instance method on particular instance of an object as: @obj1.perform_sanity_check(@obj2)

Will the instance method perform_sanity_check have access to @obj1 attributes?

How do I / Do I need to pass this @obj1 to perform_sanity_check?

If we are calling an instance method on particular instance of an object as: @obj1.perform_sanity_check(@obj2)

Will the instance method perform_sanity_check have access to @obj1 attributes?

Yes.

Fred

Will the instance method perform_sanity_check have access to @obj1 attributes?

yes, with   self.attribute

In object-oriented programming and your example, @obj1 is not being "passed" to perform_sanity_check, it is the "receiver object," the object being "asked" to execute its perform_sanity_check method. In a way, you are sending a message to the object @obj, requesting that it execute one of its methods.

Does @obj1 have access to @obj1's attributes? That depends on the context. If @obj1.perform_sanity_check appears in the implementation of one of @obj1's instance methods, inside the @obj1's class definition, then @obj1 can access the instance variables using self.instance_variable or @instance_variable. Otherwise, the instance variables aren't directly accessible (Ruby encapsules object impelementation). They may be accessible through accessor methods, methods that may be defined in @obj1's class definition provided to (indirectly) access them.

See: "The Ruby Programming Language" by Flanagan & Matsumoto, Chapter 7: Classes and Modules.

In object-oriented programming and your example, @obj1 is not being "passed" to perform_sanity_check, it is the "receiver object," the object being "asked" to execute its perform_sanity_check method. In a way, you are sending a message to the object @obj, requesting that it execute one of its methods.

Does @obj1 have access to @obj1's attributes? That depends on the context. If @obj1.perform_sanity_check appears in the implementation of one of @obj1's instance methods, inside the @obj1's class definition, then @obj1 can access the instance variables using self.instance_variable or @instance_variable. Otherwise, the instance variables aren't directly accessible (Ruby encapsules object impelementation). They may be accessible through accessor methods, methods that may be defined in @obj1's class definition provided to (indirectly) access them.

See: "The Ruby Programming Language" by Flanagan & Matsumoto, Chapter 7: Classes and Modules.