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

<02>【掌握】01-类的声明和实现+【掌握】13-创建一个对象并访问成员变量+【掌握】14-无参方法声明实现及调用+【掌握】15-有参方法声明实现及调用+

时间:2015-07-16 13:30:04      阅读:112      评论:0      收藏:0      [点我收藏+]

标签:

【掌握】01-类的声明和实现

类:  
 
        一类事物共同特征和行为的抽象
 
        大卡车    小轿车    挖掘机
 
        车类: Car
        共同的特征(属性): 颜色   速度   轮子
        共同的行为: 跑     停止
 
   对象:
 
        类的具体的个体
 
 
        东风21D(车类的对象)
 
        解放大卡车(车类的对象)
 
        BYD (车的对象)
 
        时风 (车的对象)
 
 
     2、类的定义
 
        结构体定义
        struct Student{
 
 
        };   ---->定义一个Student 结构体
 
 
 
        类的定义分为两部分:
 
        1)类的声明(规定当前类的:类名、属性、行为)
 
           @interface 类名:父类名
           {
              //定义类的属性
            }
           
            //类的行为
           
            @end
 
 
 
        2)类的实现(实现具体行为)
 
           @implementation 类名
 
            //行为的具体实现
 
           @end
 
#import <Foundation/Foundation.h>

//车的类的声明
@interface Car:NSObject
{
   //类的属性
    int lunzi;  //车的轮子
    NSString *color;//车的颜色
    int speed;  //车的速度
}
   //类的行为
@end


//类的实现         
@implementation Car                  //这句话绝对不能省
//行为的具体描述
@end




int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // insert code here...
        NSLog(@"Hello, World!");
    }
    return 0;
}

 

【掌握】13-创建一个对象并访问成员变量

知识点:
            创建一个对象并运行成功

 

   在OC中用已经存在的类,如何创建一个对象?
 
       回顾C的结构体,结构体如何创建结构体变量
 
       struct Student stu;  //stu就是结构体变量
 
       struct Student *pstu; //pstu = &stu;
 
       结构体指针访问 结构体变量中的成员变量值
       pstu->age = 20;  //给age 设置 值 是 20
 
 
   OC中对象创建
 
       [Car new];  
       //做了3件事情
       // 1)向计算机申请内存空间
       // 2) 给类中的每一个成员初始化值
       // 3)返回新申请的空间的首地址
 
       //理解方式一:
       //定义了一个Car类型的指针变量
       //指针变量指向新申请的内存空间
 
       //理解方式二:
       //用Car类实例化了一个实例对象,对象的名称是p
         Car *p = [Car new];
 
#import <Foundation/Foundation.h>

//车的类的声明                 车的图纸(类)
@interface Car:NSObject
{
    //类的属性
    @public;
    
    int lunzi;  //车的轮子
    NSString *color;//车的颜色
    int speed;  //车的速度
}
//类的行为
@end


//类的实现
@implementation Car
//行为的具体描述
@end

int main(int argc, const char * argv[]) {
    @autoreleasepool {
      
        //创建Car类型的对象 car1
    
        Car *car1=[Car new];
        
        //创建一个对象 实质还是指针 (用指针间接访问实例变量值)
        car1->lunzi = 3;
        car1->speed = 150;
        car1->color = @"蓝色";
        
        //查看车的信息
        NSLog(@"轮子:%d,速度:%d ,颜色:%@",car1->lunzi,car1->speed,car1->color);
        
    }
    return 0;
}
2015-07-16 10:22:01.024 13-创建一个对象并访问成员变量[586:16494] 轮子:3,速度:150 ,颜色:蓝色

【掌握】14-无参方法声明实现及调用

知识点:  无参方法声明实现及调用
C语言的函数分类:
   无参无返回值
   无参有返回值
   有参无返回值
   有参有返回值
 
 
   类和对象的概念
 
   类的定义
     
     @interface Car:NSObject
     {
         int lunzi;
         int speed;
         NSString *pp;
     }
      //行为
      //车跑得方法   方法名是run
      -(void)run;   //定义了一个无参无返回值的方法
      -(void)stop;  
 
     @end
 
 
     //类的实现
     @implementation Car
 
      //方法的具体的实现
      -(void)run{
 
           NSLog(@"车跑在乡间的大道上");
 
      }
 
      -(void)stop{
 
          NSLog(@"咯吱,车停了!");
 
      }
 
     @end
 
   对象的创建
 
#import <Foundation/Foundation.h>
//Car类的声明
@interface Car:NSObject
{
    int lunzi;
    int speed;
    NSString *pp;
}
//行为
//车跑得方法   方法名是run
-(void)run;   //定义了一个无参无返回值的方法
-(void)stop;

@end


//类的实现
@implementation Car

//方法的具体的实现
-(void)run{
    
    NSLog(@"车跑在乡间的大道上");
    
}

-(void)stop{
    
    NSLog(@"咯吱,车停了!");
    
}

@end

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        
        //创建了一个对象 对象名 car
        Car *car = [Car new];
        
        //调用方法
        [car run];
        
        //调用stop方法
        
        //向car对象发送stop消息
        [car stop];
        
    }
    return 0;
}
2015-07-16 10:30:02.558 14-无参方法声明实现及调用[603:18838] 车跑在乡间的大道上
2015-07-16 10:30:02.559 14-无参方法声明实现及调用[603:18838] 咯吱,车停了!

【掌握】15-有参方法声明实现及调用

知识点:
      
         看着伪代码实现方法

知道方法声明格式

