OC--类和对象

OC是面向对象的,C是面向过程的

面向过程关注的是解决问题需要哪些步骤;面向对象关注的是解决问题需要哪些对象。

类:

#import <Foundation/Foundation.h
    // : NSObject 目的是:让Car这个类具备创建对象的能力
    @interface Car : NSObject
    {//用来声明对象的属性(实例变量\成员变量,默认会初始化为0)

        //@public可以让外部的指针间接访问对象内部的成员变量
        @public
        int wheels;
        int speed;
    }

    //方法(行为)方法名、参数、返回值(声明、实现)
    //只要是OC对象的方法,必须以减号 - 开头
    //OC方法中任何数据类型都必须用小括号()括住
    //OC方法中的小括号():括住数据类型
    //方法名:run
    - (void)run;

    //OC方法中,一个参数对应一个冒号
    //方法名:pingfang:(冒号也是方法名的一部分)
    - (int)pingfang:(int)num;

    //- (int)sum:(int)num1:(int)num2;
    //方法名:sumWithNum1:andNum2:
    -(int)sumWithNum1:(int)num1 andNum2:(int)num2;

    @end

    //类的实现
    @implementation Car
    //方法的实现(说清楚方法里面有什么代码)
    //用来实现@interface中声明的方法
    - (void)run
    {
        NSLog(@"车子跑起来");
    }

    - (int)pingfang:(int)num
    {
        return num * num;
    }

    //- (int)sum:(int)num1:(int)num2
    -(int)sumWithNum1:(int)num1 andNum2:(int)num2;
    {
        return num1 + num2;
    }
    @end

    int main()
    {
        //在OC中,想执行一些行为,就些上一个中括号[行为执行者 行为名称]
        //利用类来创建对象
        //执行了Car这个类的new行为来创建新对象

        //定义了一个指针变量P,P将来指向的是Car类型的对象
        //[Car new]会创建出一个新对象,并且会返回新对象本身(新对象的地址)
        Car *p = [Car new];

        Car *p2 = [Car new];

        //给P所指向对象的wheels属性赋值
        p->wheels = 4;
        p->speed = 260;

        p2->wheels = 5;
        p2->speed =300;

        //给P所指向对象发送一条run消息
        [p run]
        [p2 run]

        NsLog(@"车子有%d个轮子,时速为:%dkm/h",p->wheels,p->speed);

        //int a = [p pingfang:10]

        //int a = [p sum:10 :5]

        int a = [p sumWithNum1:20 andNum2:4]
        NSLog(@"%i",a);
    }

方法和函数的区别:
方法:
1.对象方法都是以减号 - 开头
2.对象方法的声明必须卸载@interface和@end之间
对象方法的实现必须写在@implementation和@end之间
3.对象方法只能由对象来调用
4.对象方法归类\对象所有

函数:
1.函数能写在文件中的任意位置(除@interface和@end之间),函数归文件所有
2.函数调用不依赖于对象

成员变量的作用域:

@public :在任何地方都能直接访问对象的成员变量
@private :只能在当前类的对象方法中直接访问 (@implementation中默认是@private)
@protected :可以在当前类及其子类的对象方法中直接访问 (@interface默认就是@protected)
@package : 只要处于同一框架中,就能直接访问对象的成员变量

@interface和@implementation中不能声明同名的成员变量

时间: 2024-10-26 04:50:18

OC--类和对象的相关文章

OC类与对象实例化,类之间的方法调用小题目

