1:Obect c 与 c 语言的区别
(1) 后缀名不一样,C语言是.c 结尾 ,OC 是 .h结尾。
(2) 输出信息不同 C语言是用print() 输出,OC 是用NSLog输出。
(3) NSLog会自动换行,并且还有时间戳输出,二print没有
(4) 导入声明[文件]不一样 OC 是用import,而C语言是用include
2: import和 include的区
(1) Import只导入一次一个文件就不会重复导入,include 可以重复导入同一个文件
3:OC创建类的语法
(1) 类的声明
@interface One[类名]: NSObject{
#设置访问权限 public protecd priavted
@public
#这里写声明属性和行为
Int age;
Char sex;
}
#这里写方法的声明 OC中方法的声明
1:对象方法以 ‘-
’ 号 开头
2:数据类型一定要用小括号括住
3:OC方法中的小括号就一个作用 ,就用来括住数据类型
无参数声明方法格式如: -
(返回类型) 方法名;
- (
void) Tets1;
//声明一个无参数无返回类型的方法
-(
int ) Test2;
//声明一个无参数有返回类型为int 类型的方法
有参数声明方法格式[注意点冒号也是方法名的一部分]:
- (返回类型) 方法名:(参数类型 *
)参数名称
-(
void) Test3 :(
char *
)nub;
-(
void) Test4(
char *)nub1 :(
char *)centen;
//多个参数 以 : 相间隔
@end //声明结束
(
2) 类的实现
@implementation One[类名]
#这里写实现方法的声明 格式跟函数的声明一个
实现格式如:
(1)无参数
-(
void) Test1{
NSLog(@”你好”);
}
(2) 有参数
-(
void)Test3:(
char *
)nub{
NSLog(@”电话号码%
s”,nub);
}
-(
void)Test4:(
char *)nub :(
char *
) coent{
NSLog(@”电话号码%
s”,nub);
}
@end
(3) 类的实例化和调用方法属性
Int main(int argc,
const char *
argv[]){
#格式为: 类名 指针;
One *
p;
/*
实例化一个对象在内存中干了三件事
1:开辟存储空间
2:初始化成员变量
3:返回指针地址
*/
P=[One
new];
#给属性赋值
P->age=
22;
p->sex=
’男’;
#输出变量
NSLog(@”年龄=%d,性别=%c”,p->age,p->
sex);
#有参数的方法调用
[p Test3:”13417709177”]
}
4:OC语言的注意点
1.只有类的声明没有实现
2.缺少
@end
3.不能把实现写到声明中同理,声明也不能写到实现中,不能嵌套
4.不能把类的声明实现写到函数中
5.成员变量必须写到声明的大括号中
6.声明成员变量不能直接赋值
7.OC的弱语法:注意,没有声明同样可以定义一个类,(实际开发中千万不要这样干)
/*
f 经典错误:
'-[Person run]: unrecognized selector sent to instance 0x100103410'
没实现这个方法的经典错误。
*/
5:OC 中字符串的使用
(1) 创建一个简单的字符串并输出
NSString *str1=
@”我是字符串1”;
NSLog(@“%
@”,str1);
(2) 字符串格式化
NSString *str2=[NSString stringWithFormat:@”身高%d,体重%
.2f”,sg,tz]
NSLog(@”%
@”,str2);
(3) 计算个数
NSString *str3=
@”我是中国人”;
Int count=
[str length];
6:类方法与对象方法
(1)对象的方法是与 减号 开头 类的方法是以 加号开头
(2)对象的方法调用方式[是以对象去调用方法]
Test1 *P=[Test1
new ]
Int sum1=[p nb1:
10 nb2:
20];
(3)类的方法调用方式[是以类名调用方法]
Int sum2=[Test nb1:
10 nb2:
20];
(4) 当方法不使用成员变量的时候就尽量使用类方法[少开辟空间,节省内存]
(5) 类方法不能访问成员变量[实力变量 也就是对象]
7:继承
(1) 子类继承了父类的成员变量和方法
(2) new方法是父类中继承过来的
(3) 如果在子类中实现了和父类中同名同类型的方法,我们称之为重写
(4) 在继承当中调用方法,首先会在本类中找,如果本类没有找到就去父类中找
(5) 在子类中不仅可以重写父类当中的对象方法,也可以重写父类当中的类方法
(6) 子父类中的方法调用顺序:现在本类中找,如果本类没有再到父类中找,如果父类中没有,就到爷爷类中找 NSObject是99.
9%
的类的父类
(7) OC 不支持多继承[也就是说只有一个父类] 支持多层继承 [父->子->
孙]
8:多态
(1) 什么是多态:多态就是某一类事物的多种形态
(2) 没有继承就没有多态
(3) 用父类类型的指针指向了子类对象,这就是多态
9: OC访问成员变量格式
(1) 类名 *p=[类名
new]
p->属性=
值;
(2)
p.属性=
值;
10:成员变量的作用域
Public:公共的 在其他文件夹中也可以访问
Private:私有的 在其他文件下不能访问 只是在本类中使用。
Protected 受保护的 在其他文件夹中不能访问 在本类中可以访问
11:自动设置get/
set 属性
@synthesize 属性 ;[在类的实现中写,前提是你已经声明了这个属性]
12:
protected 作用
自动生成get/
set 属性 格式:
@public int _no;
转载于:https://www.cnblogs.com/hgj123/p/4105593.html
相关资源:数据结构—成绩单生成器