Objective-c语言-对象
来源:互联网 发布:页面加载后执行js 编辑:程序博客网 时间:2024/05/16 10:41
main.m
//// main.m// OC_8//// Created by ibokan on 15/12/7.// Copyright © 2015年 aishuo. All rights reserved.///* OC 语言的特点在P4 */#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 的区别? */int main(int argc, const char * argv[]) { /* auto 自动 lease释放 pool池 自动释放池技术提供了一种机制,可以让我们将对象的所有权释放,但是不会导致对象 马上被清理,利润用在一个方法返回一个对象中 有以下三种情况下我们可能会用自动释放池技术 1.如果我们写的程序不是基友UI框架的,如命令行工具 2.如果我们写的程序中有循环并且产生大量的临时对象 3.如果你并发第二个线程 通常我们不需要建立自己的自动释放池块,在oc中,以后需要在main函数中创建对象 都在我们的autoreleasepool中创建,让他来自动帮我们管理对象所有权的释放 */ @autoreleasepool { // NSLong()是系统日光的日志函数,用来在控制套打印出调试信息 NSLog(@"Hello, World!");//NSLong与printf函数的区别? // printf("Hello, world!"); /* 面向对象的特征和概念 面向对象是现在主流的程序设计思想,面向对象是把高潮问题的实物分解各个对象 ,然后协调各个对象之间的联系和通讯。建立对象之间的目的不是为了完成某一个 步骤,而是为了描述某个事物在整体解决问题的步骤中的行为。 其基本思想是:使用类,对象,属性,方法(函数)以及封装,继承和多态等概念来进行程序设计。 */ //OC中常用的数据类型。前缀:NS NSInteger age=25;//整形 NSUInteger age1=55;//无符号整形// NSLog(@"age1=%d",age1); 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",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)和实现(imolement)两部分组成 .h 为接口文件,用来实现属性的生命和方法的声明 .m 实现文件,用来实现属性和方法 */ /* 什么是对象? 类的具体实现 创建和使用对象 OC创建对象的语法: 类名 *对象名=[[类名 alloc] init]; 或者 类名 *对象名=[类名 new]; alloc为对象动态分配内存地址,需要做内存管理,放在对上面,需要做内存管理 init 在内存中填上初始值 堆: 栈: new 为alloche 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 *ter=[Teacher new]; [ter classBegin]; } return 0;}Student.m
//// Student.m// OC_8//// Created by ibokan on 15/12/7.// Copyright © 2015年 aishuo. All rights reserved.//#import "Student.h"//在@implementation 与@end 中实现接口文件声明的方法@implementation Student-(void)sayHello{ NSLog(@"Hello everybody!!!");}-(NSString *)eatLunch{ if (_age<18) { return [NSString stringWithFormat:@"%@小姐,今晚有空吃饭吗",_name]; } else { return [NSString stringWithFormat:@"%@小姐,今晚没空吃饭!",_name]; }}+(NSString *)playGame{ return [NSString stringWithFormat:@"I like playing LOL!"];}@endStudent.h
//// Student.h// OC_8//// Created by ibokan on 15/12/7.// Copyright © 2015年 aishuo. All rights reserved.//#import <Foundation/Foundation.h>//@interface , @end 关键字,表明声明的开始和结束//Student 类的名称 ,NSObject 是该类所属的父类,在OC 中继承的语法为"类型:父类名"@interface Student : NSObject{ @public NSString *_name; //@protected NSInteger _age; //@private NSString *_hobby; NSString *_address; /* 属性的作用域 @public 公开的,任何类的方法都可以访问 @protected 受保护的.有类本身和类的子类可以访问 @private 私有的,有类本身才能访问 */ }/* 减号(-)表明了该方法是实例方法。类方法则用加号(+)。 (书p23)括号中void表示无返回值类型 其他类型还有NSIntger。NSString类型等等。 *///声明方法-(void)sayHello;//实例方法-(NSString *)eatLunch;//实例方法+(NSString *)playGame;//类方法@end
StudentSon.m
//// StudentSon.m// OC_8//// Created by ibokan on 15/12/7.// Copyright © 2015年 aishuo. All rights reserved.//#import "StudentSon.h"@implementation StudentSon-(void)sayWord{ //_name是@public 修饰的,所有类都是可以访问 NSLog(@"%@",_name); //_age是@protected修饰的,该类与其子类都是可以访问 NSLog(@"%ld",_age); //_hobby是@private修饰的,只有该类本身可以访问 //NSLog(@"%@",_hobby);}@end
StudentSon.h
//// StudentSon.h// OC_8//// Created by ibokan on 15/12/7.// Copyright © 2015年 aishuo. All rights reserved.//#import "Student.h"@interface StudentSon : Student-(void)sayWord;@end
0 0
- Objective-c语言-对象
- Objective-C语言-对象
- Objective-C语言:面向对象
- Objective C语言----类,对象,方法总结
- Objective-c语言_面向对象(封装)
- Objective-c语言_面向对象(继承)
- Objective-c语言_面向对象(多态)
- Objective-C语言_面向对象(封装)
- Objective-C语言_面向对象(继承)
- objective-C语言_面向对象(多态)
- Objective-C 面向对象的编程语言
- Objective-c语言 - 类和对象
- 面向对象C语言(Objective-C)编程简介
- 面向对象C语言(Objective-C)编程(二)
- OC: 第一讲(Objective-C,面向对象的C语言)
- Objective-C 编程语言(13)远程消息---分布式对象
- 面向对象语言Objective-C三大特性之一--封装
- 黑马程序员--Objective-C语言基础知识--面向对象
- 深入理解 Session 与 Cookie
- sourceinsight 中文支持 解决办法
- 一篇给小白看的 JavaScript 引擎指南
- nmon生成文件的各项参数解释说明
- vim编辑文档时中文乱码
- Objective-c语言-对象
- 通过bind实现activity与service的交互
- ssh 端口转发
- 读书笔记--View的工作原理(一)
- windows下C的定时器timeSetEvent使用
- 新浪微博分享不显示分享的链接问题
- 快速排序
- Ubuntu 14.04 端口映射
- VS2013+WDK8.1安装与测试