Object-C 基础笔记2--方法
一,了解继承
oc中,一个类可以继承另一个类,被继承的类称为父类或超类,继承的类称为子类,子类可以直接拥有父类中除了@private实例变量之外的全部内容.
实现继承使用":"
@interface childClass :superClass{ }
OC只允许单继承,一个子类最多只能有一个直接父类.
没有父类的类称为根类,oc中的根类是NSObject.
子类能直接继承父类方法,也能重写父类方法.
继承具有传递性:如果A是B的子类,B是C的子类,那么A也具有C的特征和行为.
二,掌握ios中的方法
oc语言里,方法分为:类方法和实例方法.
类方法必须用类名来调用,实例方法必须用对象来调用.
方法是类的行为,在接口文件中声明,在实现文件中实现.
类方法和实例方法唯一的区别是:调用者不同(类方法用类名来调用,实例方法用对象名调用).
相同点是:都可以有参数和返回值
类只能调用类方法,对象调用实例方法
类方法:
+(int)test{
return 34;
}
调用的时候用类名Person直接调用.[Person test];
实例方法:
-(int)test
{return 23;}
调用的时候用类的对象调用,比如Person * person=[Person new]; 调用:[person test];(使用对象);
类声明处理方法
如果类比较多的时候,类的声明.h就会很多,在主函数或其他类中引用就比较麻烦,可以把一类为实现一个功能的类声明放在一个.h文件中
比如在Head.h中写#import "A" #import "B"....
在main.h中写#import "Head.h"就相当于把Head.h中的内容复制一份到main函数文件中.
[recevier message]消息机制
调用方法是面向过程常用说法,消息机制是oc从面向对象的角度,recevier就是一个对象或类名,它用什么功能或要做什么事情都是他自己的事,在外界看来就是给他一个消息,然后他去执行,所以message被称为消息.
oc中方法的使用:
使用setter和getter方法需要对属性一一赋值和取值,可以利用方法来实现一次赋值.setter和getter方法只有一个参数,下面不是getter方法和setter方法例如:
-(void)setName:(NSString *)name Age:(int )age Gender:(NSString *)gender
{
_name=name;
_age=age;
_gender=gender;
}
--------------------------------------------------
方法名是:setName:Age:Gender: 中间不带空格.
+(int)test;
-(int)test;可以同时存在,属于不同的方法.
--------------------------------------------------
类的初始化方法:
初始化方法只能调用一次, 在创建对象的时候调用
是一个实例方法 返回id类型 以init开头
初始化方法的作用是:创建对象的同时给对象赋初值
例如:
-(id)initWithName:(NSString *)name Age:(int)age Gender:(NSString *)gender
{
//一句话,谁污染谁治理,父类要自己初始化自己的实例变量,子类继承的时候只需实现自己的实例变量
if (self=[super init]) //父类初始化父类的实例变量,自己的变量自己初始化
{
_name=name;
_age=age;
_gender=gender;
}
return self;
}
初始化注意事项:
第一步,调用父类的初始化方法,为继承过来的变量赋初值
第二步,为自己独有变量赋初值
第三步,返回对象
最后:便利构造器
便利构造器返回值id, 是类方法,以类名开头.
+(id)personWithName:(NSString *)name age:(int)age gender:(NSString *)gender
{
return [[Person alloc] initWithName:name Age:age Gender:gender];
}
Object-C 基础笔记2--方法的更多相关文章
- Object C学习笔记10-静态方法和静态属性
在.NET中我们静态使用的关键字static有着举足轻重的作用,static 方法可以不用实例化类实例就可以直接调用,static 属性也是如此.在Object C中也存在static关键字,今天的学 ...
- 【Java基础之Object类(一)】Java中Object类中的所有方法(toString、equals、hashCode、clone、finalize、wait和notify等)详解(转载)
java中的hashcode.equals和toString方法都是基类Object的方法. 首先说说toString方法,简单的总结了下API说明就是:返回该对象的字符串表示,信息应该是简明但易于读 ...
- 【java基础】java中Object对象中的Hashcode方法的作用
以下是关于HashCode的官方文档定义: hashcode方法返回该对象的哈希码值.支持该方法是为哈希表提供一些优点,例如,java.util.Hashtable 提供的哈希表. hashCode ...
- Java基础笔记 – Annotation注解的介绍和使用 自定义注解
Java基础笔记 – Annotation注解的介绍和使用 自定义注解 本文由arthinking发表于5年前 | Java基础 | 评论数 7 | 被围观 25,969 views+ 1.Anno ...
- C#面试题(转载) SQL Server 数据库基础笔记分享(下) SQL Server 数据库基础笔记分享(上) Asp.Net MVC4中的全局过滤器 C#语法——泛型的多种应用
C#面试题(转载) 原文地址:100道C#面试题(.net开发人员必备) https://blog.csdn.net/u013519551/article/details/51220841 1. . ...
- C#基础笔记(第十天)
C#基础笔记(第十天) 1.字段.属性.方法.构造函数字段:存储数据属性:保护字段,对字段的取值和设值进行限定方法:描述对象的行为构造函数:初始化对象(给对象的每个属性依次的赋值)类中成员,如果不加访 ...
- JavaScript基础笔记集合(转)
JavaScript基础笔记集合 JavaScript基础笔记集合 js简介 js是脚本语言.浏览器是逐行的读取代码,而传统编程会在执行前进行编译 js存放的位置 html脚本必须放在&l ...
- Csharp 基础笔记知识点整理
/* * @version: V.1.0.0.1 * @Author: fenggang * @Date: 2019-06-16 21:26:59 * @LastEditors: fenggang * ...
- JavaScript基础——JavaScript语法基础(笔记)
JavaScript语法基础(笔记) 1.语言编码 JavaScript语言建立在Unicode字符集基础之上,因此脚本中,用户可以使用双字节的字符命名常量.变量或函数等. [示例] var 我=&q ...
- [C#] C# 基础回顾 - 匿名方法
C# 基础回顾 - 匿名方法 目录 简介 匿名方法的参数使用范围 委托示例 简介 在 C# 2.0 之前的版本中,我们创建委托的唯一形式 -- 命名方法. 而 C# 2.0 -- 引进了匿名方法,在 ...
随机推荐
- eclipse 下面的folder,source folder,package的区别与作用
首先明确一点,folder,source folder,package都是文件夹,既然是文件夹,那么任何的文件都可以往这三种文件夹下面的放.1.他们的区别folder就是普通的文件夹,它和我们wind ...
- [转]ebkit内核浏览器的Linear Gradients (线性渐变)
转自:http://www.css88.com/archives/tag/webkit-gradient webkit内核的safari. Chrome的Linear Gradients (线性渐变) ...
- HDU----(2157)How many ways??(快速矩阵幂)
How many ways?? Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)T ...
- DOM操作 append prependTo after before
通过JavaScript可以很方便的获取DOM节点,从而进行一系列的DOM操作.但实际上一般开发者都习惯性的先定义好HTML结构,但这样就非常不灵活了. 试想下这样的情况:如果我们通过AJAX获取到数 ...
- log4j配置文件的详解
1.配置根Logger,其语法为: log4j.rootLogger = [ level ] , appenderName, appenderName, … 其中,level 是日志记录的优先级,分为 ...
- 51nod 1613翻硬币
题目链接:51nod 1613 翻硬币 知乎上的理论解法http://www.zhihu.com/question/26570175/answer/33312310 本题精髓在于奇偶性讨论. 若 n ...
- Nodejs异步异常处理domain
前言 程序开发中,最麻烦的事情之一就是异常处理:对于Nodejs程序开发,最麻烦的事情莫过于异步异常处理. 以MVC的多层架构设计角度,异常总是要一层一层向上抛出,最后在客户端出打印错误.但是,Nod ...
- svn 备份后双机同步热备失效,提示 W200007 target server does not support atomic revision property edits svynsync:E170009
svn 备份后双机同步热备失效,提示 W200007 target server does not support atomic revision property edits; consider u ...
- SendMessage函数的常用消息及其应用大全
来源:http://www.360doc.com/content/09/0814/10/19147_4907488.shtml,非常全面的解释. 文本框控件通常用于输入和编辑文字.它属于标准 Wind ...
- Jmeter中的几个重要测试指标释义
一.基本概念 1.测试计划是使用 JMeter 进行测试的起点,它是其它 JMeter 测试元件的容器. 2.线程组:代表一定数量的并发用户,它可以用来模拟并发用户发送请求.实际的请求内容在Sampl ...