码迷,mamicode.com
首页 > 其他好文 > 详细

OC学习--OC中的类--类的定义,成员变量,方法

时间:2018-03-04 11:52:39      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:nslog   开头   首字母   创建   init   分享   seda   uber   名称   

技术分享图片

 

1. 类的定义

>用关键字@interface进行声名  @end 结束

>所有的类有一个基类NSobject

>类名 也是标示符 第一个字母大写 如果多个字母组成 每个单词的首字母大写

>类名  冒号":"后  是父类(继承父类)

>成员变量 (属性)  用大括号{ }包含起来

>方法的声明用两种  +号表示类方法(类名调用)  -表示实例方法9(对象调用)

以下是Person类的声明:

#import <Foundation/Foundation.h>

@interface Person:NSObject{

     //成员变量

    //默认是受保护的  封装特性  不允许外面的变量进行访问

    int grade;

    @public

    int age;

    int numberId;

}

//1.方法必须 -号 或者 +号 开头

//2. -号 后面是函数的返回值

//3.方法名称

//4.变量

-(void)printPerson;

-(void)passedAge:(int)newAge;

//带两个参数的方法声明  理解:(void) 函数的返回值

       //passedAge 对第一个参数的描述

                                      //AndNumberId 对第二个参数的描述

-(void)passedAge:(int)newAge AndNuberId:(int)newNumberId;

-(void)passedAge:(int)newAge AndNuberId:(int)newNumberId AndGrade:(int)newGrade;

 +(void)test;

@end

 

2.类的实现

>类的实现 采用关键字@implemention   以@end结束

 

以下为Person类的实现文件

#import "Person.h"

@implementation Person

 -(void)printPerson{

    NSLog(@"===实例方法===person info %d__%d",age,numberId);

}

 -(void)passedAge:(int)newAge{

    age = newAge;

    NSLog(@"===实例方法===赋值===%d",age);

}

 -(void)passedAge:(int)newAge AndNuberId:(int)newNumberId{

    age = newAge;

    numberId = newNumberId;

    NSLog(@"===实例方法===赋值===%d__%d",age,numberId);

}

 -(void)passedAge:(int)newAge AndNuberId:(int)newNumberId AndGrade:(int)newGrade{

    age = newAge;

    numberId = newNumberId;

    grade = newGrade;

    NSLog(@"===实例方法===赋值===%d__%d__%d",age,numberId,grade);

}

//类方法 (加号方法)

+(void)test{

    NSLog(@"===用类名调用类方法===");

}

@end

 

3.调用Person类

>Person 发送一个new消息(调用new方法) 在系统里分配存储空间(堆空间)  并将存储空间的首地址返回   (创建对象)

 

在main函数里面调用  以下代码为Person类的调用

 

       //创建person对象

        Person *person = [Person new];

        NSLog(@"===地址===地址===%p",person);

        person->age = 10;

        NSLog(@"===间指===%d",(*person).age);

        NSLog(@"===间指===%d",person->age);

 

        //通过对象去调用 printPerson方法 (实例方法)

        [person printPerson];

        //通过类名去调用  test方法 (对象方法)e

        [Person test];

        

        //对参数赋值  调用带参数的方法

        [person passedAge:10];

        [person passedAge:20 AndNuberId:30];

        [person passedAge:40 AndNuberId:50 AndGrade:60];

        

        //new == alloc init  创建两个对象 person1  person2

        Person *person1 = [[Person alloc] init] ;

        NSLog(@"===地址===地址===%p",person1);

        Person *person2 = [Person new];

        NSLog(@"===地址===地址===%p",person2);

 

OC学习--OC中的类--类的定义,成员变量,方法

标签:nslog   开头   首字母   创建   init   分享   seda   uber   名称   

原文地址:https://www.cnblogs.com/gzz1452524591/p/8504036.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!