:Obect  c  与 c  语言的区别
() 后缀名不一样,C语言是.c 结尾 ,OC 是 .h结尾。
() 输出信息不同 C语言是用print() 输出,OC 是用NSLog输出。
() NSLog会自动换行,并且还有时间戳输出,二print没有
() 导入声明[文件]不一样 OC 是用import,而C语言是用include
: import和 include的区
() Import只导入一次一个文件就不会重复导入,include 可以重复导入同一个文件
:OC创建类的语法
() 类的声明
@interface One[类名]: NSObject{
#设置访问权限 public protecd priavted
@public
#这里写声明属性和行为
Int age;
Char sex;
}
#这里写方法的声明 OC中方法的声明
:对象方法以 ‘-’ 号 开头
:数据类型一定要用小括号括住
:OC方法中的小括号就一个作用 ,就用来括住数据类型 无参数声明方法格式如: - (返回类型) 方法名;
- (void) Tets1; //声明一个无参数无返回类型的方法
-(int ) Test2; //声明一个无参数有返回类型为int 类型的方法
有参数声明方法格式[注意点冒号也是方法名的一部分]:
- (返回类型) 方法名:(参数类型 *)参数名称
-(void) Test3 :(char *)nub;
-(void) Test4(char *)nub1 :(char *)centen; //多个参数 以 : 相间隔
@end //声明结束
() 类的实现
@implementation One[类名]
#这里写实现方法的声明 格式跟函数的声明一个 实现格式如:
()无参数
-(void) Test1{
NSLog(@”你好”);
}
() 有参数 -(void)Test3:(char *)nub{
NSLog(@”电话号码%s”,nub);
}
-(void)Test4:(char *)nub :(char *) coent{
NSLog(@”电话号码%s”,nub);
} @end
() 类的实例化和调用方法属性
Int main(int argc, const char * argv[]){ #格式为: 类名 指针;
One *p;
/*
实例化一个对象在内存中干了三件事
1:开辟存储空间
2:初始化成员变量
3:返回指针地址
*/
P=[One new];
#给属性赋值
P->age=;
p->sex=’男’;
#输出变量
NSLog(@”年龄=%d,性别=%c”,p->age,p->sex); #有参数的方法调用
[p Test3:””]
}
:OC语言的注意点
.只有类的声明没有实现
.缺少@end
.不能把实现写到声明中同理,声明也不能写到实现中,不能嵌套
.不能把类的声明实现写到函数中
.成员变量必须写到声明的大括号中
.声明成员变量不能直接赋值
.OC的弱语法:注意,没有声明同样可以定义一个类,(实际开发中千万不要这样干)
/*
f 经典错误:
'-[Person run]: unrecognized selector sent to instance 0x100103410'
没实现这个方法的经典错误。
*/
:OC 中字符串的使用 () 创建一个简单的字符串并输出
NSString *str1=@”我是字符串1”;
NSLog(@“%@”,str1);
() 字符串格式化
NSString *str2=[NSString stringWithFormat:@”身高%d,体重%.2f”,sg,tz]
NSLog(@”%@”,str2);
() 计算个数
NSString *str3=@”我是中国人”;
Int count=[str length]; :类方法与对象方法 ()对象的方法是与 减号 开头 类的方法是以 加号开头 ()对象的方法调用方式[是以对象去调用方法]
Test1 *P=[Test1 new ]
Int sum1=[p nb1: nb2:];
()类的方法调用方式[是以类名调用方法]
Int sum2=[Test nb1: nb2:];
() 当方法不使用成员变量的时候就尽量使用类方法[少开辟空间,节省内存]
() 类方法不能访问成员变量[实力变量 也就是对象] :继承 () 子类继承了父类的成员变量和方法
() new方法是父类中继承过来的
() 如果在子类中实现了和父类中同名同类型的方法,我们称之为重写
() 在继承当中调用方法,首先会在本类中找,如果本类没有找到就去父类中找
() 在子类中不仅可以重写父类当中的对象方法,也可以重写父类当中的类方法
() 子父类中的方法调用顺序:现在本类中找,如果本类没有再到父类中找,如果父类中没有,就到爷爷类中找 NSObject是99.%的类的父类
() OC 不支持多继承[也就是说只有一个父类] 支持多层继承 [父->子->孙] :多态 () 什么是多态:多态就是某一类事物的多种形态
() 没有继承就没有多态
() 用父类类型的指针指向了子类对象,这就是多态 : OC访问成员变量格式
() 类名 *p=[类名 new]
p->属性=值;
()
p.属性=值;
:成员变量的作用域 Public:公共的 在其他文件夹中也可以访问 Private:私有的 在其他文件下不能访问 只是在本类中使用。 Protected 受保护的 在其他文件夹中不能访问 在本类中可以访问 :自动设置get/set 属性 @synthesize 属性 ;[在类的实现中写,前提是你已经声明了这个属性] : protected 作用 自动生成get/set 属性 格式:@public int _no;

