OC第一节--OC的基本

来源:互联网 发布:下载压缩解压软件 编辑:程序博客网 时间:2024/06/05 11:16
</pre><p> <span style="font-size:18px">OC的含义:obj -c 或者 object-c   OC是在C语言的基础上进行拓展, 从面向过程转变为面向对象</span></p><p><span style="font-size:18px">  @符是OC关键字的标志 后面的可见度,接口,实现前都需要加@</span></p><p><span style="font-size:18px">  例:@interface</span></p><p><span style="font-size:18px">  OC中常用的数据类型: NSInterger(整型)  CGFloat(浮点型)  NSString(字符串) </span></p><p><span style="font-size:18px"> 如果有*就代表这是一个对象  这里的指针其实相较C弱化了很多   </span></p><p><span style="font-size:18px"> 输出格式也有所改变  NSLog(@"%@", );  第一个@是OC打印前必须要加的,第二个是代表字符串的格式化输出占位符 </span></p><p><span style="font-size:18px"></span></p><p><span style="font-size:18px">#pragma mark---     这个可以用来快速查找内容</span></p><p><span style="font-size:18px">创建对象 分两个过程</span></p><p><span style="font-size:18px"> 1.分配内存空间(堆区开辟空间 需要程序员进行管理)  </span></p><p><span style="font-size:18px">    以Person类为例  Person *per = [Person alloc];</span></p><p><span style="font-size:18px">  2.对对象进行初始化      </span></p><p><span style="font-size:18px">   [per init];</span></p><p><span style="font-size:18px">上面可以直接合成一种写法: Person *person = [[Person alloc]init];</span></p><p><span style="font-size:18px">调用方法是需要加 [];</span></p><p></p><p><span style="font-size:18px">几种类型的差别:</span><span style="font-size:18px">instancetype 表示返回一个对象类型  不能做一个类型声明变量</span></p><p><span style="font-size:18px">void* 无类型指针  可以转化成任何类型的指针</span></p><p><span style="font-size:18px">id表示一个对象类型  可以声明一个对象使用</span></p><p><span style="font-size:18px"></span></p><p><span style="font-size:18px">OC的声明与实现:</span></p><p><span style="font-size:18px"></span></p><p class="p1"></p><p><span style="font-size:18px"></span></p><pre class="prettyprint" name="code" style="white-space: nowrap; word-wrap: break-word; box-sizing: border-box; margin-top: 0px; margin-bottom: 1.1em; font-family: 'Source Code Pro', monospace; padding: 5px 5px 5px 60px; font-size: 14px; line-height: 1.45; word-break: break-all; color: rgb(51, 51, 51); border: 1px solid rgba(128, 128, 128, 0.0745098); border-radius: 0px; position: relative; overflow-y: hidden; overflow-x: auto; background-color: rgba(128, 128, 128, 0.0470588);"><code class="hljs objectivec has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// .h是接口文件</span><span class="hljs-class" style="box-sizing: border-box;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">@interface</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">Person</span>(类名) : <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">NSObject</span> ((继承自)父类)</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// 中间写声明 或者 实例变量(特征)  行为的声明</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// 声明变量(特征)方式: 需添加一个{}, 在{}里面声明实例变量</span>{     <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSString</span> *_name; <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// 命名规范 只要是类的特征, 实例变量名字前要加上一个”_"</span>}<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// 在{}外面写行为(方法)</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// void sayHi( ); C语言声明函数的方式</span> - (<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">void</span>)sayHi;  <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// OC中声明方法时在前面加上-, ( - 方法, 也叫实例方法或者对象方法)</span> + (<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">void</span>)walk;   <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// 声明方法时在前面加上+  ( + 方法, 也叫类方法)</span><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">@end</span>  <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// 声明接口的结束部分</span></code><code class="hljs objectivec has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"></code><code class="hljs objectivec has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// .m是实现文件</span><span class="hljs-class" style="box-sizing: border-box;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">@implementation</span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(102, 0, 102);">Person</span>  (类名)</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// 中间写行为(方法)的实现部分</span>- (<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">void</span>)sayHi{     <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSLog</span>(@“hello”);}<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">@end</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// p.s 括号内的中文为注释, 完整代码参照中文移除括号及其内的中文后即可</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li><li></li></ul>




0 0
原创粉丝点击