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