A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


1)Objective-c简称OC,扩充自C语言;
          C语言为"面向过程";
         OC语言为:面向对象.并且OC对C语言中的所有功能完全兼容;
  2)Objective-c 是OS X 和 IOS操作系统的主要编程语言.
  3)OC中关键字使用@开头,从而避免了与C中的关键字冲突.
例:@interface@implementation @end @protected @private 等;
  4)相比OC中,"BOOL"的YES为1,"NO"为0; 而C中数字"0"为NO,非"0"为YES;
  5) @public 在任何地方都可能直接访问对象的成员变量
二.Objective-c的特点; (一)Objective-c的特点:
  1)上面讲到,在OC中,对于C语言中的所有功能完全兼容;
  2)OC是主要倾向于面向对象的一项编程语言工具;
(二)Objective-c 与C的区别及注意事项: 1) #include 和 #import 的区别
2)源文件 OC中的源文件是.m结尾 c 语言中是. c尾 #import #improt 是#include增强版
注要作用: 包含引入头文件,把指定的文件拷贝到指定的位置.
         增强: 无论你#import 执行多少次,都只会拷贝一次.
   #include 如果要达到同样的效果,需要和条件编译指令一起使用.
  #import 底层就做了判断,判断你这个文件是否已经导入过了,如果已经有了,就不会重复导入.
  #import 也有<>和""; <>为导入系统文件,""是用来导入用户定义的文件.
3)框架 苹果公司和第三方扭扭捏捏想封装好了一些功能模块,这些功能模块的集合就是"框架"
+++++C语言中的函数库+++++++
Foundation/Foundation.h:提供了我们OC开发基本的功能;
   4)main 函数 *和C语言中一模一样
   5) return 0; //返回;
   *和C语方中一模一样 NSlog 是 printf的增强版,同样用打印和输出;
*1* 自动换行
*2* 日期和时间(精确到毫秒)
*3* target 的名称
  *4*进程号: 线程号
注要用@ 在OC中%@为字符串的占位符;
·                 NSSting 是OC中的字符串类型. NSSting 为C中printf()的增强版;
三.类与对象的定义
  (一) 1)类和对象是面向对象的核心.
*定义类->>创建对象->>使用对象.
  *具有相同的特征和行为的事物的抽象. 例如: 电脑,手机类.
*对象:对象是类的实例.类是对象的类型(可以理解为:类,是模具的象征; 对象,是个体的象征).
(二)OC中类的定义;
1)定义类包含两部分:声明部分和实现部分.
        *声明部分* 对外声明类的特征和行为( 可以理解为说明书 )
        * @interface 声明类型 NSobjert *
==========================================================================
  //其中:Person是类名,可以与文件夹不同名, NSObject父类
@interface Person : NSObject //实例变量(特征)
{ //public是设置变量权限为共有
@public //NSString
   *是OC里面特有的对字符类型处理的变量类型
     //可以直接赋值,打印时用占位符%@
    //注意:命名规范实例变量 下划线和名字
NSString _name;//姓名 NSString _sex; NSString *_hobby;NSInteger _age;
} //方法(行为) - (void) sayHi;
- (void) eat; @end
实现部分: 对内实现行为
@implementation Person //实现方法
·                 (void) sayHi {NSLog(@"你好,我叫%@,今年%ld岁,喜欢%@, _name, _age, _hobby);
}
·                 (void) eat {NSLog(@"我要去吃饭"); //NSLog作用于printf相同,NSLog会自动换行.
} @end
类与文件: .h是头文件. .m称为实现文件
     2) 创建对象 * 类是模板, 对象是具体表现,任何对象都占用内存空间.
*创建对象分两步:
*1.分配内存空间
*2.初始化
*3.返回地址*
*分配内存空间: 根据类中声明的实例变量为对象分配内存,将所有实例变量置为默认为0,并反回首地址.
Person p = [Person alloc]; p = [pinit]; // 初始化:为对象的实例变量设置初始值。 Person p = [[Person alloc]init];
//通常写为这种 +(void)alloc;
"+"表示这人方法属于类,只能由类执行和调用.
("void")为返回值类型.表示任意类弄的对象, 即创建好的对象.
-(void)init; "-" 表示这个方法属于对象,只能由对象执行和调用.
"(void)"为返回值类型,表示初始化完成的对象.
======初始化======
//重新实现init方法,系统将不会在调用系统本来的方法
·                 (id) init { _age = 18;return self; //self 表示本身,返回初始化完成的自己 }
=======例题==========
import //引用Person声明文件
import "Person.h"
int main(int argc, const char * argv[])
{ @autoreleasepool
{
创建对象或实例化对象 Person *person =[[Person alloc] init]; //对象成员赋值,也可以重新写init是赋值 person->_name =@"张三"; person->_age =20;
person->_hobby = @"篮球";
//使用对象 [person sayHi]; [person eat]; } return 0; }=============================================================
四. 类的声明及调用方法; 1.类的声明:@interface 类名:NSObject @end
2.类的实现:@implementation 类名@end * 无参方法:
1.无参方法声明:-(返回值类型)方法名;
2 .无参方法实现:-(返回值类型)方法名{}
3.无参方法调用:[对象名 方法名] * 有一个参数的方法:
1.声明:-(返回值类型)方法名:(参数类型)参数名;
2.实现:-(返回值类型)方法名:(参数类型)参数名{}
3.调用:[对象名 方法名:参数] * 有多个参数的方法:
1.声明:-(返回值类型)方法名:(参数类型)参数名 andXX:(参数类型)参数名 andXX:(参数类型)参数名 andXX:(参数类型)参数名;
2.实现...
3.调用...

1 个回复

倒序浏览
邱中林 来自手机 中级黑马 2016-9-25 08:22:49
沙发
可以,很详细
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马