OC 基础语法的更多相关文章

  1. 【OC基础语法考试】

    OC基础语法已经全部学完,但是这些知识只是最基础的,还有很多高级知识,这个可能需要后面慢慢的去学习才能体会到.接下来我会总结前面的OC基础语法,如果大家发现有什么不正确的地方,请指正,小弟是新生,多请 ...

  2. oc总结 --oc基础语法相关知识

    m是OC源文件扩展名,入口点也是main函数,第一个OC程序: #import <Foundation/Foundation.h> int main(int argc, const cha ...

  3. OC总结 【OC基础语法相关知识】

    m是OC源文件扩展名,入口点也是main函数,第一个OC程序: #import <Foundation/Foundation.h> int main(int argc, const cha ...

  4. IOS基础之 (一) OC基础语法

    一 OC语法 1.关键字 基本上所有关键字都是以@开头,比如: @interface , @implementation, @end, @public, @protected, @private 2. ...

  5. OC基础语法之方法

    看惯了c#的代码再去看Object-C的代码,总感觉有点懵逼,记录下OC的方法用法:   在OC中一个类中的方法有两种类型:实例方法(类似于非静态函数),类方法(类似非静态函数). 实例方法前用(-) ...

  6. 黑马程序员——OC语言基础语法 面向对象的思想

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结)(一)基础语法 1)关键字 @interface.@implementati ...

  7. OC基础 点语法的使用

    OC基础 点语法的使用 1.创建一个Student类继承于NSObject,Student.h文件 #import <Foundation/Foundation.h> @interface ...

  8. 五.OC基础--1.多态,2.类对象,3.点语法,4.@property&@synthesize,5.动态类型,内省(判断对象是否遵循特定的协议,以及是否可以响应特定的消息)

    五.OC基础--1.多态, 1. 多态概念,定义:多态就是某一类事物的多种形态: 表现形式: Animal *ani = [Dog new]; 多态条件:1.有继承关系 2.有方法的重写 2.多态代码 ...

  9. [Objective-c 基础 - 2.2] OC弱语法、类方法

    A.OC弱语法 1.在运行的时候才会检查方法的声明和实现 2.没有声明只有实现的方法也能正常运行,只要在调用之前定义即可 3.类的声明必须存在,否则会出现运行时错误   B.类方法 1.是类名调用的方 ...

随机推荐

  1. GNS3 思科模块 说明

    GNS3整合了如下的软件:   Dynamips :一款可以让用户直接运行Cisco系统(IOS)的模拟器   Dynagen :是Dynamips的文字显示前端   Pemu : PIX防火墙设备模 ...

  2. 水晶报表导出完美EXCEL表格

    水晶报表自带的导出Excel不太完美(这一点与SQL的SSRS相比就差太远了),导出的文件没有网格线,而且非常容易出现跨行跨列的现象,要做一个符合要求的报表还真要花不少的时间与精力去调试. 下面我简单 ...

  3. [JQuery]用InsertAfter实现图片走马灯展示效果

    写在前面 最近一个搞美工的朋友让我给他写一个图片轮播的特效. 需求: 图片向左循环滚动. 图片滚动到中间高亮显示,并在下方显示照片人物对应的信息. 鼠标悬停止滚动. 鼠标离开开始滚动. 单击图片,图片 ...

  4. CentOS7.x 通过mail命令发,使用465端口(smtps协议)发送邮件

    #创建证书mkdir -p /root/.certs/echo -n | openssl s_client -connect smtp.qq.com:465 | sed -ne '/-BEGIN CE ...

  5. D3.js系列——动态效果和Update、Enter、Exit的理解

    一.动态效果 D3 支持制作动态的图表.有时候,图表的变化需要缓慢的发生,以便于让用户看清楚变化的过程,也能给用户不小的友好感. 1.什么是动态效果 前面制作的图表是一蹴而就地出现,然后绘制完成后不再 ...

  6. NFSv4 mount incorrectly shows all files with ownership as nobody:nobody

    NFSv4 mount incorrectly shows all files with ownership as nobody:nobody   https://access.redhat.com/ ...

  7. poj 3468 A Simple Problem with Integers 线段树区间更新

    id=3468">点击打开链接题目链接 A Simple Problem with Integers Time Limit: 5000MS   Memory Limit: 131072 ...

  8. SpringMVC整合quartz,实现定时任务

    <dependency>        <groupId>org.quartz-scheduler</groupId>        <artifactId& ...

  9. 动态创建的文本框想要加上jQuery的datepicker功能变成日期选择控件该怎么办?

    通常页面输入控件想得到日期选择功能,借助jQuery是这样实现的: 1.载入css和js <script src="jqueryui/jquery-ui.js" type=& ...

  10. 在Dell XPS 13安装WIN10和ubuntu双系统

    新入了Dell的XPS 13超级本,之所以买这个本子,就是看中它轻便且续航持久.这款本子也是为数不多的能够和苹果的13'' mac book air一较高下的本子.在重量上,占地面积和综合性价比上,还 ...