objective c之中的类和实例,方法等基本语法(一)

RT-Thread实战:手把手教你用STM32F04ZGT6通过SPI驱动BMI088(附完整工程) 本文详细介绍了如何使用RT-Thread操作系统在STM32F04ZGT6上通过SPI接口驱动BMI088高性能6轴惯性传感器(包含陀螺仪和加速度计)。从硬件连接到软件配置,再到数据采集与处理,提供了完整的开发指南和优化技巧,帮助开发者快速实现精确的姿态测量功能。 阅读详情

holydancer原创,如需转载,请在显要位置注明:

转自holydancer的优快云专栏,原文地址:http://blog.youkuaiyun.com/holydancer/article/details/7329490


我们知道,在objective c之中是有面向对象的概念的,这也是为什么别人说oc要比c优雅的原因。虽然objective c继承了c的语法习惯等,但是在涉及到面向对象时,语法仍然是很令初学者大为头疼的。


OC下类的创建分为两个部分,一个是类的声明(@interface),一个是类的实现(@implementation),在创建一个类时,我们可以在main.m中 main()方法之前,作出声明与实现,

@interface student :NSObject	//声明开始,类名为student,继承自NSObject类;
{
    @public int age;
    NSString *name;
}			//大括号中为属性;age属性前加@public 是为了能在main()直接赋值。
-(void)study;		//"-"减号代表为成员方法,"+"代表类方法,类似static
@end			//声明结束

@implementation student	//实现开始,后面类名与声明中要一致


-(void)study		//实现方法中仅实现方法。
{
    NSLog(@"我正在学习,我%d岁了",age);
}

@end			//类中方法实现结束。


以上为一个类在main()方法之前简单的定义,然后我们就可以在main()方法中实例该类并设置属性,调用方法。

int main(int argc, const char * argv[])
{

    @autoreleasepool {

        student *student1 = [student new];	//实例该类,生成student1对象	
        student1->age=5;			//@public属性的age可以在此直接赋值
        [student1 study];			//调用该对象中的study方法,输出语句;
       
    }
    return 0;
}




上面是类的简单定义和实现,正常情况下为了程序代码的可操作与维护,都会另建单独的类文件,我们在Xcode中新建一个类后,会自动生成两个文件,一个是以.h为后缀的头文件,一个是以.m为后缀的文件,其中头文件用来存放类文件的声明部分,.m文件用来存储类文件的实现部分,然后在main.m文件中导入该.h头文件就可以正常使用该类。下面我们生成一个teacher类的.h文件:

#import <Foundation/Foundation.h>

@interface teacher : NSObject
{
    int age;
    NSString *name;
    
}
-(void)teach;
-(void)introduce;
-(void)setName:(NSString *)name setAge:(int)age;
//两个参数,一个是NSString *类型,一个是int类型,一定要注意
@end						//结束声明。



然后是.m文件:

#import "teacher.h"		//注意要导入头文件,和声明连接起来。

@implementation teacher
-(void)teach{			
    NSLog(@"我在教你们哦");
}
-(void) setName:(NSString *)n setAge:(int)a{	//此处要注意的是,如果一个方法有两个参数,
    name=n;	//将声明中的形参name,age改成n,a,是为了不冲突,因为OC中没有this概念。
    age=a;	//此处说明声明和实现中的形参名称可以不一致,但一定要对应。
}

-(void)introduce	//一个单纯的无参方法,so cute;
{
    NSLog(@"我叫%@,我今年%d,我正在自我介绍",name,age);
}
@end



下面我们在main()方法中进入类的初始化,属性赋值,方法调用:

#import <Foundation/Foundation.h>
#import "teacher.h"
@interface student :NSObject
{
    @public int age;
    NSString *name;
}
-(void)study;
@end

@implementation student


-(void)study
{
    NSLog(@"我正在学习,我%d岁了",age);
}