知道实例变量书写格式

 

 C的函数
 
    int sum(int x,int y){
  
        return x+y;
 
    }
 
   OC的方法
 
    -(返回值类型)方法名1:(参数类型) 参数名;   //有一个参数的方法
    -(返回值类型)方法名1:(参数类型1) 参数名1  and:(参数类型2) 参数名2;   //有2个参数的方法
 
    //sum ----> OC的方法
 
    -(int)sum:(int) x and:(int) y;  //方法的声明
 
    //有参方法的使用注意:
    // 方法的类型   (-)对象方法
    // 方法的返回值: int 类型
    // 方法的参数是: x   y
    // 参数的类型: 第一个 int  第二个 int 
    // 方法名:  sum:   and:  (冒号是方法名的一部分)
 
    //方法的实现
 
    -(int)sum:(int) x and:(int) y{
 
        return x+y;
 
    }
 
#import <Foundation/Foundation.h>

//写一个计算器的类
// 类名:Caculator
// 实例变量  num1 num2
// 行为: + - * /

@interface Caculator : NSObject
{
    //实例变量书写规范
    @public
    int _num1;  //数据类型  _实例变量名
    int _num2;
}

//写一个没有参数的方法
-(int)sum;  //没有参数,返回值是int类型
//有参方法的声明
-(int)sum:(int) x and:(int) y;
@end

@implementation Caculator
//方法名 sum
-(int)sum{

   //计算 _num1 + _num2;
    return _num1 + _num2;
}
//方法名 sum: and:
-(int)sum:(int) x and:(int) y{

    return x + y;
}
@end


int main(int argc, const char * argv[]) {
    @autoreleasepool {
        
        //创建对象
        Caculator *ca = [Caculator new];
        
        //对象访问实例变量
        ca->_num1 = 12;
        ca->_num2 = 30;
        
        //调用无参方法
        int s = [ca sum];
        
        //调用有参的方法
        s = [ca sum:34 and:23];
        NSLog(@"s = %d",s);
        
        
    }
    return 0;
}
2015-07-16 10:36:47.224 15-有参方法声明实现及调用[616:20947] s = 57

 

 类名:苹果手机(iPhone)
 属性:颜色(_color ), 大小(_size), _cpu
 行为:查看本机信息(aboutMyPhone),打电话(call), 发短信(sendMessage)
 
 实现该类,并:
 1)查看本机信息
 2)打电话给10086
 3)给10086发短信问联通的客服电话是多少
#import <Foundation/Foundation.h>
//iPhone 类的声明
typedef enum color{kColorWhite,kColorBlack,kColorTHJ} iColor;

@interface iPhone:NSObject
{
  //类的属性(实例变量、成员变量)
    @public
    //手机的颜色
    iColor _color;
    //手机的尺寸
    float _size;
    //手机的CPU
    NSString *_cpu;
  
}
  //类的行为(方法)的声明
//查看手机的信息  实质:把手机的实例变量值打印出来
-(void)aboutMyPhone;
//打电话,需要一个参数,参数就是电话号码(字符串)
-(void)callPhone:(NSString *) telNum;
//发短信,给指定号码 发送 短信,短信的内容可以指定
-(void)sendMessage:(NSString *)telNum andContent:(NSString *) content;
-(void)sendMessage:(NSString *)telNum :(NSString *) content :(int) age;        //在这个代码中没有用到这个方法,但给自己一个思考,二个以上的参数怎么定义
//
@end


//iPhone 类的实现
@implementation iPhone
//类的行为(方法)的声明
//查看手机的信息  实质:把手机的实例变量值打印出来
-(void)aboutMyPhone{

    NSLog(@"颜色:%d,尺寸:%.2f,cpu:%@",_color,_size,_cpu);

}
//打电话,需要一个参数,参数就是电话号码(字符串)
-(void)callPhone:(NSString *) telNum{

    NSLog(@"给 %@ 打电话!",telNum);

}

//发短信,给指定号码 发送 短信,短信的内容可以指定
-(void)sendMessage:(NSString *)telNum andContent:(NSString *) content{

    NSLog(@"给 %@ 发送短信,短信内容:%@ .",telNum,content);

}
@end

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        
        //创建对象
        iPhone *iphone7Plus = [iPhone new];
        
        //设定手机的信息
        iphone7Plus->_color = kColorTHJ;
        iphone7Plus->_cpu = @"A20";
        iphone7Plus->_size = 7.9f;
        
        //调用方法
        [iphone7Plus aboutMyPhone];
        
        //给10086打电话
        [iphone7Plus callPhone:@"10086"];
        
        //给10086发短信,
        [iphone7Plus sendMessage:@"10086" andContent:@"您好,请问联通的客服电话号码是多少?"];
        
        
        
        
    }
    return 0;
}
2015-07-16 10:46:44.531 15-苹果手机(Iphone)类[629:23162] 颜色:2,尺寸:7.90,cpu:A20
2015-07-16 10:46:44.532 15-苹果手机(Iphone)类[629:23162] 给 10086 打电话!
2015-07-16 10:46:44.532 15-苹果手机(Iphone)类[629:23162] 给 10086 发送短信,短信内容:您好,请问联通的客服电话号码是多少? .

 

<02>【掌握】01-类的声明和实现+【掌握】13-创建一个对象并访问成员变量+【掌握】14-无参方法声明实现及调用+【掌握】15-有参方法声明实现及调用+

标签:

原文地址:http://www.cnblogs.com/kongweiiwei/p/4650592.html

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