如何快速从android开发转向ios开发--oc语法篇

身为一个安卓程序员是很苦逼的,各种手机厂商自制系统,导致各种组件bug,屏幕适配,不挣钱等等。楼主现在有机会接触一下ios,把从一些android转ios期间遇到的一些困惑整理下来。

首先初识ios要不要学object-c,我认为还是很有必要的,我们要学习的是ios系统,所以不要局限于语言,要先理解ios的思想,而且现在oc的文章很多,足够我们学好ios。

所以这里总结的也主要是oc和java不同的地方

下面创建一个项目

如何快速从android开发转向ios开发--oc语法篇_第1张图片

建立一个类名字叫Person。

Person.h 中代码如下:

@interface Person : NSObject{
    @private NSString *health;
    @protected NSString *power;
    @public NSString *height;
    
}

@property NSString *name;
@property NSInteger *age;

-(void)say:(NSString *)content;
-(void)sayHello;
+(void)addPerson;

@end

Person.m如下:

#import "Person.h"
@interface Person()
@property NSString *sex;
@end

@implementation Person
-(void)say:(NSString *)content{
    height=@"高度";
    _name=@"名字";
    self.name=@"名字";

    [self sayHello];
}

-(void)sayHello{
    NSLog(@"say hello");
}

+(void)addPerson
{
    NSLog(@"person has add");
}


@end



@interface 意思是声明一个类,和java中的接口不是一个意思。类名为Person, :号是继承的意思,这里继承自NSObject, <>内是实现的接口,如果有多个,中间用逗号分隔开。

后面紧跟着的{} 里面定义的是类内部使用的局部变量,外部不能访问,@private的相当于java中的private仅本类可以访问,@protected和@public相当于java中的protect,子类可以访问。

@property 定义的是类变量,相当于java中的public,外部通过实例可以访问

-(void)say:(NSString *)content;

-号代表是一个方法publiuc方法

+(void)addPerson;
+号代表是一个static方法

转为java代码为:

public class Person extends Object implements Object{
	private String health;
	private String sex;
	protected String power;
	protected String height;
	public String name;
	public int age;
	
	public void say(String content){
		
	};
	
	public void sayHello(){
		
	}
	
	public static void addPerson(){
		
	}
}




oc中对变量的调用也有不同,类的私有变量可以直接调用,公有变量需要前面加上下划线或者通过self.的方式调用,而实例方法通过 [类实例  方法] 调用;

#import "Person.h"

@implementation Person
-(void)say:(NSString *)content{
    height=@"高度";
    _name=@"名字";
    self.name=@"名字";
    [self sayHello];
}

-(void)sayHello{
    NSLog(@"say hello");
}

+(void)addPerson
{
    NSLog(@"person has add");
}


@end


欢迎大家补充,本文会持续更新,方便java开发者快速熟悉oc开发




你可能感兴趣的:(ios学习)