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语言学习之基础知识点介绍(二):类和对象的进一步介绍
一.类.对象在内存中的存储 /* 内存分区: 栈:局部变量 堆:程序员自己写代码申请开辟的 程序员自己维护,编译器现在帮我们自动优化了,它在合适的给我们加上了释放空间的语句,所以我们现在写的对象不会造 ...
随机推荐
- js 加减乘除失精
js 计算失精是因为js 先将10十进制代码转化为2进制,再计算导致 具体解决方案: 1. 加 function accAdd(arg1,arg2){ var r1,r2,m; ].length}} ...
- linux获取当前系统的时间
#include <time.h> #include <sys/time.h> void sysLocalTime(char *str_info) { time_t times ...
- HDU2028
#include <bits/stdc++.h> using namespace std; ; int gcd(int a, int b) { ? b:gcd(b, a%b); } int ...
- google protobuf VC下的使用笔记
1 使用protobuf 2.x 下载地址(3.x 在c++11 vs2017下报错) 源码 https://github.com/google/protobuf 或者直接下载 二进制文件 2 如果下 ...
- 【Java】代理模式、反射机制-动态代理
关于代理模式和动态代理参考自:https://www.cnblogs.com/gonjan-blog/p/6685611.html 这里通过参考博客中的例子整理个人理解. 代理模式: 访问某个类的方法 ...
- linux_文件夹实现挂载(必须在同一网段)
将外部想要挂载传输的目录开启共享文件夹 首先进行安装 yum install nfs-utils rpcbind yum install nfs* 建立想要挂载的目录 查看可以执行挂载的目录有哪些 s ...
- 我的idea突然没有SVN了是怎么回事
总结一下没有svn选项的几种情况: 情况1:IntelliJ IDEA打开带SVN信息的项目不显示SVN信息,项目右键SVN以及图标还有Changes都不显示解决方法 在VCS菜单中有个开关,叫Ena ...
- numpy版本查看以及升降
如题,参考:https://zhuanlan.zhihu.com/p/29026597 pip show numpy 查看numpy版本; pip install -U numpy==1.12.0, ...
- ABP框架系列之四十八:(Specifications-规范)
Introduction Specification pattern is a particular software design pattern, whereby business rules c ...
- NAT 模式下虚拟机安装的centos7 ping主机显示connect: Network is unreachable
在虚拟机下安装的centos7使用的网络是NAT模式,安装成功后ping主机地址显示 Network is unreachable 解决方案: 1)使用ifconfig命令查看网卡信息 2)进入/et ...