aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--main.m92
1 files changed, 92 insertions, 0 deletions
diff --git a/main.m b/main.m
index c5bf125..0ee0fc5 100644
--- a/main.m
+++ b/main.m
@@ -3,20 +3,112 @@
#include <stdio.h>
@interface Hello : NSObject
++ (instancetype)new;
- (void)sayHello;
@end
@implementation Hello
++ (instancetype)new {
+ return [[self alloc] init];
+}
+
- (void)sayHello {
printf("Hello from Objective-C!\n");
}
@end
+@interface ExtendedHello: Hello
+- (void)sayHello;
+- (void)baldNiko;
+@end
+
+@implementation ExtendedHello
+
+- (void)baldNiko {
+ printf("67 67 bald niko 67\n");
+}
+
+- (void)sayHello {
+ [super sayHello];
+ [self baldNiko];
+}
+
+@end
+
+@interface DoubleExtendedHello: ExtendedHello
+- (void)baldNiko;
+@end
+
+@implementation DoubleExtendedHello
+
+- (void)baldNiko {
+ printf("bald niko with CHEESE !!!\n");
+}
+
+@end
+
+@interface Player : NSObject {
+ int x;
+ int y;
+ NSString *name;
+}
+
+- (instancetype)init;
+- (void)setX:(int)x;
+- (void)setY:(int)y;
+- (void)setName:(NSString *)name;
+- (void)sayHi;
+@end
+
+@implementation Player
+
+- (instancetype)init {
+ self = [super init];
+ if (self) {
+ x = 0;
+ y = 0;
+ name = @"Player";
+ }
+
+ return self;
+}
+
+- (void)setX:(int)val {
+ x = val;
+}
+
+- (void)setY:(int)val {
+ y = val;
+}
+
+- (void)setName:(NSString *)val {
+ name = val;
+}
+
+- (void)sayHi {
+ printf("Hello, I'm %s, and I am at X: %d, Y: %d!\n", [name UTF8String], x, y);
+}
+
+@end
+
int main(void) {
Hello *hello = [Hello new];
[hello sayHello];
+ NSString *string = @"Test\n";
+ printf([string UTF8String]);
+
+ ExtendedHello *ehello = [ExtendedHello new];
+ [ehello sayHello];
+
+ DoubleExtendedHello *dehello = [DoubleExtendedHello new];
+ [dehello sayHello];
+
+ Player *player = [Player new];
+ [player setName:@"John Hackclub"];
+ [player sayHi];
+
return 0;
}