我是靠谱客的博主 粗暴嚓茶,最近开发中收集的这篇文章主要介绍objective c 调用java_objective-c(三)类与对象的方法调用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在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(三)类与对象的方法调用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部