Understanding Rubys Object Model Chris Pine July 10
Understanding Ruby’s Object Model Chris Pine July 10, 2003
Some Ruby Basics 1234567. class 'hello'. class Fixnum String Chris Pine
Some Ruby Basics 1234567. class 'hello'. class Fixnum String Fixnum. superclass String. superclass Integer Object Chris Pine
Some Ruby Basics 1234567. class 'hello'. class Fixnum String Fixnum. superclass String. superclass Integer Object 'hello'. kind_of? (String) true 1234567. kind_of? (Integer) true 1234567. kind_of? (String) false Chris Pine
A Little Quiz Object. kind_of? (Object) ? Chris Pine
A Little Quiz Object. kind_of? (Object) Object. kind_of? (Class) true ? Chris Pine
A Little Quiz Object. kind_of? (Object) Object. kind_of? (Class) Class. kind_of? (Object) true ? Chris Pine
A Little Quiz Object. kind_of? (Object) Object. kind_of? (Class) Class. kind_of? (Object) Class. kind_of? (Class) true ? Chris Pine
A Little Quiz Object. kind_of? (Object) Object. kind_of? (Class) Class. kind_of? (Object) Class. kind_of? (Class) 'hey'. kind_of? (String) true ? Chris Pine
A Little Quiz Object. kind_of? (Object) Object. kind_of? (Class) Class. kind_of? (Object) Class. kind_of? (Class) 'hey'. kind_of? (String) String. kind_of? (Class) true true ? Chris Pine
A Little Quiz Object. kind_of? (Object) Object. kind_of? (Class) Class. kind_of? (Object) Class. kind_of? (Class) 'hey'. kind_of? (String) String. kind_of? (Class) Fixnum. kind_of? (Integer) true true ? Chris Pine
A Little Quiz Object. kind_of? (Object) Object. kind_of? (Class) Class. kind_of? (Object) Class. kind_of? (Class) 'hey'. kind_of? (String) String. kind_of? (Class) Fixnum. kind_of? (Integer) true true false Chris Pine
Wrong Mental Picture objects Subclasses Classes Object class Chris Pine
What We Know… a. Class. superclass… Object. superclass nil Chris Pine
What We Know… a. Class. superclass… Object. superclass nil an. Object. class… Class. class Class Chris Pine
What We Know… a. Class. superclass… Object. superclass nil an. Object. class… Class. class Class a. Class. class an. Object. class Chris Pine
Superclass Relationships Class Module Object String Integer Fixnum Chris Pine
Class Relationships Class Module Object String Integer 'hi' Fixnum 5 Chris Pine
Relationships an. Object. class a. Class. superclass * an. Object. kind_of? Chris Pine
Right Mental Picture Class Module Object String Integer 'hi' Fixnum 5 Chris Pine
Modules Object Proxy: Foo. Mod foo module Foo. Mod def foo 'BIGFOO!' end String reverse split … class String include Foo. Mod end Chris Pine
Singleton Classes (objects) String reverse split … me = 'Chris'(S) wife 'Chris' def me. wife 'Katy' end Chris Pine
Singleton Classes (classes) poly = Polygon. new poly. area Polygon. largest 12. 823 poly tri = Triangle. new tri. area tri. hypotenuse Triangle. largest 9. 816 7. 244 tri Chris Pine
Singleton Classes (classes) Class ? new Polygon(S) ? ? ? largest Polygon Triangle area hypotenuse Chris Pine
Obj(S) Mod(S) Class(S) Object Module Class new Poly(S) Tri(S) largest Polygon Triangle area hypotenuse Chris Pine
- Slides: 26