一,了解继承

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--方法的更多相关文章

  1. Object C学习笔记10-静态方法和静态属性

    在.NET中我们静态使用的关键字static有着举足轻重的作用,static 方法可以不用实例化类实例就可以直接调用,static 属性也是如此.在Object C中也存在static关键字,今天的学 ...

  2. 【Java基础之Object类(一)】Java中Object类中的所有方法(toString、equals、hashCode、clone、finalize、wait和notify等)详解(转载)

    java中的hashcode.equals和toString方法都是基类Object的方法. 首先说说toString方法,简单的总结了下API说明就是:返回该对象的字符串表示,信息应该是简明但易于读 ...

  3. 【java基础】java中Object对象中的Hashcode方法的作用

    以下是关于HashCode的官方文档定义: hashcode方法返回该对象的哈希码值.支持该方法是为哈希表提供一些优点,例如,java.util.Hashtable 提供的哈希表. hashCode  ...

  4. Java基础笔记 – Annotation注解的介绍和使用 自定义注解

    Java基础笔记 – Annotation注解的介绍和使用 自定义注解 本文由arthinking发表于5年前 | Java基础 | 评论数 7 |  被围观 25,969 views+ 1.Anno ...

  5. C#面试题(转载) SQL Server 数据库基础笔记分享(下) SQL Server 数据库基础笔记分享(上) Asp.Net MVC4中的全局过滤器 C#语法——泛型的多种应用

    C#面试题(转载) 原文地址:100道C#面试题(.net开发人员必备)  https://blog.csdn.net/u013519551/article/details/51220841 1. . ...

  6. C#基础笔记(第十天)

    C#基础笔记(第十天) 1.字段.属性.方法.构造函数字段:存储数据属性:保护字段,对字段的取值和设值进行限定方法:描述对象的行为构造函数:初始化对象(给对象的每个属性依次的赋值)类中成员,如果不加访 ...

  7. JavaScript基础笔记集合(转)

    JavaScript基础笔记集合   JavaScript基础笔记集合   js简介 js是脚本语言.浏览器是逐行的读取代码,而传统编程会在执行前进行编译   js存放的位置 html脚本必须放在&l ...

  8. Csharp 基础笔记知识点整理

    /* * @version: V.1.0.0.1 * @Author: fenggang * @Date: 2019-06-16 21:26:59 * @LastEditors: fenggang * ...

  9. JavaScript基础——JavaScript语法基础(笔记)

    JavaScript语法基础(笔记) 1.语言编码 JavaScript语言建立在Unicode字符集基础之上,因此脚本中,用户可以使用双字节的字符命名常量.变量或函数等. [示例] var 我=&q ...

  10. [C#] C# 基础回顾 - 匿名方法

    C# 基础回顾 - 匿名方法 目录 简介 匿名方法的参数使用范围 委托示例 简介 在 C# 2.0 之前的版本中,我们创建委托的唯一形式 -- 命名方法. 而 C# 2.0 -- 引进了匿名方法,在 ...

随机推荐

  1. java synchronized类锁,对象锁详解(转载)

    觉得还不错 留个记录,转载自http://zhh9106.iteye.com/blog/2151791 在java编程中,经常需要用到同步,而用得最多的也许是synchronized关键字了,下面看看 ...

  2. javaSE基础之记事本编程

    首先安装好jdk和jre,之后进行如下操作: 1. 将代码记事本---->cmd--->javac 文件名.java ----->java 文件名 如图: 2. 关于记事本文件属性的 ...

  3. hiphop-php 搭建 (CentOS)

    前提:只支持64位系统 升级GCC: https://github.com/jackywei/HOW-TO-BUILD-HHVM-WiKi/wiki/Build-&-Install-GCC4. ...

  4. soapUI快速入门(测试一个登录接口)

    1.打开soapUI. 2.新建一个项目,实例如下: 点击ok后在soapUI界面左侧会显示出此项目,如图: 2.创建测试用例: a.新建用例组,选择此项目右键,新建一个用例组,如下图: 用例组创建好 ...

  5. abap注意

    1.建表的时候所有的数据元素的总长度不能超过1024. 2.表的主键修改在se11激活不成功,但是可以在se11保存,然后到se14中激活. 3.SM12解锁,在很多时候,经常出现某个表或者可修改的地 ...

  6. mysql 游标取值为空的问题

    DELIMITER $$ DROP PROCEDURE IF EXISTS updatePic $$ CREATE PROCEDURE updatePic() BEGIN DECLARE cover_ ...

  7. changepassword.c 0.9:一个通过WEB界面更改LINUX用户密码的程序

    偶然看到一个用C语言写的CGI程序,可以以WEB界面(无需单独再写HTML)的方式修改用户自己的密码.该程序具有同时修改samba及squid密码的能力. 步骤: 1.下载并解压,并读一下README ...

  8. HBase vs. BigTable Comparison - HBase对比BigTable

    HBase vs. BigTable Comparison HBase is an open-source implementation of the Google BigTable architec ...

  9. hihocode ---1032

    #include<iostream> #include<cstring> #include<cstdio> using namespace std; + ; ]; ...

  10. 【codevs1036】商务旅行 LCA 倍增

    1036 商务旅行  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题目描述 Description 某首都城市的商人要经常到各城镇去做生意,他们按自己的 ...