@end
int main(int argc, const char * argv[])
{

    @autoreleasepool {
        teacher *teacher1 = [teacher new];	//生成一个teacher类对象:teacher1
        [teacher1 teach];			//调用该对象的teach方法
        [teacher1 setName:@"holydancer" setAge:22];//调用该对象的setName:setAge方法并赋值给对象属性
        [teacher1 introduce];				
       
       
    }
    return 0;
}




得到以上结果,需要注意的还是双参数方法,在上面代码给teacher1的属性赋值时,只调用了一个方法,方法名为:setName:setAge


关键字:objective-c ,objective c , oc ,基本语法,类,实例

SORT算法在遮挡下总跟丢?深入OC-SORT源码,拆解其三大创新点如何解决卡尔曼滤波的顽疾 本文深入解析OC-SORT算法如何通过三大创新点解决多目标跟踪中的卡尔曼滤波顽疾。OC-SORT引入在线平滑虚拟轨迹技术(OOS)、观测中心动量匹配机制(OCM)和基于最后观测的轨迹恢复(OCR),显著提升了遮挡场景下的跟踪性能。实验数据显示,相比传统SORT算法,OC-SORT在MOT17数据集上MOTA提升5.7%,遮挡恢复成功率提高64.2%,为Multi-Object Tracking领域带来突破性进展。 阅读详情

相关推荐

STM32F4系列HAL库配置定时器实验——输入捕获

STM32F4系列HAL库配置定时器实验——输入捕获 输入捕获简单讲解 输入捕获模式可以用来测量脉冲宽度或者测量频率。我们以测量周期和频率为例,用一个简图来说明输入捕获的原理 假定定时器工作在向上计数模式, 图中 t1~t2 时间,就是我们需要测量的高电平时间。测量方法如下:首先设置定时器通道 x 为 上升沿捕获,这样,t1 时刻,就会捕获到当前的 CNT 值,然后立即清零 CNT,并设置通道 x为下降沿捕获,这样到 t2 时刻,又会发生捕获事件,得到此时的 CNT 值,记为 CCRx2。这样,根据定时器

azs0504的博客 9286

Objective-C语法快速参考

Objective-C语法快速参考http://www.cocoachina.com/newbie/tutorial/2009/0611/150.html   Objective-C语法快速入门:http://www.otierney.net/objective-c.html.zh-tw.big5 Objective-C 2.0 新特性一览 – 属性。http://

night_cat的专栏 638

centos7下安装gcc-10.3.0

生成多个系统版本的代码,如果你的操作系统是32位,默认就已经设置为 disable,这时gcc仅能生成32位的可执行程序;这里只开启了c,c++ 和fortran,因为支持的语言越多,就需要安装越多的相应静态与动态库,还有五花八门的依赖库,这会让管理变得困难,体积也会变得庞大。启用posix标准的线程支持,这个设置取决于宿主或目标操作系统的类型,其它可用值有:aix,dec,solaris,win32等,如果你是其它的类UNIX系统,就需要设置相应的值。指定安装路径,这里没有指定,就直接放到文件夹里就好。

lxystar2003的博客 1189

iOS开发核心语言Objective C —— 面向对象思维、setter和getter方法及点语法

本分享是面向有意向从事iOS开发的伙伴们,或者已经从事了iOS的开发者。如果您对iOS开发有极高的兴趣,可以与我一起探讨iOS开发,一起学习,共同进步。如果您是零基础,建议您先翻阅我之前分享的iOS开发分分钟搞定C语言系列,然后在开始Objective C语言的学习,如果您遇到问题也可以与我探讨,另外将无偿分享自己整理的大概400G iOS学习视频及学习资料,都是干货哦!可以新浪微博私信➕关注极客J

求知若渴,虚心若愚,努力前行,未来可期。 2125

UE4打包为Framework库嵌入iOS原生工程

UE4打包为Framework库嵌入iOS原生工程

