how params (without @) works?

I am newb. I feel confused about how params works.

I understand @params is an attribute of CLASS, but what is params? A
named parameter? Because I thought instance attributes always begin
with "@”, so params/request/flash/etc looks like a local variable.

thanks in advance
Xiahong

params, request, etc are just instance methods that return hashes.

for example, flash'es implementation (action_controller/flash.rb):

       def flash #:doc:
          unless defined? @_flash
            @_flash = session["flash"] ||= FlashHash.new
            @_flash.sweep
          end

          @_flash
        end

flash is the instance method of class ActionController::Flash. but our application controller is inherited from ActionController::Base, why can we use flash in our application controller ?

to be more concrete, i guess the code has the following form:

Class ActionController{
Class Flash
def flash
end

end

Class Base
# can we call instance methods of Flash here??
end
end

thanks,
xiahong