首先,为什么我们要定义一个新类呢?按照我的理解,就是为了抽象出来一个新的东西(也就是类),用来存储更多的数据变量和方法,一切类都直接或间接继承与NSObject。

在类的头文件里我们可以定义成员变量、属性变量、和方法,在方法里又分为实例方法和类方法。

1.成员变量

成员变量可以以三个关键词来修饰,即public、protected、private,用public来修饰的变量为共有的,外部可以访问子类可以继承

用protected来修饰的变量是受保护型的,外部无法访问子类可以继承(成员变量默认为protected);

用private来修饰的变量为私有的,外部无法访问子类无法继承;

2.属性变量

创建一个属性变量系统主要会帮我们做两件事,第一,为这个属性提供一个set方法和一个get方法,第二,会为我们创建一个变量名为“_变量名”

的成员变量。如上,创建的成员变量名为_scholl 和 _score;(property属性还有很多其他知识点,这里不详述,可以参考我的另一篇对于property的一些用法)。

3.实例方法和类方法

实例方法也称对象方法,它必须要用对象去调用这个方法,也就是说要有内存了才能去调用这个方法;

类方法的调用不需实例话,可以直接调用这个方法,也就是说类方法不必占用内存就能调用,类方法通常用于封装一些实现的方法,数据等;

在类方法中不要去调用这个类的成员变量,属性变量和对象方法。

类方法和对象方法的调用区别如下:

最后:必须提醒一下,要在另一个类里面用到这个类的方法或者是变量就必须在那个类中导入这个类的头文件。

OC基础成员变量、属性变量、实例方法与类方法的更多相关文章

  1. OC基础--成员变量的封装

    一.封装的作用: 1.重用 2.不必关心具体的实现 3.面向对象三大特征之一 4.具有安全性 二.OC中成员变量的命名规范以及注意事项 1.命名规范--.成员变量都以下划线“_”开头 1)为了跟get ...

  2. iOS中的成员变量,实例变量,属性变量

    在ios第一版中: 我们为输出口同时声明了属性和底层实例变量,那时,属性是oc语言的一个新的机制,并且要求你必须声明与之对应的实例变量,例如: 注意:(这个是以前的用法) @interface MyV ...

  3. 张超超OC基础回顾04_实例变量修饰(@public),点语法,self关键字,多态,继承

    零.实例变量修饰符 /* @public 就是实例变量修饰符 @public >可以在其它类中访问被public修饰的成员变量 >也可以在本类中访问被public修饰的成员变量 >可 ...

  4. Swift基础之init方法,实例方法,类方法(静态方法)的使用(多标签Demo)

    Xcode更新过后,有些方法都进行了改变,Demo中有变化的都进行了简单的标记,具体以后遇见再说 创建一个UIView类,用init方法创建两种类型,显示多标签,创建静态方法进行调用,创建类方法进行调 ...

  5. 张超超OC基础回顾02_成员变量(属性),局部变量,全局变量的区别

    成员变量: 写在类声明的大括号中的变量, 我们称之为 成员变量(属性, 实例变量) 成员变量只能通过对象来访问 注意: 成员变量不能离开类, 离开类之后就不是成员变量 成员变量不能在定义的同时进行初始 ...

  6. OC中成员属性 成员变量

    比如用property声明一个变量属性 然后我们会为它用懒加载的方式重写get方法 然后我们在使用这个变量的时候,都是用self.itemArray,为什么这样用比较好呢,这是因为self.是对属性的 ...

  7. 四.OC基础--1.文档安装和方法重载,2.self和super&static,3.继承和派生,4.实例变量修饰符 ,5.私有变量&私有方法,6.description方法

    四.OC基础--1.文档安装和方法重载, 1. 在线安装 xcode-> 系统偏好设置->DownLoads->Doucument->下载 2. 离线安装 百度xcode文档 ...

  8. iOS 成员变量,实例变量,属性变量的区别,联系

    在ios第一版中: 我们为输出口同时声明了属性和底层实例变量,那时,属性是oc语言的一个新的机制,并且要求你必须声明与之对应的实例变量,例如: 注意:(这个是以前的用法) @interface MyV ...

  9. Objective-C 基本语法:实例变量与成员变量的区别.l........实例方法和类方法区别

    http://leopard168.blog.163.com/blog/static/16847184420138153296930/ http://blog.csdn.net/thdxs/artic ...

随机推荐

  1. java实现将包含多个<REC>的文件拆成若干只包含一个<REC>的文件

    遍历文件夹里的文件,将包含多个<REC>的文件拆成若干只包含一个<REC>的文件 package com.prepub; import java.io.BufferedRead ...

  2. TZOJ 2703 Cow Digit Game(sg博弈)

    描述 Bessie is playing a number game against Farmer John, and she wants you to help her achieve victor ...

  3. 贪吃蛇(简易版)Leslie5205912著

    # include <stdio.h># include <string.h># include <windows.h># include <stdlib.h ...

  4. [leetcode]149. Max Points on a Line多点共线

    Given n points on a 2D plane, find the maximum number of points that lie on the same straight line. ...

  5. Spark2.0学习(三)--------核心API

    Spark核心API----------------- [SparkContext] 连接到spark集群,入口点. [HadoopRDD] 读取hadoop上的数据, [MapPartitionsR ...

  6. Spring Cloud的概述(二)

    1.什么是spring cloud? spring cloud,基于spring boot提供了一套微服务的解决方案,包括服务的注册与发现,配置中心,全链路监控,服务网管,负载均衡,熔断等组件,除了基 ...

  7. linux RCU机制

    参考资料: https://www.cnblogs.com/qcloud1001/p/7755331.html https://www.cnblogs.com/chaozhu/p/6265740.ht ...

  8. Firefox 调试 JavaScript 代码

    第一步  新建 html 或者 jsp 文件 文件内容 <!DOCTYPE html> <html> <head> <meta charset="u ...

  9. UI行业发展预测 & 系列规划的调整

    又双叒叕拖更了,上一篇还是1月22号更新的,这都3月9号了…… 前面几期把职业规划.能力分析.几个分析用的设计理论都写完了,当然实际工作中用到的方法论不止上面这些,后续会接着学习: 如果你的目标是一线 ...

  10. powershell脚本找修改的文件

    $sourcedir="D:\workspace" $targetdir="E:\newf" $lastdate="2017-05-19" ...