Java培训、Android培训、iOS培训、.Net培训、期待与您交流!

(以下内容是对黑马苹果入学视频的个人知识点总结)

三种特性之一封装

(一)set方法和get方法

1)  set方法

1>作用:用来设置成员变量,可以在方法里面过滤掉一些不合理的值

2> 命名规范:

①方法名必须以set开头

②set后面跟上成员变量的名称,成员变量的首字母必须大写

③返回值一定是void

④一定要接收一个参数,而且参数类型跟成员变量类型一致

⑤形参的名称不能跟成员变量名一样

2)  get方法

1>作用:返回对象内部的成员变量

2> 命名规范:get方法的名称一般就跟成员变量同名

①肯定有返回值,返回值类型肯定与成员变量类型一致

②方法名跟成员变量名一样

③不需要接收任何参数

3)   成员变量的命名规范

1>成员变量都以下划线 _ 开头

2>可以跟get方法的名称区分开

3>可以跟其他局部变量区分开,一看到下划线开头的变量,肯定是成员变量

#import <Foundation/Foundation.h>

@interface Student : NSObject
{
int age;
int no; // 只需要提供get方法
} - (void)setAge:(int)newAge; - (int)age; - (void)study; @end @implementation Student // set方法的实现
- (void)setAge:(int)newAge
{
// 对传进来的参数进行过滤
if (newAge <= )
{
newAge = ;
} age = newAge;
} - (int)age
{
return age;
} - (void)study
{
NSLog(@"%d岁的学生在学习", age);
} @end int main()
{
Student *stu = [Student new]; [stu setAge:]; NSLog(@"学生的年龄是%d岁", [stu age]); [stu study]; return ;
}

封装的好处

1>过滤不合理的值

2>屏蔽内部的赋值过程

3>让外界不必关注内部的细节

(二)类方法

1)直接可以用类名来执行的方法(类本身会在内存中占据存储空间,里面有类\对象方法列表)

2)类方法和对象方法的对比

1>对象方法

①以减号-开头

②只能让对象调用,没有对象,这个方法根本不可能被执行

③对象方法能访问实例变量(成员变量)

2>类方法

①以加号+开头

②只能用类名调用,对象不能调用

③类方法中不能访问实例变量(成员变量)

④使用场合:当不需要访问成员变量的时候,尽量用类方法

注意:类方法和对象方法可以同名

(三)self关键字

1> 成员变量和局部变量同名

①当成员变量和局部变量同名时,采取就近原则,访问的是局部变量

②用self访问成员变量,区分同名的局部变量

2> 使用细节

1)  出现的地方:所有的OC方法中(对象方法\类方法),不能出现在函数

2)  作用

①使用 "self->成员变量名" 访问当前方法调用的成员变量

使用 "[self 方法名];" 来调用方法(对象方法\类方法)

②低级错误:用self去调用函数

③类方法中用self调用对象方法,对象方法中用self调用类方法

④self死循环

3)常见错误

①低级错误:用self去调用函数

②类方法中用self调用对象方法,对象方法中用self调用类方法

③self死循环

 @implementation Person
- (void)test
{
NSLog(@"调用了-test方法"); // 会引发死循环
[self test];
}

