oc中的oop基础及类的基本介绍
- 类(class):表示一组对象数据的结构体,对象通类来得到自身。类名首字母大写。
- 对象(objcet):是一种包含值和指向其类的隐藏指针的结构体。运行中的程序中通常会有n个对象,首字母不用大写。
- 实例(instance):是对对象的另一种称呼。
- 消息(message):是对象执行的操作,用于通知对象去做什么。对象接收到消息后,将查询相应的类,来执行正确的代码运行程序。
- 方法(method):j是为响应消息而运行的代码,这个以后在oop中会很常用。根据类的对象或消息来调用不用的方法。
- 方法调度(method dispatcher):是oc中的一种机制,用于推测执行什么方法以响应某个特写的消息。
- 接口(interface):以类为对象提供的特性描述。这种以后是常用,涉及多个方面(继承,coco代码的类描述等)
- 实现(implementation):有了类,有了接口,有了方法,就需要实现。
#import <Foundation/Foundation.h>
//绘图类,用来分析oop中 @interface HuiTu : NSObject
{
//参数或变量要写在{}中,这里是公有的,如果要写私有的就不要写在描述文件中,直接写在.m的文件中 NSString *_yanse;//coco代码,表示指针类型
NSString *_xingzhuang;
}
//这里写方法
//得到颜色
-(void) GetYanse:(NSString*) yanse;
//得到形状
-(void) GetXingZhuang:(NSString*) xingzhuang;
//绘制
-(void)HuiZhi;
@end
- 我们看到第一行的#import <Foundation/Foundation.h>,这里是引入文件,和C#中的命名空间是一个样子的,笔者专业是C#,这里就和C#进行对比;
- @interface HuiTu : NSObject:接口,继承哪个基类,这里我们看到是nsobject,初学者就不要去手动更改。
- {....}这对花括号中的代码,就是类的成员变量,这里不能是私有的,如果要写成私有的,直接在.m文件中写,这里只能是公共和受保护的(未验证)
- 方法要写到{}花括号的外面;我们注意到,方法的开头有个-和+,这两个分别代表类两种不同的意思,其中“-”代码方法声明,调用时要实例化类才可以;而“+”代表类的方法,和c#中的静态方法(static)一样不需要实例化类,直接就可以调用;
- (void)这里代表希望这个方法返回的值,这里是不返回值,如果要返回值就可以写(NSString/int)等根据自己的需要来写上。
- 今天就到这里,明天继续.oc中的类实例化和c#中的还是有一定的区别,初接触,有点蒙圈。
- 声明多个参数的类,用:隔开,不是,号
- -(void)zhuanghuan:(int*)a :(int*)b;-(void)zh:(int)a :(NSString*)n : (int)c;
oc中的oop基础及类的基本介绍的更多相关文章
- 【《Objective-C基础教程 》笔记ch03】(四)OC中的OOP
一.声明类接口步骤: 1.声明一个类接口,使用@interfacekeyword加上类名称. 2.用 { 实例变量 } 来定义各种数据成员. 3.方法声明,採用中缀符语法声明一个c函数,用到了冒号 ...
- OC基础--常用类的初步介绍与简单使用之NSDate
一.创建一个时间 NSDate *date = [NSDate date]; // 打印出的时间是0时区的时间(北京--东八区) NSLog(@"%@",date); 二.日期格式 ...
- OC基础--常用类的初步介绍与简单实用之集合类
集合类的异同点 一.NSArray\NSMutableArray *有序 *快速创建(只有不可变数组可以):@[obj1, obj2, obj3]; *快速访问元素:数组名[i] *只能存放对象 二. ...
- OC基础--常用类的初步介绍与简单实用之NSString
一.NSString:不可变字符串/NSMutableString:可变字符串 1>字符串的常用创建方式: (1)NSString *s1 = @"Chaos"; (2)NS ...
- OC中的私有变量和description
.OC中的私有变量 在类的实现即.m @implementation中也可以声明成员变量,但是因为在其他文件中通常都只 是包含头文件而不会包含实现文件,所以在.m文件中声明的成员变量是@private ...
- 如何在swift中实现oc中的分类
在oc中为了增强已有类的功能,我们经常使用分类.使用分类,我们可以在不破坏原有类的结构的前提下,对原有类进行模块化的扩展. 但是在swift中没有分类这种写法了.相对应的是swift中只有扩展(Ext ...
- OC基础--OC中的类方法和对象方法
PS:个人感觉跟C#的静态方法和非静态方法有点类似,仅仅是有点类似.明杰老师说过不要总跟之前学过的语言做比较,但是个人觉得,比较一下可以加深印象吧.重点是自己真的能够区分开! 一.OC中的对象方法 1 ...
- [BS-18] 对OC中不可变类的理解
对OC中不可变类的理解 OC中存在很多不可变的类(如NSString,NSAttributedString,NSArray,NSDictionary,NSSet等),用它们创建的对象存在于堆内存中,但 ...
- oc语言学习之基础知识点介绍(二):类和对象的进一步介绍
一.类.对象在内存中的存储 /* 内存分区: 栈:局部变量 堆:程序员自己写代码申请开辟的 程序员自己维护,编译器现在帮我们自动优化了,它在合适的给我们加上了释放空间的语句,所以我们现在写的对象不会造 ...
随机推荐
- Python练习-生成器、迭代器-2018.12.01
如果列表元素可以按照某种算法推算出来,可以在循环的过程中不断推算出后续的元素.这样就不必创建完整的list,从而节省大量的空间.在Python中,这种一边循环一边计算的机制,称为生成器:generat ...
- [leetcode]56. Merge Intervals归并区间
Given a collection of intervals, merge all overlapping intervals. Example 1: Input: [[1,3],[2,6],[8, ...
- IOS Javascript Date的坑
Date对象是JavaScript提供的日期和时间的操作接口,它有多种用法.手册上或者网上也有很多文章介绍,这里就不再次复述了. 上次遇到一个坑,这里总结下,也不是什么大问题,若是如果有经验,就不会花 ...
- CentOS No package nginx available.
CentOS No package nginx available. yum install epel-release 如果不行 https://blog.csdn.net/u012965373/ar ...
- 代码之髓读后感——名字&作用域&类型
名字和作用域 为什么要取名 看着代码中遍地都是的变量,函数,或多或少的我们都应该想过,为什么会有这些名字呢? 我们知道,计算机将数据存储到对应的物理内存中去.我们的操作就是基于数据的.我们需要使用这些 ...
- Python3实战系列之九(获取印度售后数据项目)
项目现状:已经部署在服务器上并正常运行了. 1.服务器上的部署 2.下载到服务器的文件列表 3.转存在到数据库SQL Server中的数据 项目总结:这次项目采用python来实现,刚开始还是有点担忧 ...
- Linux学习笔记:Tomcat安装与使用
Tomcat是一个Servlet容器服务器,用java实现的. 目录结构 Tomcat的安装也很简单,从官网下载安装包.解压后的tomcat目录 apache-tomcat-7.0.92 下的子目录为 ...
- django的母板系统
一.母板渲染语法 1.变量 {{ 变量 }} 2.逻辑 {% 逻辑语 %} 二.变量 在母板中有变量时,母板引擎会去反向解析找到这个传来的变量,然后替换掉. .(点),在母板中是深度查询据点符,它的查 ...
- 我的第一个python爬虫
我的第一个爬虫,哈哈,纯面向过程 实现目标: 1.抓取本地conf文件,其中的URL地址,然后抓取视频名称以及对应的下载URL 2.抓取URL会单独写在本地路径下,以便复制粘贴下载 废话补多少,代码实 ...
- Kaldi如何准备自己的数据
Introduction 跑完kaldi的一些脚本例子,你可能想要自己用Kaldi跑自己的数据集.这里将会阐述如何准备好数据. run.sh较上的部分是有关数据准备的,通常local与数据集相关. 例 ...