//
// main.m
// 第一个OC类-方法2
//
// Created by Caoxia on 15/11/10.
// Copyright © 2015年 Caoxia. All rights reserved.
// 在OC中,方法相当于C语言里面的函数,但是又不是函数,每一个方法都是相当于类和对象来说的,下面我们将根据具体的例子来说说OC中方法\
中的一些基本概念
#import <Foundation/Foundation.h>
typedef enum color
{
KcolorBlack,
KcolorWhite,
KcolorPink,
KcolorGold
} phoneColor;
//---------------------------------------------华丽的分割线-----------------------------------------------
//---------------------------------------------华丽的分割线-----------------------------------------------
@interface iPhone : NSObject //在手机类定义三个成员变量
{
@public
float _inches;
phoneColor _myPhonecolor; //这里将结构体当做iPhone的一个属性
NSString *_name;
NSString *_number;//定义手机号码
}
//没有参数没有返回值的方法
- (void)describeMyPhone;
//没有参数有返回值的方法
- (NSString *)sayMyPhoneNumber;
//有参数没有返回值
- (void)sayMyPhoneImformationWithMyInches:(float)inches;
//有参数有返回值的函数
- (NSString *)myPhoneNumberWithMySaying:(NSString *)number;
- (NSString *)myPhoneNumberWithMySaying2:(NSString *)number;
@end
//---------------------------------------------华丽的分割线-----------------------------------------------
@implementation iPhone
- (void)describeMyPhone
{
if (_myPhonecolor == KcolorBlack) {
NSLog(@"我手机的颜色是黑色的");
}else if (_myPhonecolor == KcolorWhite)
{
NSLog(@"我手机的颜色是白色的");
}else if (_myPhonecolor == KcolorGold)
{
NSLog(@"我手机的颜色是粉红色的");
}else if (_myPhonecolor == KcolorPink)
{
NSLog(@"我手机的颜色是金色的");
}else
{
NSLog(@"滚犊子");
}
NSLog(@"手机是%f英寸的,手机的名字叫%@",_inches,_name);
}
- (NSString *)sayMyPhoneNumber
{
return _number;
}
- (void)sayMyPhoneImformationWithMyInches:(float)inches
{
NSLog(@"%s",__func__); //这个方法是打印出该方法,用%s输出
NSLog(@"手机尺寸是%f inches",inches);
}
- (NSString *)myPhoneNumberWithMySaying:(NSString *)number
{
NSString *str = [NSString stringWithFormat:@"我的手机号是%@",number];
//NSLog(@"%@//",str);
return str;
}
- (NSString *)myPhoneNumberWithMySaying2:(NSString *)number
{
//这里传进来的是number,但是却没有用,还是使用前一次赋值的成员变量,所以,即使输入了88888也不会使用
NSString *str = [NSString stringWithFormat:@"我的手机号是%@",_number];
//NSLog(@"%@//",str);
return str;
}
@end//定义一个
//---------------------------------------------华丽的分割线-----------------------------------------------
int main(int argc, const char * argv[]) {
@autoreleasepool {
// insert code here...
// NSLog(@"Hello, World!");
/*以前我们在C语言中的函数,有四种组合类型,
1.没有参数,没有返回值.
2.没有参数有返回值.
3.有参数,没有返回值.
4.有参数也有返回值.
如果没有学习过C语言的也没关系,什么是方法呢,方法区别于变量,方法就是在一个结构里面实现对数据的一些处理.下面看例子
*/
// insert code here...
iPhone *xiaomingiPhone = [iPhone new];
xiaomingiPhone->_name = @"魔性iPhone";
xiaomingiPhone->_myPhonecolor = KcolorWhite;
xiaomingiPhone->_number = @"1383838438";
xiaomingiPhone->_inches = 4.7;
NSString *str = [xiaomingiPhone sayMyPhoneNumber];
NSLog(@"%@",str);
[xiaomingiPhone sayMyPhoneImformationWithMyInches:5.0];
NSString *newStr = [xiaomingiPhone myPhoneNumberWithMySaying:@"16390474"];
NSLog(@"%@///",newStr);
NSString *newStr2 = [xiaomingiPhone myPhoneNumberWithMySaying2:@"88888888"];
NSLog(@"%@///",newStr2);
}
return 0;
}