objective c 调用java_objective-c(三)类与对象的方法调用

本文介绍了Objective-C中类和对象的概念,包括成员变量、属性、方法的使用。讲解了类方法与对象方法的区别,以及在Objective-C中如何声明和调用这些方法。同时提到了成员变量的声明和属性的使用,如nonatomic和assign等关键字的作用。最后,文章对比了Objective-C与Java在方法调用上的差异。
摘要由CSDN通过智能技术生成

在objective-c中,关于类同java有相似的地方,就是也包括成员变量和方法,虽然在叫法上不太一样。但是表达的却是一个意思。创建一个类一般直接创建一个.m文件即可。普通情况下都是有模版自动生成。至于不同是在与方法方法上。

方法修饰词:extern;

说到上面的关键字。想到于public的意思。也就是别的类只要倒入了这个类,就可以调用这个类方法。而如果没有写,在其他类中调用是糟糕的。也就是不安全的不规范的。 但是在是测试的时候没有发现警告或者报错,所以简单记一下即可。

先来说一下一个正常的项目文件。一个类功能需要两个文件组成:.h,.m文件组成。h文件时接口文件,而m文件相当于实现文件。

在类的概念上有成员变量的说法。成员变量的声明需要写在.h的继承后面的大括号内:如下

#import

@interface demo:NSObject{

int temp;

}

@end

上面的temp变量就是成员变量的声明,但是在oc中不推荐直接使用成员变量,大部分情况都使用的是属性,如下

@property (nonatomic,assign) int *temp;

上面的语法是指创建一个属性,这个属性来真正替代成员变量。有点类似于get/set方法;

assign //简单赋值,主要用于基本数据类型

copy //创建一个新的对象,新的对象和旧对象是独立的两个对象

retain //将对象计数器加1

readonly //表示只读属性  只会生成getter方法 不会生成setter方法

readwrite //默认值,表求生成setter和getter方法

nonatomic //非原子访问,不加同步 ,多线程并发访问提高性能 (对多线程的保护,防止在未写完,被另一个线程读取,造成数据错误)

上面只要设置了@property属性。在实现类中就可以直接使用get/set方法。而无需手动创建,只需要在实现类中使用@synthesize标签即可

#import "xing_unit.h"

@implementationxing_unit

@synthesizeflag;or@dynamic flag;

@end

上面需要说明的是,如果使用@synthesize标签会自动创建get/set方法。但是如果使用的是@dynamic标签。则需要手动创建对应的get/set方法

在使用get/set方法时。如下:注意在使用时时对象名,也就是说使用get/set方法必须先实例化对象。

get [对象名 变量名];

set [对象名 set变量名];

关于对象和类的概念,类有可能主要针对的面向过程编程,可以当成工具类的功能,而对象则不同,于java相同。但是在调用方法的时候不同。

在使用类方法时有两种写法。

方法1:

int getNum(int num);

调用:

int tmep = getNum(12);

方法2:

+(int) getNum:(int)num;

调用:

int temp = [类名 getNum:12];

以上的两种方法都是类方法的写法。但是在调用的时候有区别。具体目前没有查到有什么效率问题。可以使用。

对象方法写法如下:

-(int) getNum:(int)num;

调用:

int temp= [对象名 getNum:12];

在oc类中,与java不同。oc中的方法分为类方法和对象方法,编写上在于方法签名的开头使用+/—符号来进行区分,如果换成java,类方法类似于java中的静态方法,即在不实例化类的情况下也能调用。而对象方法则根java中的普通方法一致,实例化后才能使用。

在使用中也可以使用电标记。即使用

对象.属性名

这样的使用有点类似于java直接方法成员变量。所以java使用了private来私有化。在oc中没有。虽然可以使用点标记来访问。但是最好不要使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值