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语言学习之基础知识点介绍(二):类和对象的进一步介绍
一.类.对象在内存中的存储 /* 内存分区: 栈:局部变量 堆:程序员自己写代码申请开辟的 程序员自己维护,编译器现在帮我们自动优化了,它在合适的给我们加上了释放空间的语句,所以我们现在写的对象不会造 ...
随机推荐
- node.js中实现http服务器与浏览器之间的内容缓存
一.缓存的作用 1.减少了数据传输,节约流量. 2.减少服务器压力,提高服务器性能. 3.加快客户端加载页面的速度. 二.缓存的分类 1.强制缓存,如果缓存有效,则不需要与服务器发生交互,直接使用缓存 ...
- JVM总括四-类加载过程、双亲委派模型、对象实例化过程
JVM总括四-类加载过程.双亲委派模型.对象实例化过程 目录:JVM总括:目录 一. 类加载过程 类加载过程就是将.class文件转化为Class对象,类实例化的过程,(User user = new ...
- 跑python用ThinkPad好还是MacBook好?
跑Python,那肯定是服务器操作系统最好,找个方便安装Linux的本子. 我想题主的意图应该是做Python开发吧,如果是Python开发,还要看一下开发方向,如果是网络爬虫.服务器后端编程类的,那 ...
- Netty学习路线总结
序 之前开过品味性能系列.Mysql学习系列,颇为曲高和寡.都是讲理论,很少有手把手深入浅出的文章.不过确实我就这脾气,文雅点的说法叫做"伪雅",下里巴人叫做"装逼&qu ...
- Django获取数据库数据时根据id筛选
filter(id__in=models.Teacher.objects.all()[0:5]) teacher_list = models.Teacher.objects.filter(id__in ...
- 创建.NET core的守护进程
http://www.cnblogs.com/savorboard/p/dotnetcore-supervisor.html
- 如何查出sqlserver 性能瓶颈
转载地址:https://www.cnblogs.com/yanwenbink05/p/4047374.html
- python抢火车票 短信通知
# -*- coding: utf-8 -*- from splinter.browser import Browser from time import sleep import traceback ...
- IOS xib和代码自定义UIView
https://www.jianshu.com/p/1bcc29653085 总结的比较好 iOS开发中,我们常常将一块View封装起来,以便于统一管理内部的子控件. 下面就来说说自定义View的封装 ...
- 走进JDK(四)------InputStream、OutputStream、Reader、Writer
InputStream InputStream是java中的输入流,下面基于java8来分析下InputStream源码 一.类定义 public abstract class InputStream ...