OC语言--OC语言基础、类

article/2025/11/6 11:04:13

一、OC语言基础

1>OC文件的扩展名为.m、.c;
2>OC语言完全兼容C语言,即OC语言中可以写C语言;
3>OC语言也可以写C++语言,但是如果要写C++语言,则OC文件扩展名为.mm;
4>OC语言是在C语言的基础上增加了最小层的面向对象语言;

二、OC语言与C语言
这里写图片描述

三、 <#import Foundation/Foundation.h>
1.#import 与#include:

 1> 跟#include一样,拷贝文件的内容;2> 可以自动防止文件的内容被重复拷贝

2.Foundation/Foundation.h

     1>Foundation表示是Foundation框架,Foundation.h成为Foundation框架中的主头文件,此文件中包含了框架中所有其他头文件;2> 主头文件:最主要的头文件,名字一般跟框架名称一样,包含了框架中的所有其他头文件

*四、 OC文件终端运行过程

1> 编写OC源文件:.m、.c
2> 编译:cc -c xxx.m xxx.c
3> 链接:cc xxx.o xxx.o -framework Foundation
(只有用到了Foundation框架才需要加上-framework Foundation)
4> 运行:./a.out

五、OC的BOOL类型

1>BOOL类型其实是char类型,如下:Typedef  signed  char  BOOL
2>BOOL类型中的YES和NO是宏定义,将1、0强制转换成BOOL类型:
#define  Yes  (BOOL)1
#define  NO  (BOOL)0


OC语言面向对象语言,C语言是面向过程语言,面向对象语言中包含两个重要的概念:类和对象。OC利用类来创建对象,对象是类的具体存在。

一、类的设计:
类由类名、属性和行为构成。

1> 类名:类名的第一个字母必须是大写、不能有下划线、多个英文单词,用驼峰标识,例如:Person;
2>属性:属性的命名一般以_开头,例如:int _age;
3>行为:一般小写,如果多个英文单词,采用驼峰标识;
举例:
* 类名:Car
* 属性:wheel、speed
* 行为:run
*

二、完整的类:

 类在内存中只有一份存储空间,在第一次调用类的时候,内存分配存储空间给类,类中只存放方法列表

三、类的声明:

1>类的声明中包含类的属性和行为;

2>类的属性也称为类的成员变量(实例变量),写在大括号中;

3>类的行为也称为类的方法,写在大括号外边,格式:- (返回值类型)方法名:(参数类型)参数名1:(参数类型)参数名2,例如- (void)test; -(int)pow2:(int)num;

4>类的声明格式:

@interface 类名 : NSObject //NSObject目的是:让Car这个类具备创建对象的能力

{ @public //@public可以让外部的指针间接访问对象内部的成员变量

类的属性1;

类的属性2;

}

  • (void)类的行为名称;

  • (返回值类型)类的行为名称:(参数类型)参数;

@end //@interface和@end成对出现

示例:
这里写图片描述
类的声明注意事项:

1> 只要是OC对象的方法,必须以减号 - 开头
2> OC方法中任何数据类型都必须用小括号()扩住
3> OC方法中的小括号():括住数据类型
4> @interface和@end成对出现

四、类的实现:用来实现@inteface中声明的方法
类的实现格式:

@implementation 类的名称- (void)类的方法名称{...}@end

例如:
这里写图片描述

五、Main函数中类的应用

1>在OC中,想执行一些行为,就写上一个中括号[行为执行者 行为名称]
2>创建出一个新对象后会返回新对象本身(新对象的地址)
3>利用类来创建对象

六、类的设计完整代码示例:
类的设计常见错误:

1>@interface和@end中间不能嵌套@implementation和@end
2>方法的声明中不能写实现;
3>方法的声明在{}大括号外面;
4>成员变量在声明时不能初始化,只有对象才有此属性,所以只有对象才能赋值;
5>不能写- static (void)run;

OC方法常见错误

1>方法只有声明,没有实现(经典错误)
2>方法没有声明,只有实现(编译器警告,但是能调用,OC的弱语法)
3>编译的时候:访问没有的成员变量直接报错,访问没有的方法,只是警告

七、函数与方法

 1.对象方法都是以减号 - 2.对象方法的声明必须写在@interface和@end之间对象方法的实现必须写在@implementation和@end之间3.对象方法只能由对象来调用4.对象方法归类\对象所有

