《IOS_OC》类和对象

来源:互联网 发布:windows桌面程序开发 编辑:程序博客网 时间:2024/06/05 20:06

一:面向过程和面向对象的区别:

// 面向过程编程:以时间先后顺序、因果关系为中心的编程思想,如:C语言

 //面向对象编程:以功能点为核心,程序可以有多个不同的功能模块,各个模块相互独立,适合团队开发,如:C#\C++\OC\JAVA

二:类和对象的使用步骤

(1)Student.h文件,头文件,声明文件,接口文件里面创建一个类

如:Student类 ,首字母大写

在@interface Student : NSObject和@end里面填写实例对象、方法的声明

如:

@interface Student : NSObject
//1、实例变量的声明,作为全局变量
{
     @public//实例变量的可见度,public表示共有的,使得几个文件里面可以使用以下的实例变量,默认是protected的,不然在后面会报错的,因此需要在这里添加@public
  //1、实例变量的声明
    //对象类型声明,格式:NSString *_名字;
    NSString *_name;
//    NSString *_gender;
    //以下不是对象类型int\float\bool等,则不用加星号*
    int _age;
    float _score;
}
//2、方法(行为)的声明
//(1)类方法:+开头,由当前类使用,静态的。
//不需要返回值的
+(void)sayHello;
//(2)实例方法:-开头,返回值类型,动态的,由当前类的对象()来调用
-(void)introduceSelf;

//3、带参数的实例方法的实现
//格式:-(返回值类型)方法名1:(参数类型)参数名 方法名2:(参数类型)参数名{}
-(void)introduceSelfWithHobby:(NSString *)hobby number:(NSInteger)number
{
    NSLog(@"hello,everybody!My name is %@.I am %d years old.My hobby is %@,my number is %ld",_name,_age,hobby,number);//这里直接是方法名1和方法名2
}
@end

(2)Student.m文件:方法的实现文件,相当于函数的定义

//方法的实现,相当于函数的定义
@implementation Student
//1)类方法(+(void)sayHello)的实现过程
+(void)sayHello
{
    NSLog(@"Hello!");//静态的,直接显示的
}
//2)实例方法-(void)introduceSelf的实现
-(void)introduceSelf
{
    NSLog(@"大家好,我是%@,今年%d",_name,_age);//动态的,需要调用实例变量的
}
//3)类方法:直接打印的,吃面包
+(void)eatBread
{
    NSLog(@"eatingBread!");//静态的,直接显示出来的
}
//4)实例方法应用:取名字
-(void)getScore
{
    NSLog(@"我是%@,我得成绩是%f",_name,_score);
}
//5)、带参数的实例方法的实现
//格式:-(返回值类型)方法名1:(参数类型)参数名 方法名2:(参数类型)参数名;
-(void)introduceSelfWithHobby:(NSString *)hobby number:(NSInteger)number
{
    NSLog(@"hello,everybody!My name is %@.I am %d years old.My hobby is %@,my number is %ld",_name,_age,hobby,number);//这里直接是方法名1和方法名2
}
@end

(3)main.m文件里面主要是函数的调用使用

首先需要引入#import “Student.h”头文件

再写在@autoreleasepool {·····}里面

如://(1)类方法+(void)sayHello)的使用,由类"Student"来使用:【Student类名+方法的名字】;
        [Student sayHello];
        //(2)实例方法-(void)introduceSelf的调用,用Studen类的对象stu来调用
        //下面创建类的对象stu
        //1)、分配空间[Student alloc],*号表示对象
        Student *stu=[Student alloc];
        //2)、初始化[stu init]
        stu=[stu init];

        当然以上两步可以整合起来:

       Student *stu=[[Student alloc]init];//申请空间和赋值初始化一步到位

        //3)访问实例变量(格式:对象名stu->实例变量名_name),赋初值(汉字或字符串则@“”,整型的数字,则直接赋值就可以了)
        stu->_name=@"猪头";
        stu->_age=18;
        //取值输出,跟访问赋值格式是一样的访问方式,格式:对象名stu->实例变量名_name
        NSLog(@"%@,%d",stu->_name,stu->_age);
        //4)、通过对象stu来使用实例方法-(void)introduceSelf
        [stu introduceSelf];

       //5)、带参数的实例方法使用,直接用对象stu来调用,在冒号后面输入对应的方法名1,和方法名2的内容
        [stu introduceSelfWithHobby:@"18的姑娘" number:60];

0 0
原创粉丝点击