ios学习第三天(二)自己动手写一个类

来源:互联网 发布:怎么样设置网络打印机 编辑:程序博客网 时间:2024/06/01 18:37

为了看这一块内容,画了不少时间,语法不学不写永远不会的。

OC中的类要写在两个文件中.h文件是声名文件.m文件是实现文件。


类的声名:

#import <Foundation/Foundation.h>

@interface 类名: 继承的类名<协议名1,协议名2>{  //或@interface 类名: 继承的类名{
    //这里声明属性
}

//这里声明方法

@end


类的实现:

#import "类的声名文件"  //如:#import "Dog.h"

@implementation 类名

//这里写要实现的方法

@end


看例子,去感悟吧:


Pig.h:

////  Pig.h//  ClassTest////  Created by Moluth on 17/4/7.//  Copyright (c) 2017年 Moluth. All rights reserved.//#import <Foundation/Foundation.h>//.h文件用于声明一个类 Pig类名 冒号表示继承 Pig继承自NSObject@interface Pig : NSObject{    //这里声明属性    int _age;//属性    NSString *_name;}//这里声明方法-(id)initWithNameAndAge:(NSString*)name : (int)age;//带参数构造方法-(int)age;//getAge 无参数方法,int返回值-(NSString*)name;//getName-(void)setAge:(int)age;-(void)setName:(NSString*)name;//单参数空返回值方法-(void)setNameAndAge:(NSString*)name : (int)age;//双参数空返回值方法@end



Pig.m:

////  Pig.m//  ClassTest////  Created by Moluth on 17/4/7.//  Copyright (c) 2017年 Moluth. All rights reserved.//#import "Pig.h"//.m文件为实现文件 实现Pig类@implementation Pig//构造方法-(id)initWithNameAndAge:(NSString*)name : (int)age{    self=[super init];//调用父类构造方法 self相当于java中的this    _name=name;    _age=age;    return self;}-(int)age{    return _age;}-(NSString*)name{    return _name;}-(void)setAge:(int)age{    _age=age;}-(void)setName:(NSString*)name{    _name=name;}-(void)setNameAndAge:(NSString*)name : (int)age{    _age=age;    _name=name;}//重写父类该方法,在输出该对象时,会输出下面的字符串。-(NSString*)description{    return [[NSString alloc] initWithFormat:@"[name:%@,age:%d]",_name,_age];}@end


main.m:

////  main.m//  ClassTest////  Created by Moluth on 17/4/7.//  Copyright (c) 2017年 Moluth. All rights reserved.//#import <Foundation/Foundation.h>#import "pig.h"int main(int argc, const char * argv[]) {    Pig *pig1=[[Pig alloc] init];    [pig1 setNameAndAge:@"熊大" :10];    NSLog(@"name=%@  age=%d  obj=%@",[pig1 name],[pig1 age] ,pig1);//name=熊大  age=10  obj=[name:熊大,age:10]        Pig *pig2=[[Pig alloc] initWithNameAndAge:@"光头强" :38];    NSLog(@"%@",pig2);//[name:光头强,age:38]        return 0;}


0 0
原创粉丝点击