函数

 1.函数能写在文件中的任意位置(@interface和@end之间除外),函数归文件所有2.函数调用不依赖于对象3.函数内部不能直接通过成员变量名访问某个对象的成员变量

http://chatgpt.dhexx.cn/article/mv8Vxpk8.shtml

相关文章

OC语言特性

一、分类 1.1做了那些事&#xff1f;&#xff08;关键词&#xff1a;明私、分解、私公开化&#xff09; 声明私有方法&#xff0c;分类头文件放到数组文件.m中&#xff0c;不对外暴露 分解体积庞大的类文件 功能复杂的按功能分类 framework私有方法公开化 1.2特点 &#x…

下载各版本cuda,下载以前版本的cuda

1.打开网址https://developer.nvidia.com/cuda-toolkit-archive 2.下载10.1版本就点击CUDA Toolkit 10.1 3.如图选择自己的版本。 4.打开这个网址就可下载。 5.cd到下载目录&#xff0c;执行sudo sh 文件名 指令 6.移动到continue按enter键确认 7.回复accept 8.不安装驱动 9.安…

Windows下显卡支持的cuda及配套GPU版本pytorch下载全流程(2022.03.27)

Windows下显卡支持的cuda及配套GPU版本pytorch下载全流程&#xff08;2022.03.27&#xff09; 一、更新电脑显卡驱动&#xff08;以mx150为例&#xff09; 1、打开英伟达驱动下载官网&#xff1a;https://www.nvidia.cn/geforce/drivers/ 2、直接下载自动更新程序&#xff0c…

NVIDIA CUDA和cuDNN显卡历代版本下载地址

NVIDIA显卡计算能力一览表 https://developer.nvidia.com/cuda-gpus Halcon图像库支持深度学习&#xff0c;GPU计算能力要求3.0以上 深度学习必备 先安装N卡的显卡驱动--->再安装cuda-->最后安装cuDNN 显卡驱动 1、NVIDIA官方 https://www.nvidia.cn/Download/index…

Windows 下载与安装CUDA和Pytorch【安装教程、深度学习】

参考链接&#xff1a;Windows 下安装 CUDA 和 Pytorch 跑深度学习 - 动手学深度学习v2_哔哩哔哩_bilibili 0.准备工作 请确保你是NVIDIA的显卡&#xff08;不能是AMD、集成显卡&#xff09; 1.下载CUDA 打开developer.nvidia.com/cuda-downloads&#xff0c;打开有点慢 选择…

CUDA下载,以及下载GPU版本的pytorch

一、下载anaconda 因为这步我之前就下好了&#xff0c;主要参考这个链接&#xff1a;史上最全最详细的Anaconda安装教程 二、下载CUDA 1.首先观察自己需要什么版本的CUDA&#xff0c;以及是否安装过CUDA 先cmd&#xff0c;输入命令 nvidia-smi结果如下&#xff0c;所以我们…

[cuda]cuda驱动版本对应+旧版本cuda下载网址

一、背景 本文用于记录在安装cuda时可能需要的网址&#xff0c;留作己用。 二、cuda、nvidia驱动版本对应关系 1. cuda需要的最低驱动版本 2. cuda与对应的驱动版本 三、旧版本cuda下载网址 所有版本的cuda下载地址如下&#xff1a; cuda Toolkit Archive.

下载和安装CUDA和Cudnn(图文详解)

Pytorch环境需要用到CUDA&#xff0c;所以我们要安装CUDA的驱动。这里我安装的是CUDA10.0&#xff0c;对应的Cudnn是7.4.1。 一、下载 CUDA10.0的官网地址&#xff0c;选择好自己所需版本&#xff0c;这里是我推荐的选择&#xff0c;然后点击Download。 cudnn官网地址&#x…

cuda 10.1 下载

最近发现百度到的关于CUDA10.1版本的安装的文章&#xff0c;给的链接已经是10.2版本的了。想找个10.1版本的有点艰难&#xff0c;不过其实官网有历史版本的下载入口的 进入这个地址https://developer.nvidia.com/cuda-toolkit-archive&#xff0c;可以下载旧版本的CUDA 不想去官…

