概述
在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中没有。虽然可以使用点标记来访问。但是最好不要使用。
最后
以上就是粗暴嚓茶为你收集整理的objective c 调用java_objective-c(三)类与对象的方法调用的全部内容,希望文章能够帮你解决objective c 调用java_objective-c(三)类与对象的方法调用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复