Tworzenie zaawansowanych aplikacji w środowisku ios Wykład 2 Objective-C
Agenda Object-Oriented Programming Defining Classes Working with Objects Demo Summary
Object-Oriented Programming
Object-Oriented Programming
Object-Oriented Programming - Inheritance Car Vechicle
Object-Oriented Programming - Inheritance NSString NSMutableString NSObject UIResponder UIView UIControl UIButton
Defining Classes - Interface @interface Person : NSObject @end
Defining Classes - Interface @interface Person : NSObject @property NSString *firstname; @property NSString *lastname; @end
Defining Classes - Property Attributes @interface Person : NSObject @property (readonly) NSString *firstname; @property (readonly) NSString *lastname; @end
Defining Classes - Method Declarations - (void)printname;
Defining Classes - Method With Parameters - (void)printnamewith:(nsstring*)name;
Defining Classes - Method With Parameters - (void)printnamewith:(nsstring*)name { } NSLog(@ Person name is: %@, name);
Defining Classes - Class files Person.h @interface Person : NSObject @property NSString *firstname; @property NSString *lastname; - (void)printname; - (void)printnamewith:(nsstring*)name; @end Person.m #import Person.h @implementation Person - (void)printname { NSLog(@ Person name is: %@, self.firstname); } @end
Defining Classes - Class Factory Methods Person.h @interface Person : NSObject @property NSString *firstname; @property NSString *lastname; - (void)printname; - (void)printnamewith:(nsstring*)name; + (void)printfirstname:(nsstring*)fname andlastname:(nsstring*)lname; @end Person.m + (void)printfirstname:(nsstring*)fname andlastname:(nsstring*)lname; { NSLog(@ Person with first name: %@ and last name: %@, fname, lname); }
Working with Objects - initialization Person *newperson = [[Person alloc] init]; Person *newperson = [Person new];
Working with Objects - Send and Receive Messages Person *newperson = [Person new]; [newperson printnamewith:@ Lisa ];
Working with Objects - Send and Receive Messages #import Person.h [Person printfirstname:@ Lisa andlastname:@ Simpson ];
Working with Objects - Send and Receive Messages 1 Current Execution Point [newperson printnamewith:@ Lisa ]; Person implementation @implementation Person 2 - (void)printnamewith:(nsstring*)name { d NSLog(@ Person name is: %@, name); } @end
Working with Objects - Objects as parameters - (void)printname:(person *)person; - (void)printname:(person *)person { NSLog(@ Person name is: %@, person.firstname); }
Working with Objects - return values - (Person*)createPersonWithName:(NSString *)name; - (Person*)createPersonWithName:(NSString *)name { Person *newperson = [Person new]; newperson.firstname = name; return newperson; }
Working with Objects - send messages to themselves @ implementation Person - (void)sayhello { [self printnamewith:@ Lisa ] } - (void)printnamewith:(nsstring *)name { NSLog(@ Person name is: %@, name); } @end
Working with Objects - Send and Receive Messages 1 Current Execution Point [newperson sayhello]; 3 Person implementation @implementation Person - (void)sayhello { [self printnamewith:@ Lisa ]; } d 2 - (void)printnamewith:(nsstring*)name { NSLog(@ Person name is: %@, name); } @end
DEMO
Summary type name parm name - (void)printnamewith:(nsstring*)name; return value type parm type