黑马程序员——OC基础 三种特性之封装的更多相关文章

  1. 黑马程序员——JAVA基础之简述 类的封装

    ------- android培训.java培训.期待与您交流! ---------- 类的封装(Encapsulation)  封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式. 封装优 ...

  2. 黑马程序员+SQL基础(上)

    黑马程序员+SQL基础 ---------------<a href="http://edu.csdn.net"target="blank">ASP ...

  3. 黑马程序员+Winform基础(上)

    黑马程序员+Winform基础 ---------------<a href="http://edu.csdn.net"target="blank"> ...

  4. 黑马程序员_java基础笔记(10)...JDK1.5的新特性

    —————————— ASP.Net+Android+IOS开发..Net培训.期待与您交流! —————————— 1:静态导入.2:for—each循环.3:自动装箱/拆箱.4:可变参数.5:枚举 ...

  5. 黑马程序员Java基础班+就业班课程笔记全发布(持续更新)

    正在黑马学习,整理了一些课程知识点和比较重要的内容分享给大家,也是给自己拓宽一些视野,仅供大家交流学习,大家有什么更好的内容可以发给我 ,现有黑马教程2000G  QQ 1481135711 这是我总 ...

  6. 黑马程序员_Java基础:网络编程总结

    ------- android培训.java培训.期待与您交流! ---------- Java语言是在网络环境下诞生的,它是第一个完全融入网络的语言,虽然不能说它是对支持网络编程做得最好的语言,但是 ...

  7. 黑马程序员----java基础笔记中(毕向东)

    <p>------<a href="http://www.itheima.com" target="blank">Java培训.Andr ...

  8. 黑马程序员_Java基础组成

    Java语言基础组成 2.1关键字 main不是关键字,但被JVM所识别的名称. 关键字的定义和特点 定义:被Java语言赋予了特殊含义的单词. 特点:关键字中所有字母都为小写. 用于定义数据类型的关 ...

  9. 黑马程序员_Java基础视频-深入浅出精华版--PPT 文件列表

    \day01\code\第一章_Java概述.ppt;\day01\resource\资料\50道编程题(有精力的同学看看).doc;\day01\resource\资料\Sun_Java程序员认证考 ...

随机推荐

  1. 如何离线创建Ionic/cordova项目

    在创建ionic项目的时候,需要联网下载许多东西,由于墙的缘故,我们在创建.添加android平台.编译过程中,失败的可能性非常高,为解决这个问题,我创建了一个空的Ionic1 tab项目,并完成了上 ...

  2. Grunt_1从安装开始创建一个基本的Grunt

    Grunt的介绍:http://www.gruntjs.net/getting-started 文件架构:https://github.com/zhangsai521314/Grunt 1:安装Git ...

  3. 流媒体测试笔记记录之————解决问题video.js 播放m3u8格式的文件,根据官方的文档添加videojs-contrib-hls也不行的原因解决了

    详细代码Github:https://github.com/Tinywan/PHPSharedLibrary/tree/master/Tpl/Html5/VideoJS 想播放hls协议的就是m3u8 ...

  4. DBUTIL 调用存储过程例子

    执行存储过程和执行select查询相比,无非就是SQL语句不同.下面是一个用存储过程查记录的例子.根据你的数据库不同和域对象不同,此代码要修改 Java code   ? 1 2 3 4 5 Quer ...

  5. nginx.conf 解释

    http://snapshot.sogoucdn.com/websnapshot?ie=utf8&url=http%3A%2F%2Fwww.cszhi.com%2F20120513%2Fngi ...

  6. HTML5 十大新特性(七)——拖放API

    拖放API是H5专门为了鼠标拖放而新提供了7个事件,可以分成三个部分来讲. 一.拖动的源对象(source)可以触发的事件 dragstart:拖动开始 drag:拖动进行中 dragend:拖动结束 ...

  7. SSIS之-DTS对象&事件

    1.Dts 是类 Microsoft.SqlServer.Dts.Tasks.ScriptTask.ScriptObjectModel 类的一个实例,Dts 对象有 7 个属性和一个方法,以下是DTS ...

  8. Forward和Redirect的区别

    一:间接请求转发(Redirect) 二:直接请求转发(Forward) 用户向服务器发送了一次HTTP请求,该请求可能会经过多个信息资源处理以后才返回给用户,各个信息资源使用请求转发机制相互转发请求 ...

  9. Linux中修改环境变量导致大量命令不可用的解决办法

    如果搞死环境变量别慌张.因为ls等命令都不能使用了,所以先找到/usr/bin/目录 使用./sudo su命令获取root权限 然后在进入/etc目录 利用vim profile命令 修改profi ...

  10. .net预览功能

    1.把需要预览的文件格式转换为pdf 2.下载pdttoswf软件 3.实现预览swf功能 ok excel转pdf时会出现乱掉的问题.是excel文件的问题.调整excel文件的格式即可.