一.常用关键词:
成员变量:大括号里的
属性:@property
实例变量:
所有指针类变量
已经初始化过后的对象_name *P
对象:是一个类的指针变量 P
实例化方法: 由对象来调用的方法
类方法:必须由类名来调用,没有用到任何实例化方法和成员变量时候使用
二.封装的两个问题
1.忘了赋初始值
2.能不能进行二次修改
关于封装:
1.必须给定的变量在初始化方法系统的是补救措施而已还是用本身的初始化方法号
2.给使用者安全 1.提供尽量少得接口 2.属性,方法
3.简化代码(重用性强)
三.函数:
1.三要素:返回值类型,方法名,形参
2形参:公共的可变(内容是可变的)的变量 哪些是公共的
四.@class与#import
@class:
在.h 引头文件必须用@class协议除外
//声明可能有这么一个类叫Car,但是不知道这个类是否存在(要使用,要在.m 中证明 @import "")
//.m 重复的东东不引
//import 拷贝代码
五.类方法
//类方法中的self是类名就是类
//1.当前方法中没有用到当前类的所有内容 (成员变量,属性)改成类方法:避免带有成员变量和属性的
//2.简化代码
//id 任意类型的指针变量 (对象)
//instancetype 实例变量类型类的类型
//创建一个类,期中包含两个成员变量name和age,并创建一个实例化方法获得年龄,并调用
// student *stu = [[student alloc]init];
//youfanhuizhi
// NSInteger *c = [stu getAge];
// int arr[5] = {1,2,3,4,5};
// for (int i=0; i<5-1; i++) {
// for (int j=0; j<5-i-1; j++) {
// if (arr[j]>arr[j+1]) {
// int temp = arr[j];
// arr[j]=arr[j+1];
// arr[j+1]=temp;
// }
// }
// }
// for (int i=0; i<5; i++) {
//
// NSLog(@"%d\n",arr[i]);
//
// }
// maopaoFengzhuan *maopao = [[maopaoFengzhuan alloc]init];
// [maopao maopaoA:arr count:5];
// [maopao maopaoB:arr count:5];
五.继承
继承与NSObject 的类统称为为Model类
表达方式 子类:父类
OC里没有多继承 可以通过协议间接实现多继承的方式
Command +alt +{ }:选中可以上下挪动