OC变量数据类型

//
//  main.m
//  OC10变量数据类型
//
//  Created by Zoujie on 15/9/4.
//  Copyright (c) 2015年 Zoujie. All rights reserved.
//
enum flag
{
    FIREST,
    SECOND,
    THIRD,
    FOURTH=5,
    FIFTH,
    
}ENDOFDATA;

//未命名的枚举类型
enum {
    up,
    down,
    left = 10,
    right,

};

enum boolean
{
    no = 0,
    false = 0,
    yes = 1,
    ture = 1,
};

enum Month
{
    january = 1,
    february,
    march ,
    april,
    may ,
    june,
    july,
    august,
    september,
    october,
    november,
    december
};

typedef int  Counter;//增加了变量定义的可读性

typedef enum{
    east,
    west,
    north,
    south
}Direction ;

#import <Foundation/Foundation.h>
#import "Fraction.h"

typedef Fraction *  NumberObject;
typedef Fraction * FractionObj;

int main(int argc, const char * argv[]) {
    @autoreleasepool {
    
        Fraction *myFtactin = [[Fraction alloc]init];
        
        [myFtactin setTo:10 over:20];
        
        Fraction *a = [[Fraction alloc]init];
        Fraction *b = [[Fraction alloc]init];
        
        [a setTo:1 over:3];
        [b setTo:3 over:7];
        
        [a print];
        [b print];
        
        NSLog(@"Fractions allocated :%i",[Fraction count]);
        a = [[Fraction allocF] init];
        b = [[Fraction allocF] init];
        Fraction *c = [[Fraction allocF] init];
        
        NSLog(@"Fractions allocated :%i",[Fraction count]);

        //枚举
//        enum flag {FIREST,SECOND,THIRD};
        switch (ENDOFDATA) {
            case FIREST:
                NSLog(@"first==%d",FIREST);
                break;
            case SECOND:
                NSLog(@"second");
                break;
            case THIRD:
                NSLog(@"third");
                break;
            case FOURTH:
                NSLog(@"fourth");
                break;
                case FIFTH:
                NSLog(@"fifth");
                break;
            default:
                break;
        }
        
        
        enum flag ONE,TWO;
        if (ONE){NSLog(@"ONE");};
        if (TWO){NSLog(@"TWO");};
        
        enum Month amoth;
        int days;
        NSLog(@"Enter month number:");
        scanf("%i",&amoth);
        
        switch (amoth) {
            case january:
            case april:
            case may:
            case june:
            case july:
            case august:
            case october:
            case december:
                days = 31;
                break;
            case march:
            case september:
            case november:
                days = 30;
                break;
            case february:
                days = 28;
                break;
            default:
                NSLog(@"bad month number");
                days = 0;
                break;
        }
        
        if (days != 0)NSLog(@"Number of days is %i",days);
        if (amoth == february)NSLog(@"...or 29 if it‘s a leap year");
        
        Counter  x = 2 , y = 3;
        NSLog(@"%d",x);
        
        NumberObject myValue1,myValue2,myValue3;//定义的三个Fraction对象
        
        Direction stpe1,stpe2;
        switch (stpe1)
        {
            case east:
                NSLog(@"%i",east);
                break;
                
            default:
                break;
        }
        
        FractionObj f1 = [[Fraction alloc]init];
        FractionObj f2 = [[Fraction alloc]init];
    }
    return 0;
    
    
}
//
//  Fraction.h
//  OC10变量数据类型
//
//  Created by Zoujie on 15/9/4.
//  Copyright (c) 2015年 Zoujie. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface Fraction : NSObject
{
    
}
@property (nonatomic ,assign) NSInteger a;
@property (nonatomic ,assign) NSInteger b;

-(void)setTo:(int)a over:(int) b;

-(instancetype)initWith:(int) a over:(int) b;//自定义初始化,所有的初始化方法都以init开头

-(void)print;

+(Fraction *)allocF;
+(int)count;
@end
//
//  Fraction.m
//  OC10变量数据类型
//
//  Created by Zoujie on 15/9/4.
//  Copyright (c) 2015年 Zoujie. All rights reserved.
//

#import "Fraction.h"
static int gGlobalVar = 0; //静态变量
static int gCounter;
@implementation Fraction

-(instancetype)init//重载init方法
{
    self = [super init];//首先调用父类的init方法
    if (self)
    {
        NSLog(@"111111");
    }
    return self;
}

-(Fraction *)initWith:(int) a over:(int) b
{
    self = [super init];
    if (self)
    {
        [self setTo:a over:b];
    
    }

    return self;
}

-(void)setTo:(int)a over:(int)b
{
    _a = a;
    _b = b;

}

-(void)print
{
    NSLog(@"%ld/%ld",_a,_b);
}