两个OC类与对象实例化题目 要求: * 类名.属性名.属性类型.方法名.方法参数.方法返回值自拟 * 自己写main函数测试设计是否合理 /* 1.设计一个"狗"类 1> 属性 * 颜色 * 速度(单位是m/s) * 性别 * 体重(单位是kg) 2> 行为 * 吃:每吃一次,体重增加0.5kg,输出吃完后的体重 * 吠(叫):输出所有的属性 * 跑:每跑一次,体重减少0.5kg,输出速度和跑完后的体重 * 比较颜色:跟别的狗比较颜色,如果一样,返回YES,不一样,返回NO

oc类和对象

//  main.m //  OC01类和对象 // //  Created by dllo on 15/7/15. //  Copyright (c) 2015年 cml. All rights reserved. // #import <Foundation/Foundation.h> // 先引头文件 #import"Phone.h" #import"Audio car.h" #import"Student.h" int mai

Oc(类和对象)(ClassAndObjict)

main函数 // //  main.m //  2-2 LessonClassAndObject // //  Created by lanouhn on 15/2/2. //  Copyright (c) 2015年 lanouhn. All rights reserved. // //import引用系统的头文件用 <>, 引用自定义类的头文件用 "" #import <Foundation/Foundation.h> #import "Car.

二.oc类和对象

 面向对象思维的建立 l   类的概念和设计 l   成员变量 l   访问修饰符public/private/protected  OC 方法,封装 l   方法的概念 l   实例方法和类方法 l   构造函数和自定义构造函数 l   description方法 l   封装的概念 l   setter/getter方法的建立 l   self关键字的讲解 l   property关键字

oc学习之对象作为类的属性

对象做为类的属性 1. 一个Target中的类无法直接在另外1个Target中访问. 2. 类的属性代表什么? a. 类的属性代表这类事物具有的共同的特征 b. 类的属性代表这个类所拥有的东西. 灯: 属性: 形状 功率 价格  品牌 剩余寿命 方法: 照明. 音响: 方法: 发声音. 门: 属性: 尺寸 材料 颜色 价格 方法: 开 关 3. 类的方法代表什么? a. 代表这个类所具备的行为. 这个类所具备的功能. b. 一个类有什么方法 就去分析这个类有什么功能. 4. 属性的本质是变量.

oc知识点 类和对象

第一讲  类和对象 1面向对象 OOP 面向对象编程的三大特性 :封装,继承,多态 2类和对象的概念和区别 类:具有相同特征和行为的事物的抽象 对象:就是类的实例  ,类是对象的类型 3类和对象的定义 接口部分: 对外声明类的特征和行为.(.h) 实现部分:行为的具体实现(.m) 接口部分标志 :@interface [email protected] 声明类实例变量(成员变量)和方法,及特征和行为 例 接口部分代码: @interface Teacher :NSObject{ NSString

1,OC语言的前世今生 ,2,OC语言入门,3,OC语言与C的差异,4,面向对象,5,类和对象的抽象关系,6,类的代码创建,7,类的成员组成及访问

1,OC语言的前世今生 , 一, 在20世纪80年代早期,布莱德.麦克(Brad Cox)设计了OC语言,它在C语言的基础上增加了一层,这意味着对C进行了扩展,从而创造出一门新的程序设计语言,支持对象的创建和操作. 二,1985年,被赶出苹果公司的乔帮主成立了Next公司; 三, 1988年,Next计算机公司获得了OC语言的授权,并发展了OC语言库和一个开发环境,1994年,Next计算机公司(同年更名为Next软件公司)和Sun公司针对NEXTSTEP系统联合发布了一个标准规范,名为OPEN

oc基础第一天---类的方法,类与对象

1. 如何为类定义行为. 刚刚我们聊的是如何为类定义特征. 如何定义行为? 行为就事1个功能 也就事1个函数. OC中把行为叫做方法. 实际上和函数是一样的 代表1个功能模块. 2. 为类定义无参数的方法. 类的方法也分为两个部分. a. 方法的声明 1). 位置: 写在声明类的大括弧的外边. 2). 声明的语法: - (返回值类型)方法名; - (void)sayHi; 这个方法的名字就叫做sayHi; b. 方法的实现. 1). 位置: 写在类的实现之中. 2). 实现的语法: - (返回值

2015.12.17 初识OC&amp;iOS 类和对象

iOS是iPhone Operation System的缩写. 使用iOS系统的设备有哪些『iPhone手机,iPad,Apple watch(Watch OS),iPod touch』. 交互层:cocoa touch 操作系统层:iOS 底层:硬件 #include 与 #import的区别 #include完成头文件的导入,可能会导致头文件相互引用和函数\变量的重复定义. eg: 为了解决这个问题,我们必须在文件的前面加上『#ifndef』 #import不仅完成头文件的引入,并且防止头文

oc基础第二天类与对象---1复习

1. OC语言是在C语言的基础之上新增了一些面向对象的语法. 将C语言复杂的.繁琐的.东西封装的更为简单和易用. Objective-C: 本质其实就是C语言. OC完全兼容C. 2. OC将C难用的东西做了封装. 1). #import指令. 2). NSLog()函数. 3). NSString @"jack" 新增了一些数据类型. BOOL class 类 3. 面向过程与面向对象. 4. 代码中的面向过程与面向对象. 5. 类与对象 类 对象 6. 类和对象的关系 类是模板 对