OC语言-01类和对象

// cc 文件名.m -framework Foundation   编译链接

#import <Foundation/Foundation.h>

//枚举性别
typedef enum{
    SexMen,
    SexWoman,
    SexUnknow
} Sex;

//枚举毛色
typedef enum{
    FurColorBlack,
    FurColorRed,
    FurColorGreen
} FurColor;

//结构体日期
typedef struct{
    int year;
    int month;
    int day;
} Date;

//创建狗类
@interface Dog : NSObject
{
    @public
    double weigth;  //体重
    FurColor fcolor; //毛色
}
- (void)run;
- (void)eat;
@end

//实现狗类方法
@implementation Dog
- (void)run
{
    weigth -= 1;
    NSLog(@"狗开始跑了,体重减1,现在的体重是:%.2f",weigth);
}
- (void)eat
{
    weigth += 1;
    NSLog(@"狗开始吃了,体重加1,现在的体重是:%.2f",weigth);
}
@end

//创建学生类
@interface Student : NSObject
{
    @public
    char *name; //姓名
    Sex sex;  //性别
    int age;  //年龄
    double weigth; //体重
    Date birthday; //生日
    Dog *dog;
}
- (void)liuDog;
- (void)weiDog;
- (void)print;
@end

//实现学生方法
@implementation Student
- (void)print
{
    NSLog(@"姓名:%s,性别:%d,年龄:%d岁,体重:%.2f公斤,出生日期:%d-%d-%d,狗的体重:%.2f,狗的毛色:%d",name,sex,age,weigth,birthday.year,birthday.month,birthday.day,dog->weigth,dog->fcolor);
}

-(void)liuDog
{
    [dog run];
}
- (void)weiDog
{
    [dog eat];
}
@end

int main()
{
    Dog *zsDog = [Dog new];
    zsDog->weigth = 20;
    zsDog->fcolor = FurColorBlack;

    Student *zs =[Student new];
    zs->name = "jack"; //??中文赋值时无输出??
    zs->sex = SexMen;
    zs->age = 20;
    zs->weigth = 75.3;
    Date d = {2010,10,5};
    zs->birthday = d;
    zs->dog =zsDog;
    [zs print];
    [zs liuDog];
    [zs weiDog];
    return 0;
}
时间: 2024-10-12 09:02:17

OC语言-01类和对象的相关文章

人生三分之一埋在土里的时候,选择了学习OC语言 1 类和对象

人生三分之一埋在土里的时候,选择了学习OC语言  1 类和对象 今天开始整理我所理解的东西,希望能够帮助一些像我一样想要学习一门计算机语言的朋友们, 可能在很多的地方理解的也不够深入,有不对的地方还希望关注的朋友能够谅解,也多多提您的宝贵意见! 学习前需要具备的条件: 首先你要有C语言的一些基础,如果你没有,那可以先去自学一下C语言, 我是通过以下网站进行学习的,也希望对你能够有帮助! http://c.biancheng.net/cpp/u/jiaocheng/ 其次,你要有一台mac电脑,

Runtime of Objective-C 2-理解oc中的类和对象

1: 类Class:       typedef struct objc_class * Class;     从Class的定义可以看出,它是一个 objc_class 结构类型的指针,objc_class又是什么呢? struct objc_class { struct objc_class* isa; struct objc_class* super_class; //root的为null const char* name; long version; long info; long in

OC 01 类和对象

一.  定义OC的类和创建OC的对象 接下来就在OC中模拟现实生活中的情况,创建一辆车出来.首先要有一个车子类,然后再利用车子类创建车子对象 要描述OC中的类稍微麻烦一点,分2大步骤:类的声明.类的实现(定义).跟函数类似,函数有分声明和定义 1.     类的声明 1)       代码编写 定义一个Car类,拥有2个属性:轮子数.时速,1个行为:跑 类名\属性的命名规则:标示符的规则 类名的命名规范:有意义.驼峰标识.首字母大写 #import <Foundation/Foundation.

『iOS开发』「OC」02 - 类和对象

一.面向对象 OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能的类. 术语:OO面向对象.OOP面向对象编程 二.类和对象 (一)关于类 类的设计只关注三个东西:类名.属性和方法 注意:一般名词都是类,拥有相同属性和行为的对象都可以抽象为一个类,类名是标识符的一种,需要符合规范,通常类名的第一个字母大写,且不能有下划线,如果有多个单词则使用驼峰标识.在对方法进行类的划分中,一般

【黑马程序员】OC基本语法——类与对象相关概念

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 最近在学OC的面向对象部分,可能是因为以前学Java和PHP时习惯了主流的面向对象思想,接触到OC的面向对象有很多说法都不习惯,查了很多东西,终于基本都搞清楚了,在这里小结一下. 一.类和对象 1.类:类是一个抽象概念,代表着一类事物,如:人,动物,交通工具等:这个和Java或PHP里类的概念没有区别. 其定义方法如下: @interface Student : NSObject { NSSt

黑马程序员 oc中的类与对象

类就好像一张图纸,而对象就是通过这个图纸创造出来的实物,一个类可以创造出多个对象,对象之间可以是不同的,根据成员变量值的不同即属性不同,对象也就 会不同,做出的行为状态也不同,例如一个车类,它的属性有speed,wheels等,根据speed值的不同可以区分对象,做出跑的状态不同,有的 speed是250km/h,有的speed是300km/h.     在oc中类的设计和对象的创建// 只要import Foundation.h就能使用Foundation框架里的所有头文件#import  <

OC语言学习 (四) SEL对象,用于日志输出的宏

SEL 对象即一个selector对象,保存一个方法的地址. Person.h #ifndef oc_Person_h #define oc_Person_h @interface Person : NSObject { int age; @protected float height; } @property int age; //编译器自动解释成 int age的get/set方法 - (void) say; - (void) testSEL; @end #endif Person.m #i

Java知识系统回顾整理01基础02面向对象01类和对象

一.面向对象实例--设计英雄这个类 LOL有很多英雄,比如盲僧,团战可以输,提莫必须死,盖伦,琴女 所有这些英雄,都有一些共同的状态 比如,他们都有名字,hp,护甲,移动速度等等 这样我们就可以设计一种东西,叫做类,代表英雄这样一种事物 类: 英雄(Hero) 状态: 名字, 血量,护甲,移动速度 ? ? 注:?本例用到了3种数据类型 分别是 String(字符串),float(浮点数), int(整数) 注:?这个类没有主方法,不要试图运行它. 并不是所有的类都是有主方法的. ? ? ? ?

ios开发之OC基础-类和对象

本系列的文章主要来自于个人在学习前锋教育-欧阳坚老师的iOS开发教程之OC语言教学视频所做的笔记,边看视频,边记录课程知识点.建议大家先过一遍视频,在看视频的过程中记录知识点关键字,把把握重点,然后再将零散的知识点整理出来.这样的学习方法会带来更多的收获,同时要多做练习,按照思路,默写.改写代码.在这里,感谢欧阳坚老师,学习你的课程使我走上了ios的开发之路. 一定要明确一个要从事的方向,要不然就会感到迷茫.学习ios开发,并且从事ios开发这个行业,这就是我的选择.看到我的博客系列文章,其中大