[Objective-c 基础

Obj-C中没有包得概念,使用前缀进行区分

自带类用NS开头命名
关键字使用@开头
 
A. 第一个OC程序
1. 导入Foundation框架的主头文件
#import <Foundation/Foundation.h>
自动过滤重复引入的文件
 
2. 源代码和头文件
(1) .h : 类的声明文件
(2) .m : 类的实现文件

3.使用终端编译链接OC程序
例如:编译链接 02OC.m
 cc 02OC.m -framework Foundation
系统默认带的是C函数库,必须加上 framework 参数,引入Foundation框架
 

B.OC和C的差异
1.BOOL类型
BOOL只有YES 和 NO 两个值,实际是 1 和 0
 
2.面向对象
(1)面向过程:关心步骤
(2)面向对象:只关心结果
 
 
C. OC中的类
1.在同一个.m文件中入门体验:
#import <Foundation/Foundation.h>

//类的声明
@interface Car : NSObject
{
    //@public 可以让外部指针访问内部的成员变量
    @public
    int wheels;
    int speed;
}

//OC方法中任何数据类型都必须用()括起来
- (void) run;

@end

//类的实现
复制代码
 1 @implementation Car
 2 - (void) run
 3 {
 4     NSLog(@"车子跑起来");
 5 }
 6 
 7 @end
 8 
 9 int main()
10 {
11     Car *c = [Car new];//创建对象,分配内存空间
12     c->wheels = 4;
13     c->speed = 250;
14     NSLog(@"车子有%i个轮子,时速是%i", c->wheels, c->speed);
15     [c run];
16    
17     return 0;
18 }
复制代码
2.常见错误
(1)声明中不能赋初值,不能使用static等C语言中得修饰符
(2)不能嵌套声明、定义
(3)方法和函数要分辨开,C语言中的是函数,类中的是方法,方法也不能使用static等修饰符
(4)使用类之前,要先声明,类似于函数
 
 
ps:继承NSOject 让类具有实现对象的功能
 
在声明中定义的方法全是公共方法
数据类型都要小括号括起来 
 
1.声明:
复制代码
1 @interface Student : NSObject
2 {
3     int age;
4 }
5 //'-' is used to define dynamic method, '+' is used to define static method
6 - (int) getAge;
7 - (void) setAge:(int)age;
8 @end
复制代码
 
2.定义
类的实现使用关键字@implementation, @end
xx.m
复制代码
 1 #import "Student.h"
 2 
 3 @implementation Student
 4 - (int) getAge
 5 {
 6     return age;
 7 }
 8 - (void) setAge:(int)newAge
 9 {
10     age = newAge;
11 }
12 @end
复制代码
3.创建对象
所有OC对象都是指针
(1)分配空间
        //allocate the memory by static method, accept the obj by pointer
        Student *stu = [Student alloc];
ps:OC中只能用指针间接操作对象
如果一件事情你觉得难的完不成,你可以把它分为若干步,并不断寻找合适的方法。最后你发现你会是个超人。不要给自己找麻烦,但遇到麻烦绝不怕,更不要退缩。 电工查找电路不通点的最快方法是:分段诊断排除,快速定位。你有什么启示吗? 求知若饥,虚心若愚。 当你对一个事情掌控不足的时候,你需要做的就是“梳理”,并制定相应的规章制度,并使资源各司其职。
原文地址:https://www.cnblogs.com/wvqusrtg/p/4501361.html