+(Fraction *)allocF
{
    extern int gCounter;
    ++gCounter;
    return [Fraction alloc];
}

+(int) count
{
    extern int gCounter;
    
    return gCounter;
}

@end
时间: 2024-10-25 10:59:52

OC变量数据类型的相关文章

OC常用数据类型大全解

UI基础 OC常用数据类型 Block Block封装了一段代码,可以在任何时候执行 Block可以作为函数参数或者函数的返回值,而其本身又可以带输入参数或返回值.它和传统的函数指针很类似,但是有区别:block是inline(内联函数)的,并且默认情况下它对局部变量是只读的 苹果官方建议尽量多用block.在多线程.异步任务.集合遍历.集合排序.动画转场用的很多 Blocks的定义 Blocks的定义: int (^MySum)(int, int) = ^(int a, int b) { re

OC的数据类型补充

OC的数据类型补充 1. Block Block封装了一段代码,可以在任何时候执行 Block可以作为函数参数或者函数的返回值,而其本身又可以带输入参数或者返回值 苹果官方建议尽量多用Block.在多线程.异步任务.集合遍历.集合排序.动画专场用的很多 Block跟函数很像: 可以保存代码 有返回值 有形参 调用方式一样 补充词汇:templates 模板.minus减法 //定义Block变量 void(^myblock)() = ^{ NSLog(@"--------------------

dos命令-环境变量-数据类型-命名规范

JAVA第一天笔记--dos命令-环境变量-数据类型-命名规范 1.能够阐述JDK和JRE之间区别 JDK(Java Development Kit)是提供给开发人员使用的JAVA开发工具包(javac.exe;java.exe),包含JRE(Java Runtime Environment). JRE(Java Runtime Environment)是Java程序运行环境,包含JVM(Java Virtual Machine)及核心类库. 总结为:开发人员使用JDK开发的程序,在JRE中运行

Java 语法 索引 ----- 变量-----数据类型

数据类型 类型 bits/byte 范围 默认值 byte 8/1 -128 +127 0 short 16/2 -32,768+32,767 0 int 32/4 -2,147,483,648 = -231+2,147,483,647 = 231-1 0 long 64/8 -9,223,372,036,854,775,808 = -263+9,223,372,036,854,775,807 = 263-1 0L float 32/4 1.40129846432481707e-45  = 2-

第二章 变量,数据类型和运算符

第二章 &变量,数据类型和运算符 英文新识: double 双精度浮点 string  字符串 character  字母 integer  整数 Scanner  扫描仪 score  分数         name  名字     boolean  布尔   true  真          false  假 语法新知: double score =98.5; //声明双精度浮点型变量score存储分数 String name="张大侠";        //声明字符串型变

变量,数据类型,运算符

梆梆梆梆......我又来了 这次我要写的是-----    (看标题) 第一个是变量,数据类型 //变量分为:变量名,变量类型,变量值 数据类型为: 整数    int    byte   short   long 小数(双精度浮点型)      double          float 字符型     char 字符串型     String 完整展示: public class Text1{ public static void main(String[]args){ String na

oc之数据类型转换规则

对含所有不同类型数据的表达式求值时,Objective-C编译器会遵循一些非常严格的规则,下面总结了表达式求值的过程中,不同类型的操作数发生转换的先后顺序: 1.如果其中一个操作数是long double类型的,另一操作数被转为long double型,则计算结果也是这种类型. 2.如果其中一个操作数是double型,另一操作数转换为double型,则计算结果也是这种类型. 3.如果其中一个操作数是float型,另一操作数转换为float型,则计算结果也是种类型. 4.如果其中一个操作数是Boo

python介绍 编程语言分类及对比 python解释器安装(多版本共存) 变量 数据类型(三种)

python介绍编程语言分类及对比python解释器安装(多版本共存)变量数据类型(三种) 一:python介绍 1.python是什么? python是一门编程语言,编程语言就是一门语言 语言就是一个事物与另外一个事物沟通的工具 而编程语言则是人与计算机沟通的介质 2.为什么要跟计算机沟通:为了奴役计算机 奴隶主-------(人类的语言)-------->奴隶 奴隶主-------(编程语言)-------->计算机 3.什么是编程 奴隶主把想让计算机替自己做事情的逻辑用编程语言给表达出来

oc基本数据类型

布尔数据类型 BOOL(YES(1)/NO(0)) NSLog() 等同于 printf()NS: 来源于工具包还被称为NextSTEP的时候 使用前缀避免名称冲突.NSLog(@"Hello,Objective-C!”); 基本上所有的变量都是以@开头.字符串使用@开头.@符号意味着引号内的字符串应作为Cocoa的NSString元素来处理oc中的@符号看成是对C语言的扩展. for(int i=0;i<5;i++){ NSLog(@"%d\n",i);} NSLog