My Blog List

Friday, October 22, 2010

Reviewing Concepts: Identify Time Portals

Las Pilitas Time Portal
I’m finding it really useful to have worked my way down to this book, which lays out one simple concept after another. It helps me to focus on one thought at a time and how oop is different than being a structured programmer. I wonder what it will be like to go back to those other two books I used during the summer, with their much more complex examples, when I’m done with this one. It sure is tempting to jump ahead in time and find out! 

One thing I’ve found challenging learning Objective-C is knowing that I’m doing things that I’ll be unlearning later on. In this example, I know that naming each class as a particular Time Portal isn’t as cleanly object oriented as I’ll be later on. I wouldn’t setup a record in a database schema like this. Or even in an old-fashioned file-management system. These are really instances of the same class.

Now, when I say ‘instances of the same class’ am I thinking right? There’s where a background using database methodology sometimes trips me up. Like when I catch myself thinking than an object is a variable or a class is a record. They aren’t.

Come back to this later and see if I had this ‘instance’ business right or not.


……..
[Session started at 2010-10-20 09:27:32 -0700.]
GNU gdb 6.3.50-20050815 (Apple version gdb-1469) (Wed May  5 04:36:56 UTC 2010)
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "x86_64-apple-darwin".tty /dev/ttys001
Loading program into debugger…
Program loaded.
run
[Switching to process 333]
Running…
Located Portal at LasPilitasSLO.
Located Portal at MillbraeBARTStation.

Debugger stopped.
Program exited with status value:0.
 ...

#import <stdio.h>
#import <Foundation/NSObject.h>

// GUI NOTE It's SHIFT Command/Apple F to do a find & replace in XCode
//       Been trying to find global find & replace for awhile now!
//       Regular appleF just highlights all the occurances in the piece of code

// Locate and Identify Time Portals for Portal Pilots Service

// Based on ideas from Page 112 of Virtual Quickstart Guide Objective-C (Holzner)
// Multiple Object Types and use of 'id'type
//
// Create objects of two different class types
//    Place them in the same variable of type id

// NOTE ORDER of *multiple* INTERFACE & METHOD sections
//        I write the interface for one class then it's methods
//      I repeat this structure for the other class
//  

@interface LasPilitasSLO:NSObject
-(void) print;
@end

//METHODS for LasPilitasSLO

@implementation LasPilitasSLO
-(void) print
{
    printf("Located Portal at LasPilitasSLO.\n");
}

@end


@interface MillbraeBARTStation:NSObject
-(void) print;
@end

//METHODS for MillbraeBARTStation
@implementation MillbraeBARTStation
-(void) print
{
    printf("Located Portal at MillbraeBARTStation.\n");
}

@end

int main (void) {
    LasPilitasSLO *c1 = [LasPilitasSLO new];
    MillbraeBARTStation *c2 = [MillbraeBARTStation new];
    // Remember
    // Here I am declaring 'container' to be of type id
    id container;
   
    container = c1;
    [container print];
   
    container = c2;
    [container print];
   
     return 0;
}

No comments:

Post a Comment