OC中的类分为.h
和.m
.h
主要做声明:成员变量、属性、方法
表示类的接口@interface
.m
作为函数的实现部分:实现方法
@implementation
面向对象的三大特性:
封装:隐藏内部实现,稳定外部接口;
继承:子类复用父类的成员变量、属性、方法(重写);
多态:父类对象指向子类空间
// student作为一个类存在
// []表示方法调用
eg.1.
Student.h
#import
//@interface 表示类的接口,生命了当前文件是类的声明文件(成员变量、属性、函数)
@interface Student : NSObject //:表示继承关系
{
@protected//受保护类型访问权限:所修饰的成员变量,在类的内部以及子类中可以访问
@private //私有类型的访问权限:只有在类的内部才可以访问的成员变量
@public //共有类型的访问权限:在类的内部以及外部都可以访问的成员变量
//成员变量
int age;
NSString *name;
NSString *phone;
NSString *address;
}
//行为(函数、方法)函数的声明sayHello
//实例方法:-
-(void)sayHello;
//类方法:+
+(void)sayHi;
@end
Student.m
#import "Student.h"
@implementation Student
//实例方法
-(void)sayHello
{
NSLog(@"我叫%@,我今年%d,我来自%@,我的电话%@",name,age,address,phone);
}
//类方法
+(void)sayHi
{
}
@end
main.m
Student *stu1=[[Student alloc] init ];
stu1->age=21; //变量(直接赋值)
stu1->name=@"唐三藏";
stu1->address=@"东土大唐";
stu1->phone=@"1212121212";
//[stu1 sayHello];
Student *stu2=[[Student alloc] init ];
stu2->age=500;
stu2->name=@"孙大圣";
stu2->address=@"花果山";
stu2->phone=@"1212121213";
//[stu2 sayHello];
Student *stu3=[[Student alloc] init ];
stu3->age=100;
stu3->name=@"猪悟能";
stu3->address=@"高老站";
stu3->phone=@"1212121214";
//[stu3 sayHello];
Student *stu4=[[Student alloc] init ];
stu4->age=250;
stu4->name=@"沙悟净";
stu4->address=@"流沙河";
stu4->phone=@"1212121215";
//[stu4 sayHello];
Student *stu5=[[Student alloc] init ];
stu5->age=300;
stu5->name=@"宝马2333";
stu5->address=@"我也不知道是哪?";
stu5->phone=@"我就是一匹马哪来的电话0.0";
//[stu5 sayHello];
NSArray *array=@[stu1,stu2,stu3,stu4,stu5];
for (Student *stu in array)
{
NSLog(@"%@",stu->name);
}
Student *liaoming =[array objectAtIndex:2];
eg.2.
Car.h
#import
@interface Car : NSObject
{ @public
float speed;
float oil;
}
-(float)getKilometer;
@end
Car.m
#import "Car.h"
@implementation Car
-(float)getKilometer
{
float kil=speed/oil;
NSLog(@"距离%f",kil);
return kil;
}
@end
main.m
Car *s1=[[Car alloc] init];
s1->speed=100;
s1->oil=200;
[s1 getKilometer];
eg.3.
Person.h
#import
@interface Person : NSObject
{
int age;
NSString *name;
}
//设置器
//-(void)setAge:(int)newAge;
//访问器
//-(int)getAge;
-(void)setAge:(int)newAge andName:(NSString *)newName;
-(int)getAge;
-(NSString*)getName;
@end
Person.m
#import "Person.h"
@implementation Person
-(void)setAge:(int)newAge andName:(NSString *)newName
{
age=newAge;
name=newName;
}
-(int)getAge
{
return age;
}
-(NSString*)getName
{
return name;
}
@end
main.m
Person *s1=[[Person alloc] init];
[s1 setAge:23 andName:@"Tom"];
NSLog(@"%@ %d",[s1 getName],[s1 getAge]);
FEATURED TAGS
iOS
OC
C
Xcode
MIMEType
屏幕旋转
Mac
工具
SQLite3
重命名
证书+内购
像素
pch
支付协议税务
APP转让
审核
银行卡格式化
git
描述文件
命令行
沙盒日志
i386
x86_64
控制台log
xcode10&iOS12
正则
textfield
输入限制
Pod
真机支持
封面尺寸
SDWebImage
Ruby
RVM
渐变色
jekyll
水印
富文本
标签
M3U8
动、静态库
异步上传
Url编码解码
AlertController
保活
pod报错
特定UI横竖屏
Launch版本号
ijkplayer
适配
手势
截图
网络和信号
礼物缓存
手绘礼物
UIPickerView
文件权限
键盘和菜单
耗时卡顿
国际化
Paypal
AWSS3
npm、Node
控制台
warning
扩展
防盗链
动画
分析
CallKit
侧滑
重置根控制器
播放器
裁剪
日志
bugly
uniapp
Swift
文字翻转
跨域
WebClip
网络请求
地图导航
ZSH
SPM
Vapor
导航
验证码
杀进程
Ubuntu
Android
JWT
vue
html-js
style-class
ssh
PHP
jks
css
Runtime
tree
uniCloud
圆角
总结