//定义一个类
#import <Foundation/Foundation.h>
@interface Student : NSObject
{
int _age;
int _no;
}
- (void)setAge:(int)age;
- (void)setNo:(int)no;
- (int)age;
- (int)no;
- (id)initWithAge:(int)age andNo:(int)no;
@end
//类的实现
#import "Student.h"
@implementation Student
//编写构造方法
- (id)initWithAge:(int)age andNo:(int)no{
self = [super init];//调用父类的init方法
self.age = age;
self.no = no;
return self;
}
- (void)setAge:(int)age{
_age=age;
}
- (void)setNo:(int)no{
_no = no;
}
- (int)age{
return _age;
}
- (int)no{
return _no;
}
//重写类对象的description方法,这个方法在 %@ 时候被调用,%@ 表示输出对象
- (NSString *)description{
NSString *str = [NSString stringWithFormat:@"age is %i no is %i",self.age,self.no];
return str;
}
@end
//类的调用
#import <Foundation/Foundation.h>
#import "Student.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
//方法一,第一步调用类的静态方法分配内存,第二步把分配的内存初始化之后给对象stu
Student *stu = [[Student alloc] init];
[stu setNo:10];
//等于stu.age = 10; stu的点方法,其实调用的不是成员变量,而是对应的set方法
[stu setAge:27];
NSLog(@"huang age is %i and no is %i",[stu age],[stu no]);
//方法二,第一步调用类的静态方法分配内存,第二步调用自己的构造方法初始化
Student *stu2 = [[Student alloc] initWithAge:27 andNo:1];
NSLog(@"mei age is %i and no is %i",[stu2 age],[stu2 no]);
NSLog(@"stu is %@",stu);//输出对象,有点像java当中的toString方法
//释放对象的方法怎么出不来呢?
// 在输出对象时候如果不重写Student当中的description方法,那么输出的是stu的内存地址
}
return 0;
}
分享到:
相关推荐
ios安全学习笔记, 供需要的人学习. 对iOS 感兴趣的同学可以看看
里面包含一些学习iOS的推荐网站和博客地址,以及一些书籍,可供iOS学习者查阅。
Objective-C语法深入浅出,适合作为学习IOS开发的入门材料。
比较详细的语法,包含各种基础知识,很适合新手学习。比较全面准确。
iOS开发之Objective-C语法快速参考(PDF文档).
非常全面的IOS课程学习体系,初学者有很好的指导作用
ios学习路线iOS学习路线ios学习路线iOS学习路线ios学习路线iOS学习路线
51CTO下载-学习ios(必看经典)牛人40天精通iOS开发的学习方法 BecomeAnXcoder(SChinese) HowToCreateHelloWorldForiPhone iOS 6实践指南 iPhone应用程序编程指南 Learn Objective-C(zh)(v2) RoadMapiOSCh ...
此文档是文人初学时的个人总结 希望对大家有所帮助
这是一篇介绍IOS多线程理解的文章,简洁易懂,方便阅读
iOS学习完整路线图,C语言、Objective-C、iOS基础、iOS高级、游戏开发
ios应用开发学习的好资料,很好的学习资料
IOS基础学习PPT,简单介绍,虽然是英文版的,但也简单介绍了基础IOS的相关资料!初学者会用的到!
ios学习资料下载的网址
IOS学习的PPT,包含开发工具安装,OC基础语法,内存管理,文件管理,KVC,KVO等等教学。
ios学习ppt第一章
InflatableDonkey, iOS9/ios10/iOS11 iCloud备份概念概念证明 重要通知,6 2017年11月 。不能扩展原因以及立即效果,我将不再维护这个项目或者服务票。 我也无法透露有关 ios/iCloud力学的任何信息或者在这方面提供...
Objective-C编程之道:IOS设计模式解析.pdf
通过block回调self,然后实现连续访问自身属性与方法。(主要是看到Masonry布局代码的简洁性,然后想办法为我们平时开发节省时间和精力,所以封装了一系列的常见控件的category)代码和思路可能不那么高大上,还是...