文章目录
  1. 1. Java、OC大不同
  2. 2. 1. 类的定义
  3. 3. 2.新建对象和使用

长夜漫漫,无心睡眠,定一个小目标吧,写一下自己对android、iOS开发区别的见解。

Java、OC大不同

本人先会的Java,所以比较都会以Java、Android入手开始比较。

1. 类的定义

OC的类定义比较特殊分为两个部分,接口部分和实现部分
比如一个MyClass类,有岁数和名字两个成员变量,一个实例方法jump和一个类方法run
java是这么定义的

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class Person {
public int age;
public String name;
private long tmp;
public Person(int age,String name){
this.age = age;
this.name = name;
}
public void jump(String str){
//
}
public static void run(){
//
}
}

OC的定义需要两个部分MyaClass.hMyClass.m

1
2
3
4
5
6
7
8
9
10
# import <Foundation/Foundation.h>

@interface MyClass : NSObejct
{
int _age;
NString* _name;
}
- (void)jump:(NSString*)str;
+ (void)run;
@end
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# import "MyClass.h"

@implementation MyClass
{
long _tmp; // 只能在实现部分使用,相当于private的变量
}
- (void)jump:(NSString *)str
{
//
}
+ (void)run
{
//
}
@end

2.新建对象和使用

如果java中的对象是这样的

1
2
3
4
5
public class MyClass{
public void run(){
System.out.println("I'm running!!!");
}
}

它的新建就是MyClass a = new MyClass(),Java帮助它实现了默认的一个构造函数。使用run方法时则是a.run()
OC则是这样的

1
2
3
4
5
6
7
8
9
10
11
// MyClass.h
...
@interface MyClass : NSObject
- (void)run;
@end
// MyClass.m
@implementation MyClass
- (void)run
{
NSLog(@"I'm running!!!");
}

使用时MyClass a = [[MyClass alloc] init],OC同样帮助它实现了一个默认的构造函数。使用run方法时则是[a run]

文章目录
  1. 1. Java、OC大不同
  2. 2. 1. 类的定义
  3. 3. 2.新建对象和使用