cuda官网下载,本机显卡驱动与cuda、cudnn、pytorch、torchvision安装版本对应表,以及完全卸载CUDA方法

注:如果执行第一步没有找到nvidia-smi指令&#xff0c;重装本机NVIDIA驱动(Linux&#xff0c; Windows 标题中各项版本对应) 重装NVIDIA驱动&#xff0c;选择自己的显卡产品系列和产品编号&#xff0c; 如下图 GeForce RTX 30系列&#xff0c;产品是3080 Ti,系统windows 10 64…

CUDA的下载安装

大家好,下面将进行CUDA的下载安装,下载安装的详细步骤描述如下: (1)CUDA下载 https://download.csdn.net/download/qq_41104871/87462747 (2)CUDA安装 1、首先,需要解压缩下载好的CUDA压缩包,CUDA压缩包如下图所示: 2、解压后,将会获得如下图所示的.exe文件:…

cuda 各个版本下载

目录 cuda各个版本下载&#xff1a; cudnn会列出来对应cuda版本 需要登录&#xff0c;点击更多登录方式&#xff0c;微信登录也可以。 2022.08.10来看&#xff0c;网站还是有效的&#xff1b; cuda各个版本下载&#xff1a; https://developer.nvidia.com/cuda-toolkit-arc…

Cuda11.6 下载与安装[排坑版]

2022年7月份买了一台惠普光影7的笔记本&#xff0c;自带了Win11系统和Cuda 11.6。之前运行在Cuda10上的tensorflow代码在运行过程中调用cuda就会报错。cuda11.6是预装的&#xff0c;还很难替换。重装Win10系统还把电脑干崩了。无奈花钱重装成了原来的系统&#xff0c;下面讲一下…

Windows下载安装cuda10.1详细步骤

第一步&#xff1a;去百度上搜索cuda10.1 第二步&#xff1a;点击Windows&#xff0c;x86_64&#xff0c;10&#xff0c;exe(local)&#xff0c;然后点击Download[2.4G]&#xff0c;即可下载 第三步&#xff1a;安装过程 &#xff08;1&#xff09;双击&#xff1a; &#xff…

系统结构图:最大扇入、扇出数,深度和宽度的区别

1、最大扇入扇出数 最大扇出数&#xff0c;即模块直接调用的下层模块数目&#xff0c;可以看一个模块向下辐射出去的第一层的模块数。 同理&#xff0c;最大扇入数&#xff0c;即模块被直接调用的上层模块最大数目&#xff0c;可以看一个模块向上辐射出去的第一层的模块数。 2、…

GoLang使用Goroutine+Channel实现流水线处理,扇入扇出思想解决流水线上下游供需不平衡

码字不易&#xff0c;转载请附原链&#xff0c;搬砖繁忙回复不及时见谅&#xff0c;技术交流请加QQ群&#xff1a;909211071 目的 在一些业务逻辑场景中&#xff0c; 我们要针对同一批数据依次进行不同的处理&#xff0c;并且它们之间是有先后顺序的。比如我们制造一个手机要经…

mccabe java_面向过程及面向对象的扇入及扇出

面向过程的扇入及扇出&#xff1a; 扇入&#xff1a;是指直接调用该模块的上级模块的个数。即&#xff1a;called by个数 (在McCabe 里度量名称为Fan in) 扇出&#xff1a;该模块直接调用的下级模块的个数。即&#xff1a;calls to 个数(在McCabe 里度量名称为Fan out) 面向对象…

代码静态分析思维体操—扇入、扇出、圈复杂度

静态分析是一种检查代码的方法,无需执行程序。它提供了一种机制,可以审查代码结构、控制流和数据流,检测潜在的可移植性和可维护性问题,计算适当的软件质量测度。 其中控制流分析包括:扇入、扇出和圈复杂度。 常见流程图结构 一种常见的程序分析方法是通过生成程序的有向控…

FPGA Fanout-Fanin(扇入扇出)

在谈到多扇出问题之前&#xff0c;先了解几个相关的信息&#xff0c;也可以当成是名词解释。 扇入、扇出系数 扇入系数是指门电路允许的输入端数目。一般门电路的扇入系数为1—5&#xff0c;最多不超过8。扇出系数是指一个门的输出端所驱动同类型门的个数&#xff0c;或称负载…