tangfuling1991的博客 1294

【工业相机】【深度4】线扫描相机 - 选型实践

前言: 在工业相机的深度应用的前三节里面,针对工业相机的选型、参数、应用计算等做了一些说明。期中,在深度3里面,在说明工业相机在速度场景下的应用的时候,专门开了一节介绍线扫描相机行频速度的计算公式和镜头的选型的大致说明,感觉说的还是不够透彻,切应用举例也不充分,这里特别开一个章节,基于线扫描相机的特点对比面阵相机的特点进行比较详细的说明,尤其对线扫描相机的选型实践,尤其是线扫描相机的分辨率选择计算、行频选择计算进行了充分的说明和计算说明,希望能够给用到线扫描工业相机的同学给予一定的参考: 阐述: 在编

山云的专栏 2万+

Objective-C 30分钟入门教程

Objective-C 30分钟入门教程 我第一次看OC觉得这个语言的语法有些怪异,为什么充满了@符号,[]符号,函数调用没有()这个,但是面向对象的高级语言也不外乎类,接口,多态,封装,继承等概念。下面会把OC里面的一些定义与Java,C++作对比,让有其他面向对象语言的同学可以快速的了解OC是个神马语言。 1.类定义 类用@interface定义,而不是@class,相当于Java中的c...

weixin_30488313的博客 766

openclaw本地模型对接

使用是官方推荐的一种集成方式,它可以简化配置过程。但由于您的系统环境和之前复杂的配置历史,我为您梳理了一个核心流程,并增加了关键的“事后检查”步骤,以确保能从根本上解决问题。

suny8的专栏 2460

Objective-C常用方法整理

对于开发而言,每个人都有属于自己的一套开发工具类和一套开发组件库,以下我整理了部分内容,具体的方法声明就不写了,只写方法实现,具体内容可查看文章结尾附件。 //对象转字典 + (NSDictionary*)getObjectData:(id)obj { NSMutableDictionary *dic = [NSMutableDictionary dictionary]; uns

yc081323的博客 806

Yocto开发讲解系列 - 总目录

Yocto开发讲解系列总纲Yocto开发专栏前言

fulinux的博客 3万+

Spring AI 项目实战(五):Spring Boot + AI + DeepSeek + Redis 实现聊天应用上下文记忆功能(附完整源码)

本文介绍了如何基于Spring Boot 3.2、Spring AI 1.0.0-M4、DeepSeek API和Redis构建具备上下文记忆功能的智能聊天应用。项目采用现代化技术栈,包括Java 17、Maven、Lombok等,实现了智能对话、会话管理、异常处理等核心功能。文章详细讲解了环境搭建、配置管理(含Redis和AI服务集成)、核心组件设计(如消息实体、控制器和服务层实现),以及完整的项目结构。该项目提供了美观的Web界面和REST API,支持对话上下文存储(通过Redis实现)和系统监控,可

博客 829

Objective-C语言的语法

在Objective-C中,方法是类的核心组成部分。方法的定义使用表示实例方法,表示类方法。以下是一个简单的实例方法的定义:@end");@end```在Objective-C中,类是对象的蓝图。类由@interface和两个部分组成。如下所示:@end@end```Objective-C是一种强大的编程语言,通过结合C语言的高效性和Smalltalk的面向对象特性,成为苹果生态系统中的核心语言。

2401_90032315的博客 1702

SAP资产模块(FI-AA)与总账(FI-GL)数据不一致是财务顾问和会计人员最常遇到的棘手问题之一

SAP资产模块(FI-AA)与总账(FI-GL)数据不一致问题主要源于四大原因:1)违规手工记账(最常见),直接通过总账录入资产科目凭证而未通过资产模块;2)折旧运行问题,包括执行失败、跨年度问题或配置冲突;3)主数据与配置错误,如科目确定或折旧键设置不当;4)业务流程遗漏,如单据未生成凭证或汇率差异。解决方案包括运行对账报表、检查凭证来源、补跑折旧及核对配置。关键预防措施是坚持"资产模块发起→自动生成凭证→总账审核"的标准流程。

