类和对象

来源:互联网 发布:linux执行sh脚本 编辑:程序博客网 时间:2024/04/27 10:07

OC C繁琐的语法封装起来更为简单----封装 

   C语言的基础上新增一些面向对象----面向对象


 

 买电脑 10000 iOS确定型号 买电脑直接买 不注重如何实现

 笔记本电脑熟悉的避免 


 

 面向对象---带钱买买买 

 吃饭面向过程 ---种菜,收菜,洗菜,,,,,

 面向过程,

 

 代码中遇到和过程的对象

 面相过程:遇到一个需求,实现每一步,都是自己写代码一步步的实现,

 面相对象:遇到一个需求,不要亲自去实现,而是找一个专门做这个事情的人来搞定

 

 

 面向过程缺点:后期维护和修改不方便

 

 面向对象再后期的维护和修改更加的方便和快捷

 

 当遇到一个需求的时候,不要亲自去实现

 1.先看看有没现成的人专门做这个事情的----框架。如果有直接使用,如果没有,就自己制造个拥有这样功能的人(可以重复多次滴使用)

 

 

 对象:对象是生活中的一个具体存在,看得见,摸得着,拿过来就可以用,

 

 类:物以类聚,物以群分 类是一群具有相同特征或者行为的事物,一个统称,不能直接使用。

 是没有办法直接使用的,只能去找到这一类事物当中的一个具体存在,然后才能使用这个具体存在


 食物:类苹果,米饭等能吃的统称

 水果:类制定的某些统称为

 苹果:类  

 烟台苹果:类 

 小明早上吃的那个苹果----对象,具体的纯在 

 

 

 对象在某一类中取出的 对象在类中取出的类中有什么,对象就会有什么,类是母版,嘞的对象,是从某版中创建出来的,功能不多不少

 

 模子上有啥 月饼上就会有啥,月饼可以吃,所以对象可以使用  模子上是类,月饼是类

 

 如何设计一个类:

 类的作用:用来描述一群具有相同特征和行为的事物。

 设计类的三要素:1这类事物叫什么名字   2这类事物具有相同的特征,这些类拥有什么 3这些食物具有共同的行为,会什么会做什么

 

 如何找到类:

 名词提炼法:分析下整个业务流程,分析下出现的名词,就是这些的类

 

 3辆坦克发射6枚导弹击中3架飞机

 坦克类:特征,大小,颜色,重量,材质,射程

        行为:行驶,发射

 炮弹:型号大小,威力,颜色,重量等

    行为:飞,爆炸


小明在公交车上牵着一只叼着热狗的狗------人类,公交车,热狗,狗

 

 现有类,还是现有对象

 1.现实的角度,先又对象再有类

   代码的角度,是先有类,才有对象,

 

 位置:直接写在源文件中,不要写在main函数之中

    语法:类的定义,分为两部分,类的声明和实现

 类的声明

    @interface 类名:NSObjective {

        这个类具有的共同的特征,讲他们定义为变量

 }

 功能就是1一个方法,讲方法的声明写在这里

 @end

 

 类的实现

 @implementation 类名

 讲方法的实现写在这里

 @end

 

 肯定是有声明和实现的

    类名用你描述的事物的明明就可以了首字母大写

 

 

 定义在{}中的用来表示这类事物的共同的特征的变量,我们叫做属性----成员变量-----实例变量-----字段 

 

 

 类是无法直接使用的。如果非要使用这个类,就必须找到这个类中某个具体的存在---对象,再使用这个对象。

 类和对象的关系:类中有的东西,这个类的对象也有,不会多也不会少,对象就可以使用,这个时候,我们就可以使用对象里面的东西。

 

 如果创建一个累的对象

 语法:  类名 *对象名 = 【类名 new】;

        Person *gaofei = [Person new];

    根据这个Person这个类的模板,创建了一个对象的名字叫gaofei

    gaaofei对象的特征;1可以直接使用,勒种定义的东西,这个对象也有,不会多,也不会少

 

 如何使用对象:

     如何访问对象的属性:默认情况下,对象的属性,是不允许外界直接访问的,

                    如果允许对象的属性可以被外界访问,那么就声明一个@public

 

 

 访问对象的属性方式

    对象名->属性 =

    *对象名)。属性名

 

 


 */

#import <Foundation/Foundation.h>

@interface Student :NSObject

{

    @public

    NSString *_name;

    int _age;

    int _yuwen;

    int _shuxue;

    int _yingyu;

}

@end

@implementation Student


@end




@interface Person : NSObject

{

    @public

    NSString *_name;

    int _age;

    float _height;

}


@end

@implementation Person


@end




int main(int argc,const char * argv[]) {

    @autoreleasepool {

        Student *s1 = [Studentnew];

        s1->_age =123;

        s1->_name =@"校花";

        s1->_shuxue =99;

        s1->_yingyu =88;

        NSLog(@"%d---%d----%d-----%@",s1->_age,s1->_shuxue,s1->_shuxue,s1->_name);

        

        Person *gaofei = [Personnew];

        

        (*gaofei)._age =12;

        

//        gaofei->_name = @"Jack";

//        gaofei->_age = 12;

//        gaofei->_height = 20;

        

        NSLog(@"%d\n",gaofei->_age);

        

        

    

    }

    return0;

}



0 0