成员变量 和方法的声明
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface Phone : NSObject{
//声明属性
@public
CGFloat _screenSize;
NSString * _color;
CGFloat _memory;
}
-(void)makeCallToSomeone:(NSString *)someone;
-(void)sendMessage:(NSString *)message toReceiver:(NSString *)recevier;
@end
NS_ASSUME_NONNULL_END
方法的实现
// 类的实现我们放在.m文件 中
#import "Phone.h"
@implementation Phone
-(void)makeCallToSomeone:(NSString *)someone{
NSLog(@"给%@打电话",someone);
}
-(void)sendMessage:(NSString *)message toReceiver:(NSString *)recevier{
NSLog(@"\n收件人 :%@\n%@",recevier,message);
}
-(NSString *)description{
NSLog(@"调用 description 方法");
return [NSString stringWithFormat:@"手机信息 :\n屏幕尺寸 : %f英寸, 机身尺寸:%@ ,内存大小 :%fM",
_screenSize, _color, _memory];
}
@end
实例化对象 和方法调用
-
我们在main.m文件中导入我们的 Phone.h文件
image.png - 实例化对象
Phone * phone=[Phone new];
- 属性赋值
phone->_screenSize=4.7;
phone->_color=@"红色";
phone->_memory=1024;
- 类方法调用
[phone makeCallToSomeone:@"小明"];
[phone sendMessage:@"今天天气真不错" toReceiver:@"陈子豪"];
- 打印类
NSLog(@"%@",phone);
日志观察
image.png
如果我们想让我们成员变量在外部类 赋值 我们需要在成员变量上面加 @public 才可以 应为在 {}里面的成员变量默认是受保护的
关于打印类
其实我们在 打印phone这个类的时候 默认是调用了 description 所以我们在phone.m文件重写了这个方法
如果重写 并做处理
image.png
就会显示这样的日志
所以我们平常需要重写 description 类似java 里面的toString 方法
-(NSString *)description{
NSLog(@"调用 description 方法");
return [NSString stringWithFormat:@"手机信息 :\n屏幕尺寸 : %f英寸, 机身尺寸:%@ ,内存大小 :%fM",
_screenSize, _color, _memory];
}
oc基础做一个简单记录