OC基础语法(1)—类和对象OC基础语法…
01-第一个OC程序
// main.m #include #import #import "One.h" #import "Two.h" // OC和C语言一样程序一启动都会执行main函数 int main(int argc, const char * argv[]) { printf("hello world\n"); NSLog(@"oc Hello world"); NSLog(@"222222"); // 调用OC源文件中的函数 test(); // 调用C源文件中的函数 test2(); return 0; } // One.h void test(); // One.m #import void test() { printf("aaabbbccc\n"); } // Two.h #ifndef _1____OC___Two_h #define _1____OC___Two_h void test2(); #endif // Two.c #include void test2() { printf("test2 .. "); } |
软件编程实质
• 软件编程就是将我们的思维转变成计算机能够识别语言的一个过程 |
理解面向对象
• 面向对象是相对面向过程而言 • 面向对象和面向过程都是一种思想 • 面向过程 – 强调的是功能行为 – 关注的是解决问题需要哪些步骤 • 面向对象 – 将功能封装进对象,强调具备了功能的对象 – 关注的是解决问题需要哪些对象 • 面向对象是基于面向过程的。 |
面向对象和面向过程区别
• 把衣服放进洗衣机 • 打开洗衣机 • 放进去衣服 • 关闭洗衣机 • 洗衣机-打开 • 洗衣机-存储 • 洗衣机-关闭 |
现实生活中我们是如何应用面相对象思想的
• 想打电话\发短信 • 去饭店吃饭 • 汽车坏了 • 买电脑 • 包工头 • 女朋友 • 面试 |
面向对象的特点
• 是一种符合人们思考习惯的思想 • 可以将复杂的事情简单化 • 将程序员从执行者转换成了指挥者 • 完成需求时: – 先要去找具有所需的功能的对象来用。 – 如果该对象不存在,那么创建一个具有所需功能的对象。 – 这样简化开发并提高复用。 补充:面向对象的核心就是对象,那怎么创建对象? OC中创建对象比较复杂首先要理解一个概念叫做类. 现实生活中是根据一份描述,一份模板创建对象,编程语言也一样,也必须先有一份描述, 在这个描述中说清楚将来创建出来的对象有哪些属性和行为 |
类与对象的关系
• 使用计算机语言就是不断的在描述现实生活中的事物。 • OC中描述事物通过类的形式体现,类是具体事物的抽象,概念上的定义。 • 对象即是该类事物实实在在存在的个体 补充:现实生活的例子:如何创造汽车对象? 需要先有汽车的建造图纸,图纸上描述清楚汽车应该具备的属性和功能 然后再根据图纸上的描述生成汽车 每一辆汽车都是对象,都有自己具体的属性值,都是图纸的实例 图纸是抽象的,房子是具体的。图纸是对房子对象的高度概括 |
类与对象(图例)
补充: OC中的类相当于图纸,用来描述一类事物。也就是说,要想创建对象,必须先有类 OC利用类来创建对象,对象是类的具体存在 因此,面向对象解决问题应该是先考虑需要设计哪些类,再利用类创建多少个对象 |
类的定义
• 生活中描述事物无非就是描述事物的名称/属性和行为。 – 如:人有身高,体重等属性,有说话,打架等行为。 • OC中用类来描述事物也是如此 – 属性:对应类中的成员变量。 – 行为:对应类中的成员方法。 • 定义类其实在定义类中的成员(成员变量和成员方法) • 一般名词都是类(名词提炼法) – 坦克发射3颗炮弹轰掉了2架飞机 – 小明在公车上牵着一条叼着热狗的狗 • 拥有相同(或者类似)属性和行为的对象都可以抽像出一个类 补充: 类的设计,只关心3样东西: 事物名称(类名):人(Person) 属性:身高(height)、年龄(age) 行为(功能):跑(run)、打架(fight) • |
找类-三个例子
愤怒的小鸟游戏界面 植物大战僵尸 超级马里奥 |
找对象-美团
类名、属性、行为练习
• 僵尸、 • 炮弹、 • 车、 • 学生、 • 书本 |
02-第一个OC类
// 如何声明类、实现类、定义对象、用对象访问成员及具体细节 // 类中方法的声明和实现 #import //如何定义一个OC类 //完整的定义一个函数分为两部分:函数的声明,函数的实现(函数定义) //完整的定义一个类分为两部分:类的声明,类的实现 typedef enum { // K + 枚举名称 + 含义 kIColorBlack,// 黑色 KIColorWhite// 白色 }IColor; //1.类的声明 //@interface @end之间写类的声明,@end是用来告知什么时候声明结束 //声明类的属性,行为 //:NSObject为了让类具备创建对象的能力 @interface Iphone :NSObject { // 写public是为了让外面的指针能够访问对象中的成员变量 @public//公开成员变量 // 所有的属性必须写在这个括号当中 // 成员变量有默认的初始化值 int _cpu;// 手机cup float _size;// 尺寸 IColor _color;// 颜色 } // OC方法的定义 //void function(); //方法名/参数/返回值类型 - (void)aboutMyPhone; //收到短信 //char* receiptMessage(); - (char *)recepitMessage; //void sendSignal(char *number); //当方法有参数的时候必须在参数类型前面加上一个冒号 //冒号也是方法名的一部分 sendSignal: //-号不是方法名的一部分 //- (void)sendSignal; - (void)sendSignal:(char *)number; // 苹果提倡我们把方法名写的像句子一样 - (void)sendMessageWithNumber:(char *)number andMessageContent:(char *)content; @end//初学者注意一定要有end //2.类的实现 //主要用来实现声明当中的方法,说清楚方法当中要干什么 @implementation Iphone - (void)aboutMyPhone { NSLog(@"查看手机信息"); } - (char *)recepitMessage { // return "老婆今天我去做大宝剑\n"; return "wife is god\n"; } - (void)sendSignal:(char *)number { NSLog(@"拨打电话给 %s\n", number); } - (void)sendMessageWithNumber:(char *)number andMessageContent:(char *)content { NSLog(@"发短信给 %s ,内容是 %s", number, content); } @end int main(int argc, const char * argv[]) { // 在OC当中如果想执行一些行为,就立刻写上[类名/对象 方法名称] [方法调用者 方法名称] // >用类名调用的是类方法 // >用对象调用的是对象方法 // 指针类型 *指针变量名称 // 定义了一个指针变量p指向了Iphone类型的对象 // 保存了对象指针地址的变量,我们就可以把它叫做某个对象 Iphone *p;//p 是局部变量 p = [Iphone new];// new操作它会在堆内存中分配存储空间 // 要给对象中的成员变量赋值和结构体一样 // OC中想要操作一个对象的属性或者行为(方法),必须通过指针类操作 p->_cpu = 2; p->_size = 3.7; p->_color = kIColorBlack; // 取出p指向对象中的属性 // int number = p->_cpu; // printf("number = %d\n", number); // NSLog(@"cpu = %d, size = %.1f, color = %d", p->_cpu, p->_size, p->_color); // 每new一次都会重新开辟一块存储空间 // 互不干扰,一份类可以创建无数个对象 Iphone *p2; p2 = [Iphone new]; p2->_cpu = 4; p2->_size = 4; p2->_color = KIColorWhite; // 利用对象调用对象方法 // 调用方法再OC当中称之为"发送消息" // [p2 aboutMyPhone]; // char *message = [p2 recepitMessage]; // NSLog(@"%s", message); // // NSLog(@"123"); // [p2 sendSignal:"12306"]; // [p2 sendMessage:"10010" :"xxoo"]; // [p2 sendMessage: |
OC基础语法(1)—类和对象OC基础语法…相关推荐
- OC基本语法、类和对象、三大特性
第一讲 OC简介及基本语法 Objective-C简称OC是在C语言的基础上,增加了一层最小的面向对象语法,完全兼容C语言,也就是可以在OC代码中混入C语言代码,甚至是C++代码.可以使用OC ...
- Python入门基础(6)--面向对象/类和对象/魔术方法
面向对象基本概述 面向对象(Object Oriented Programming,OOP)编程:扩展性更强.可读性更好.面向对象的编程将数据和操作数据封装到对象中,组织代码和数据的方式更接近人的思维 ...
- Objective-c:OC语言简介、类与对象
Objective-c 简介 1.1980年代初,Brad Cox发明了Objective-C: 2.1985年乔布斯成立了NeXT公司,创建了NextSTEP,使用Objective-C开发的用户界 ...
- 【Java基础】Java类和对象
文章目录 一.什么是类和对象? 1.类的定义及可用关键字 2.成员变量的定义和声明 3.面向对象的三大基本特征 3.1封装性 3.2 继承性 3.3多态性 二.创建对象的几种方法 1.显式创建对象 2 ...
- Python编程基础16:类和对象
文章目录 零.本讲学习目标 一.面向对象 (一)程序员"面向对象" (二)两种编程思想实现五子棋 (三)面向过程 vs. 面向对象 (三)面向对象三大特点 1.封装(encapsu ...
- Java基础笔记_6_类和对象_成员变量
一 类和对象 类是抽象的概念,是对象的模板 对象是具体的事物,是类的具体实例 创建类的语法 public class 类名{ // 类内容 } 创建对象的语法 new 关键字就是实例化对象的意思.& ...
- python用来初始化对象属性的是_猪行天下之Python基础——8.1 类与对象
内容简述: 1.面相对象的理解 2.类与对象 3.继承 4.组合 5.对象相关的内置函数 1.面相对象的理解 考虑到部分读者可能没有接触过面向对象编程,所以先介绍下面向对象的一些特征,形成一个面向对象 ...
- java类和对象的基础特性
目录 点击传送>>> 前言: 1.面向对象概述 2.类和对象 1.对象 2.类 3.类的定义格式 1.成员变量(静态部分) 2.成员方法(动态部分) 3.实例化 3.权限修饰符 1. ...
- (四)nodejs循序渐进-函数,类和对象(基础篇)
上一篇文章讲到了基本数据类型和运算符,相信大家都能做简单的运算,本篇文章将讲述函数,类,对象. 函数 在nodejs中,一个函数可以作为另一个函数的参数.我们可以先定义一个函数,然后传递,也可以在传递 ...
最新文章
- hibernate 继承映射
- springmvc二十七:springmvc-ResponseBody与ResponseEntity
- 【mysq】远程访问权限(允许远程连接)
- 浏览器的headers
- Opencv SolvePnP调用实战
- sql server高级查询,看这篇文章就够了
- ServerSocketChannel API用法
- 【操作系统】实验 模拟操作系统的存储系统
- 为什么微服务化、数据仓库都不是中台?
- springboot 2.x 使用定时任务执行多次问题
- 十多年前国内的三大杀毒软件瑞星、江民和金山毒霸的现状如何?
- 【全家福】多项式的各种板子
- js无限分级 树_js实现无限级树形导航列表效果代码
- vs的windows应用程序上的鼠标为什么一直是加载状态?_了解 JavaScript 应用程序中的内存泄漏...
- [转]小D课堂 - 零基础入门SpringBoot2.X到实战_汇总
- PMP课程笔记:第8章 项目质量管理
- 淘宝口令生成器,批量生成
- SPSS作业-如何判别是否服从正态分布
- 案例:理想主义的猪与结果导向的猪
- STM32自带GB2312字库显示汉字
热门文章
- PyCharmLearningProject学习基础
- Github开源安全工具集合
- 题目62 简易压缩算法
- 点击某个物体人机验证码java,captcha: 行为验证码(滑动拼图、点选文字),前后端(java)交互,包含h5/flutter/uni-app的源码和实现...
- systemd-timesyncd.service 失败 (code=exited, status=127)
- 【微信小程序】使用和风天气接口api(全过程)——获取天气
- python括号匹配o(1)复杂度_Python面试题:使用栈处理括号匹配问题
- 华为5pro计算机没有了,6月21日发布的华为Nova 5系列,已经没有秘密了
- Fluent截取局部面
- python中permute_Pytorch之permute函数