OC简单知识的练习

来源:互联网 发布:淘宝开店类目 知乎 编辑:程序博客网 时间:2024/05/29 11:56

习题:

利用Objective-C语言编写一个Screen类,它包括一个int类型的属性color,和两个对color进行操作的方法。其中一个是用于设置color值的方法setColor,方法没有返回值,形参是一个int类型的变量_color,方法的实现是将_color的值赋值给color。还有一个是用于显示color值的方法displayColor,它是一个没有参数和返回值的方法,方法的实现是显示color的值。

(1)     在主函数中创建Screen类的对象myScreen。。

(2)     然后从键盘上接收一个整数,利用发送消息的方式调用myScreen的setColor方法,将这个整数发送给myScreen,完成对属性color的赋值。

(3)     调用对象myScreen的displayColor方法输出color的值。


//
//  Screen.h
//  OC_03面向对象编程基础4.1.1任务描述
//
//  Created by 谷建鹏 on 14-3-19.
//  Copyright (c) 2014年 com.csdn. All rights reserved.
//


#import <Foundation/Foundation.h>
@interface Screen : NSObject
{
    int  color;
}

//用于设置color的变量方法;
//无返回值;
-(void)setColor:(int) _color;

//用于设置color变量的调用方法用displayColor;
-(void)displayColor;

@end


//
//  Screen.m
//  OC_03面向对象编程基础4.1.1任务描述
//
//  Created by 谷建鹏 on 14-3-19.
//  Copyright (c) 2014年 com.csdn. All rights reserved.
//


#import "Screen.h"
@implementation Screen
//设置形参数,_color;
-(void)setColor:(int)_color{
   //将_color的值赋值给color
    color = _color; 
}

//用于显示color的调用方法;没有参数和返回值的参数。。
-(void)displayColor{
    NSLog(@"您输入一个数是:\ncolor = %d\n",color);
}

@end


//
//  main.m
//  OC_03面向对象编程基础4.1.1任务描述
//
//  Created by 谷建鹏 on 14-3-19.
//  Copyright (c) 2014年 com.csdn. All rights reserved.
//


#import <Foundation/Foundation.h>
#import "Screen.h"
int main(int argc, const char * argv[])
{


    @autoreleasepool {
       
        //创建一个Scree类的对象screen;
        Screen *screen = [[Screen alloc] init];
       
        //定义color;
        int color;
        //从键盘上插入一个color;
        scanf("请您输入一个数:%d",&color);
        [screen setColor:color];
        [screen displayColor];
        
        
        
    }
    return 0;
}

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

简单的四则运算问题

//
//  Calculator.h
//  简单运算
//
//  Created by 谷建鹏 on 14-3-20.
//  Copyright (c) 2014年 com.csdn. All rights reserved.
//


#import <Foundation/Foundation.h>


@interface Calculator : NSObject


//定义设置初始累加数的方法setAccmulator
-(void) setAccmulator:(double) val;
-(void) clear;  //清零累加数的方法
-(double) accmulator;


-(void) add:(double) val;
-(void) subtract:(double) val;
-(void) multiply:(double) val;
-(void) divide:(double)val;
@end


//
//  Calculator.m
//  简单运算
//
//  Created by 谷建鹏 on 14-3-20.
//  Copyright (c) 2014年 com.csdn. All rights reserved.
//






#import "Calculator.h"


@implementation Calculator
{
    double accmulator;
}


-(void) setAccmulator:(double) val
{
    accmulator=val;
}


-(void) clear
{
    accmulator=0;
}


-(double) accmulator
{
    return accmulator;
}


-(void) add:(double) val
{
    accmulator+=val;
}


-(void) subtract:(double) val
{
    accmulator-=val;
}


-(void) multiply:(double) val
{
    accmulator*=val;
}


-(void) divide:(double)val
{
    accmulator/=val;
}


@end




//
//  main.m
//  简单运算
//
//  Created by 谷建鹏 on 14-3-20.
//  Copyright (c) 2014年 com.csdn. All rights reserved.
//


#import <Foundation/Foundation.h>
#import "Calculator.h"
int main(int argc, const char * argv[])
{


    @autoreleasepool {
        
        Calculator *calc = [Calculator new];
        
        [calc setAccmulator:10.0];
        [calc add:50.];
        [calc divide: 20.0];
        [calc multiply:40];
        [calc subtract:20];
        NSLog(@"The result is %g",[calc accmulator]);
        [calc clear];
        NSLog(@"The accmulator is %g",calc.accmulator);
        
    }
    return 0;
}


xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx


定义一个名为Car的类,类中的属性可以包含轮子转速speed、轮子的半径radius、汽车重量weight。为Car类定义一些方法,要求能够通过这些方法来设置类中的属性值。创建该类的两个实例化对象。定义一个函数,要求能够计算出汽车的行驶速度并且显示出来。

//
//  main.m
//  轮子转速
//
//  Created by 谷建鹏 on 14-3-20.
//  Copyright (c) 2014年 com.csdn. All rights reserved.
//




#import <Foundation/Foundation.h>


@interface Car : NSObject


@property float speed,weight;
@property int radius;
-(void)display;


@end


@implementation Car
@synthesize speed,weight,radius;


-(void)display{
    NSLog(@"汽车的重量:%.2f,汽车的行驶速度:%.3f",weight,speed*2*3.14*radius);
}


@end


int main(int argc, const char * argv[])
{
    
    @autoreleasepool {
        
        Car *car = [[Car alloc] init];
        [car setSpeed:3.5];
        [car setRadius:3];
        [car setWeight:1000.55];
        [car speed];
        [car radius];
        [car weight];
        
        [car display];
    }
    return 0;
}


xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx


dealloc 方法的使用


//
//  Student.h
//  5_dealloc
//
//  Created by 谷建鹏 on 14-3-18.
//  Copyright (c) 2014年 com.csdn. All rights reserved.
//


#import <Foundation/Foundation.h>
@interface Student : NSObject
{
    int  age;
    NSString *s; //存字符串
}
-(void)setAge:(int) _age;
//定义一个方法
-(void)test;
@end


//
//  Student.m
//  5_dealloc
//
//  Created by 谷建鹏 on 14-3-18.
//  Copyright (c) 2014年 com.csdn. All rights reserved.
//


#import "Student.h"
@implementation Student
-(void)setAge:(int) _age{ 
    //申请一个内存空间,长度为4个字节
    //s = (char *)malloc(5);
    //给s赋值为csdn  
    s  = [[NSString alloc] initWithString:@"csdn"];
    age = _age;
}


-(void)test{
    //NSLog(@"age = %d,s = %@",age,s);
}

调用dealloc方法

-(void)dealloc{ 
    //先释放父类的资源
    [super dealloc];
    NSLog(@"释放资源!!!");
}

@end


//
//  main.m
//  5_dealloc
//
//  Created by 谷建鹏 on 14-3-18.
//  Copyright (c) 2014年 com.csdn. All rights reserved.
//


#import <Foundation/Foundation.h>
#import "Student.h"//引入头文件
int main(int argc, const char * argv[])
{


    @autoreleasepool {
    
        //将Student进行实例化
        Student  *stu =[[Student alloc] init];
        //进行调用set方法
        [stu setAge:34];
        //打印输出
        [stu test];
        
        [stu release];
        
    }
    return 0;
}



























0 0
原创粉丝点击