Objective-C 面向对象一
来源:互联网 发布:淘宝介入不小心撤销了 编辑:程序博客网 时间:2024/05/17 02:41
建一个类Student类:
<Student.h>文件 定义
@interface Student : NSObject{ @public NSString *_name; // @protected NSInteger _age; // @private NSString *_hobby; NSString *_address; /* 属性的作用域 @public 公开的任何类的方法都可以访问 @protrcted 受保护的,只有类本身和子类可以访问 @private 私有的,只有类本身才能访问 */}//方法的声明/* 减号(—) 表明了该方法是实例方法。类方法则用加号(+)。 (书P23)括号中void 表示无返回值类型,其它类型 */-(void)sayHello; //实例方法-(NSString *)eatLunch; //实例方法+(NSString *)playGame; //类方法@end
<Student.m>文件 实现
#import "Student.h"//在 @implementation 与 @end 中实现接口文件声明的方法@implementation Student-(void)sayHello{ NSLog(@"Hello everybody!!!"); }-(NSString *)eatLunch{ if (_age < 18) { return [NSString stringWithFormat:@"%@小姐,今晚有空吃饭吗?\n",_name]; } else { return [NSString stringWithFormat:@"%@小姐,今晚我没空吃饭。\n",_name]; }}+(NSString *)playGame{ return [NSString stringWithFormat:@"I Like playing LOL!\n"];}@end
<main.m>调用
#import <Foundation/Foundation.h>#import "Student.h"//相当以一个声明文件@interface Teacher : NSObject{ @public NSString *_name;}-(void)classBegin;@end@implementation Teacher-(void)classBegin{ NSLog(@"%@ say class begin!",_name);}@end/* 在OC中,我们是使用 #import指令来导入头文件的, #import "header" //导入自定义类的头文件。 #import <header> //导入ios框架类库类的文件的。 Foundation框架是使用处理用户界面之下的层(layer)中的特性的。例如数据结构和通信 及机制。我们OC中的程序,都是以Foundation框架为基础的。 //作业:#include 与 #import的区别? //NSLog 与 printf 函数的区别? */int main(int argc, const char * argv[]) { /* 自动释放池: 自动释放池技术提供了一种机制,可以让我们将对象的所有权释放,但是不会导致对象 马上被清理,例如用在一个方法返回一个对象中 有以下三中情况我们可能会用自动释放池技术 1.如果我们写的程序不是基于UI框架的,如命令工具 2.如果我们写的程序中有循环并产生大量临时对象 3.如果你并发第二个线程 通常我们不需要建立自己的自动释放池块,在OC中,以后需要在main函数中创建对象都在我们的autoreleasepool中创建, 让它来自动帮我们管理对象所有权的释放 */ @autoreleasepool { // NSLog()是系统提供的日志函数,用来在控制台打印出调用信息 NSLog(@"\nHello, World!\n"); /* 面向对象的特征个概念: 面向对象是现在主流的程序设计思想,面向对象是把构成问题的事物分解成各个对象, 然后协调各个对象之间的联系个通讯。建立对象之间的目的不是为了完成某一个步骤, 而是为了描述某个事物在整体解决问题的步骤中的行为 其基本的思想是:使用类,对象,属性方法(函数)以及封装,继承和多态等概念来进行程序设计。 */ //OC中常用的数据类型 前缀:NS NSInteger age = 25; //整型 NSUInteger age1 = 25; //无符号整型 CGFloat source = 34.5; //浮点型 NSRange range; //表示范围作用 结构体 CGPoint point; CGSize size; NSRect rect; NSString *string = @"My name is Rick"; char c = [string characterAtIndex:3]; NSLog(@"c = %c\n",c); //OC里面没有多维数组,只有数组嵌套数组 NSArray *array = @[@1,@2,@3,@4]; NSDictionary *dictioanry = @{@"name":@"Rick",@"age":@25}; NSDate *date = [NSDate date]; //美国日期 NSData *data = [NSData data]; //二进制数据 // NSURL 网址 // NSOperationQueue 线程 // NSThread 线程 // dispatch_get_main_queue() 线程 /* 什么的类? 类是一组具有相同属性及行为的对象集合 在OC中,类是由接口(interface)和实现(implement)两部分组成 .h 接口文件,用来实现属性的声明和方法的声明 .m 实现文件,用来实现属性个方法 什么是对象? 类的具体实现 */ /* 创建和使用对象 OC创建对象的语法: 类名 *对象名 = [[类名 alloc] init]; 或者 类名 *对象名 = [类名 new]; alloc 为对象动态分配内存地址,需要做内存管理,放在堆上面。需要做内存该类 init 在内存中填上初始值 */ Student *stu = [[Student alloc] init]; Student *stu1 = [Student alloc]; stu1 = [stu1 init]; Student *stu2 = [Student new]; //如何给类中是属性赋值以及调用类中的方法 //属性赋值,通过 -> 给实例变量赋值 stu -> _name = @"小红"; stu -> _age = 15; stu -> _address = @"@广东"; stu -> _hobby = @"@看书"; NSLog(@"stu -> _name = %@",stu -> _name); [stu sayHello]; NSString *stuString = [stu eatLunch]; NSLog(@"stuString = %@",stuString); //手动创建一个类 Teacher *tea = [Teacher new]; tea -> _name = @"zyx"; [tea classBegin]; NSLog(@"%@",tea -> _name); } return 0;}
0 0
- Objective-C(一)面向对象
- Objective-C 面向对象一
- Objective C面向对象
- objective-c面向对象
- Objective-C 面向对象
- Objective-C的面向对象特性(一)
- objective-c自学总结(一)---面向对象
- Objective-C 基础一:面向对象过程基础知识
- Objective-C与Java面向对象对比学习(一)
- Objective-C语言:面向对象
- Objective-C:面向对象程序设计
- [objective-c] 面向对象1
- 【Objective-C】01-面向对象
- 【Objective-C】面向对象前奏
- Objective-C 面向对象基础
- Objective-c中的面向对象
- Objective-C浅谈面向对象
- Objective-C面向对象浅谈
- 23种设计模式C++实例之创建者模式
- python练习
- IDEA 崩溃后,工程出现问题的解决方法
- 自己总结的常用宏
- 数字排序
- Objective-C 面向对象一
- 博客的第一天
- 数据库读写分离
- hdoj EXCEL排序 1862 (结构体)简单题
- 最优灌溉
- Chrome 中的 JavaScript 断点设置和调试技巧
- directory not found for option
- ML—朴素贝叶斯
- 23种设计模式C++实例之原型模式