1.OC: Object- C
,面向对象的语言
2、OC 和
C的区别:
<1> oc是 c的超集
,oc是在c语言的基础上做了扩展,c语言中的所有语法,在oc中都可以使用,甚至你可以在工程里加入C++ 语言
<2>oc在c基础上扩展了面向对象的特点
<3>oc
是一门运行时语言
<4>oc为我们提供了丰富的类库

3、 如何学习好OC
?
 
  //1.百度 (ios)

   
//2.看苹果的官方文档(API接口网站)

//3.看博客

   
//4.自己的错误总结

4、 面向对象编程的核心:类和对象
 
  面向对象编程的三大特征:封装,继承,多态
 
  类:具有相同特征和行为(功能)事物的抽象
 对象:就是类的实例化

5、 创建一个类:
   
//1、通过Cocoa touch
class 模板,创建类,自动生成.h 和 .m文件

   
//2、在.h
文件中写类的特征(实例变量) 和方法的声明
   
//3、在.m中写实现部分
 ——*使用类创建对象*——
   
//1、开辟内存空间
   
//2、初始化

6、[
]中括号调用方法
   
//[Person alloc]
给person 这个类发送一个消息alloc(开辟内存空间)

   
//创建对象person1
   
//每一个对象 isa指针 用来指向它的父类,之所有能够调用父类的方法,完全是因为这个
isa  指针;

7、 初始化
如果初始化没有赋值这时默认所有的实例变量都为空;
 
     
     
     person1 =
[person1 init];
  
这条语句同时完成了两件事:开辟内存并初始化;

8、例子:
.h文件:

//@interface
是接口 Person
是类名    :继承自谁
NSObject 是所有Oc类中的基类
//---------------------------Person类的创建对象的特征---------------------

@interface
Person
: NSObject

//特征一定要写在下面那对大括号里面

{     
@public   
//实例变量对@public
修饰后的就能在类的外部访问到这些实例变量了;

   
//类的外部指:.h 和.m
之外的其他文件就叫类的外部

   
//类的内部指:.h 和.m
文件之内

   
//NSString
是OC中字符串类

              
NSString
*_name;//姓名NSString
不是基本数据类型,所以定义它需要加*

   

             
NSInteger   
_age;//年龄NSInteger
是基本数据类型,所以定义变量时不需要加*号
              
NSString
*_sex;//性别
//
----------------------------Persson类型创建出对象所拥有的行为----------
//行为的声明部分

//用 (减号)(- )号
修饰的方法属于对象方法,这个方法只能有我们定义这个类的创建出来对象来调用
//用加好(+)修饰的方法属于类方法,这这方法只能有类来调用

- (id)init;//重写inint写法

- (void)sayHello;//小驼峰命名法

- (void)eat;

//添加一个带参数的方法

//一个冒号:代表一个参数

//写一个带有参数的方法时格式<   
:(数据类型)参数名   >
-
(void)talk:(NSString
*)content;    
//隐匿有参数数据类型
-
(void)talk:(NSString
*)content
withSonmeone : (NSString
*)name;
@end
————————————————————————
.m文件:
/@implementation
是类的实现部分
@implementation
Person
//id
范类型,返回值可以指向任何类型的对象   类似于void * 
-
(id)init{—————————赋给初始值————————
   _name
=
@"翔哥";

_sex
=
@"妖";

_age
=
18;

//打印self地址

NSLog(@"self地址:%p",self);

//谁调用这个方法self
指的就是谁

   
return
self;
————————————————————————————————————
main.m
 文件:
 Person
*p =
[[Person
alloc]init];

//调用sayhello的方法

[p
sayHello];

p->_name
=
@"zhangSan";

p->_age
=
18;

p->_sex
=
@"妖";

[p
sayHello];

//调用吃得方法

   
[p eat];




最新文章

  1. Java实现上传下载
  2. sqlite嵌入式数据库C语言基本操作(2)
  3. PTA Insert or Merge
  4. [转载]Android系统开机画面的实现
  5. was7中文redhat6上安装出现中文乱码解决方案
  6. 文件IO一些注意的地方
  7. Java 7 新的 try-with-resources 语句,自动资源释放
  8. mkisofs出错解决办法
  9. WIN8共享文件 详细设置
  10. AsyncSocket 使用
  11. int a[5]={1,2,3,4,5};printf(&amp;quot;%d\n&amp;quot;, *((int*)(&amp;amp;a+1)-2);
  12. iOS中UIKit的外观属性及方法汇总
  13. Luogu5245 【模板】多项式快速幂(多项式exp)
  14. 从零搭建 ES 搜索服务(二)基础搜索
  15. SQLite Manager插件安装与使用(firefox)
  16. R语言——实验4-人工神经网络
  17. echart line 初始化隐藏legend
  18. html06
  19. bash简介1
  20. mfix中统计气泡体积

热门文章

  1. Docker使用 Supervisor 来管理进程
  2. Java中使用long类型实现精确的四则运算
  3. Windows 8 Cython 的配置(解决Unable to find vcvarsall.bat问题)
  4. CCSpriteBatchNode中存放元素的一点理解
  5. 剑指offer面试题5 从头到尾打印链表(c)
  6. Dynamics CRM 插件Plugin中获取和更新时间字段值的准确转换
  7. iOS下JS与OC互相调用(一)--UIWebView 拦截URL
  8. 06_NoSQL数据库之Redis数据库:Redis的高级应用之登录授权和主从复制
  9. 学习笔记-JS公开课三
  10. iOS中崩溃调试的使用和技巧总结 韩俊强的博客