金牌架构师 428

【Objective-C】语法(一)类、实例化、函数(方法)

首先 import 类的定义 @interface XX { } @end注意定义完类要有@end结尾 类的实现 @ implementation XX @end执行函数(行为) 在oc中,执行函数(行为)要有中括号。 比如实例化一个类 [XXX new]为了让类有创建功能,可以让类继承自NSObject @interface XX : NSO

Fried_potatoes的专栏 1446

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Objective-C 学习笔记(二) 类声明,定义,实例,初始化

objective-c 类定义(声明),实现

smilelance的移动开发专栏 7586

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Objective-C语法之Objective-C语言和iOS系统(简介,语法,系统结构)

简介Objective-C,是扩充C的面向对象编程语言。它主要使用于Mac OS Objective-C,通常写作ObjC和较少用的Objective C或Obj-C,是在C的基础上,加入面向对象特性扩充而成的编程语言。目前,Objective-C主要应用于Mac OS X和iOS这两个NeXTSTEP的衍生系统,而在NeXTSTEP和OpenStep中它更是基本语言。Objective-C可以在

空杯子 1万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

【Objective-C学习笔记】基本语法、类与对象

第一部分 基本语法 一、与C语言的区别 1、Objecttive-C是在C语言的基础上添加了面向对象的语法,可以完全兼容C语言语法,源文件为.m文件,在编写代码的时候可以混入C语言。 2、语法预览: #import int main() { NSLog(@"第2个O

dite_water的专栏 905

objective-c类以及方法调用的基本总结

1 类是对象的类型,对象是类的实例 2   成员变量,用来区分同一个类的不同对象。(描述对象的)     静态成员:描述整个类的特征。(描述类的)     非静态成员变量:描述不同对象的特征(描述对象用的)     成员变量可以是各种类型:简单类型、指针、引用、复合类型、其他类     常量成员:必须在创建一个对象的时候,初始化它的常量成员,且常量成员的值不能改变。 3  成员函数:用

4773

Objective-C(一):类的声明和对象创建

想学习IOS开发,就必须要学好objective-c语法。把基础打好就十分重要了。OC语法我是看无限互联的视频教学学习的。看了之后,感觉入门是没什么问题的,感觉学习到什么深度,那就不知道了...   刚学习OC的语法,还是觉得这些语法很别扭,和其他语言有一点区别。我学过C、C++、Java语言,OC对我的印象就是,有C、C++语言的数据类型,但也有很多OC独特的语法

青春的光与影 1779

IOS学习之二:Objective-C基础语法和关键字

对于一门语言得学习,个人觉得最主要得就是其语法格式和那些关键字。 因为对于基本现在大多数得语言,每种语言都是一种符合人思维得方式来与计算机交流。 因此,其实每种语言中定义或是封装好得基础类和类库,其实都是很相似得。 比如 int,double几种基本类型,String,数组,集合以及字典数据类型。 因此你在编程时比如你想以字符串形式和计算机交流,那你很容易就能想到在C中可以使用String

killnono 1万+

Objective-C和C++语法比较

1)实例方法和对象方法 C++语言中,对象方法的写法可能是: void hello(bool ishello) { ...... } C++语言中,类的方法的写法可能是: static void hello(bool ishello) { ...... } 用Objective-C写出来的对象方法就是 -(void) hello:(BOOL)ishello { ...... } 用Objective-C写出来的类方法就是 +(void) hello:(BOOL)ishello { ......

thehunters的专栏 2031
上一篇: 怎样重置MAC开机密码,在原密码忘了的情况下
下一篇: objective c 中的继承和多态简单示意(二)
holydancer
博客等级 码龄15年 474粉丝 59原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值