请登陆!   免费注册 | 忘记密码 | 问题建议
小娃子首页 |亲子社区

382

浏览数
关于Objective-C语法之类以及对象
2012-07-25 20:43:14    分类:默认分类  

1、类与法子

下图中是一段的类声名的语法表示,声相识一个叫做 MyClass 的类,它秉持于根类:NSObject。(根类可以或许被全数的别的类直接或间接承继。)



下图是一个门径的语法展现,门径的声明由如下几个部份造成:方法类型标识符,返回类型,一个或多个门径签名枢纽字,以及参数类型和称说。


2、成立类

1.1、新建Single View app 模版工程,按Co妹妹and + N 新建文件,建立类Student ,秉承与NSObject


1.2、生成student.h  和student.m

#import <Foundation/Foundation.h>@interface Student : NSObject@end
#import "Student.h"@implementation Student@end

1.3、在头文件里增进类成员变量与法子

@interface

#import <Foundation/Foundation.h>@interface Student : NSObject{    NSString *studentName;    NSInteger age;}-(void) printInfo;-(void) setStudentName: (NSString*) name;-(void) setAge: (NSInteger) age;-(NSString*) studentName;-(NSInteger) age;@end
  • @interface 类的初阶的标识符号 ,比方Java  或 C 说话中的Class   
  • @end 类的结束标记
  • 秉持类的方式:Class:Parent,如上代码Student:NSObject
  • 成员变量在@interface Class: Parent { .... }之间
  • 成员变量默认的造访权限是protected。
  • 类成员法子在成员变量负面,样式是:: scope (returnType) methodName: (parameter1Type) parameter1Name;
  • scope指得是类方法或实例化方法。类办法用+号匹面,实例化门径用 -号入手下手。

1.4、实现类方式

@implementation

#import "Student.h"@implementation Student-(void) printInfo{    NSLog(@"姓名:%@ 年纪:%d岁",studentName,studentAge);}-(void) setStudentName: (NSString*) name{    studentName = name;}-(void) setAge: (NSInteger) age{    studentAge = age;}-(NSString*) studentName{    return studentName;}-(NSInteger) age{    return studentAge;}@end

1.5、在View中建树并初始化,挪用方法。

- (void)viewDidLoad{    [super viewDidLoad];        NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];        Student *student = [[Student alloc]init];    [student setStudentName:@"张三"];    [student setAge:10];    [student printInfo];    [pool release];}
  • Sutdent *student = [[Sutdent alloc] init]; 这行代码含有几个需要意思
  •  [Student alloc]调用Student的类法子,这相同于分拨内存,
  •  [object init]是构成函数调用,初始类对象的成员变量。
打印终归:
 姓名:张三 岁数:10岁

2、类法子运用多个参数

2.1增加一个多参数的方式和实现

....-(void) setNameAndAge:(NSString*) name setAge:(NSInteger) age;....

....-(void) setNameAndAge:(NSString*) name setAge:(NSInteger) age{    studentName = name;    studentAge = age;}....

2.2挪用

- (void)viewDidLoad{    [super viewDidLoad];        NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];        Student *student = [[Student alloc]init];    [student setNameAndAge:@"李四" setAge:20];    [student printInfo];    [student release];    [pool release];}
打印终于:
姓名:李四 年齿:20岁

3、自界说构造函数

3.1申明和实现结构函数

....-(Student*) initWithNameAndAge:(NSString*) name setAge:(NSInteger) age;....
....-(Student*) initWithNameAndAge:(NSString*) name setAge:(NSInteger) age{    self = [super init];        if ( self ) {        [self setNameAndAge:name setAge:age];    }        return self;}....

-(id)init 这个法子用于类的初始化竖立,每一个类在创建的时候需要挪用init门径,使用父类的init 法子失掉了self,这便大约做一些子类初始化的工作

3.2运用自界说结构函数:

- (void)viewDidLoad{    [super viewDidLoad];        NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];    Student *student = [[Student alloc]initWithNameAndAge:@"rongfzh" setAge:6];    [student printInfo];    [student release];    [pool release];}


上一篇: 古今利器——地图
下一篇: 没有了

用户名: 安全退出