文档章节

第01天OC语言(06):第一个OC类

lyh2017iOS
 lyh2017iOS
发布于 2017/07/10 00:52
字数 1334
阅读 5
收藏 0

#####一、概念

/*
>>>1. 如何编写类的声明
   以@interface开头,以@end结束,然后在class name 对应的地方写上 事物名称,也就是类名即可
   注意 : 类名的首字符必须大写
   声明一个类的目的就是为了告诉系统,我们这个类中有哪些属性 和行为
   CO类声明中 属性只能写在@interface 和 @end之前的{}中
   注意  : 编写OC类属性的时,建议将所有属性的名称前面加上 _ (iOS规范)
 
  类名后面的 : NSObject 是为了让我们的iPhone类具有创建对象的能力
 
>>>2. 如何编写类的实现
 以@implementtation开头, 以@end结尾,然后在class对应的地方 写上声明时 声明的类的名称, 必须利用声明的类名,一模一样
 
 
>>>3.如何通过一个类 创建一个对象
  在OC中想要通过一个类来创建一个对象,必须给类发送一个消息(好比C语言中调用方法一样)
  如何发送消息? 在OC中只要想要 发送消息就先写上 [类名称/对象名称 方法名称];
  发送 什么消息(调用方法)可以创建一个对象呢? new
 
 >>>4,只要通过一个类调用类的new方法,也就是给类 发送一个叫new的消息之后
 系统内部 就会做3件事情
 1.为 Iphone 类 创建出来的对象分配存储空间
 2. 初始化 iPhone 类创建出来的对象中的属性
 3. 返回 iPhone类 创建出来的对象 对应的地址 (指针)
 
 >>>4.类的对象的概念
  通过 一个iPhone类型的指针 接受了 iPhone对象的地址
  如果使用给一个指针保存了某一个对象的地址,那么我们就称这个指针为 某个类的对象
  利用 iPhone类型的指针 保存了 iPhone对象的地址, 那么我们就称之为 iPhone类型的指针 (p)称之为 iPhone对象
 */

#####二、代码

#import <Foundation/Foundation.h>
#pragma mark 类
/*
 事物名称:iPhone
 属性:颜色,型号,cpu,尺寸       == 成员变量
 行为:打电话,发短信,上网       == 成员方法
 
 C语言中函数分为声明和实现
 OC中定义一个类也分为声明和实现,也就是说以后我们OC中定义类,就是写在类的声明和实现
 
 */
#pragma mark 1. 如何编写类的声明
//  以@interface开头,以@end结束,然后在class name 对应的地方写上 事物名称,也就是类名即可
//  注意 : 类名的首字符必须大写
//  声明一个类的目的就是为了告诉系统,我们这个类中有哪些属性 和行为
//  CO类声明中 属性只能写在@interface 和 @end之前的{}中
//  注意  : 编写OC类属性的时,建议将所有属性的名称前面加上 _ (iOS规范)

// 类名后面的 : NSObject 是为了让我们的iPhone类具有创建对象的能力
@interface IPhone : NSObject
{
// 默认情况下 : OC对象中的属性 是不能直接访问的
    @public // 只要让类中的属性公开, 以后就可以直接通过 一个指向结构体的指针 来操作对象中的属性
    float _model;    // 型号  0
    int _cpu;        // cpu  0
    double _size;    // 尺寸  0
    int _color;      // 颜色  0
}
// 行为
@end


#pragma mark 2. 如何编写类的实现
/*
    以@implementtation开头, 以@end结尾,然后在class对应的地方 写上声明时 声明的类的名称, 必须利用声明的类名,一模一样
 
 */
@implementation IPhone
// 行为的实现
@end


#pragma mark main函数
int main(int argc, const char * argv[])
{
    // 如何通过一个类 创建一个对象
    // 在OC中想要通过一个类来创建一个对象,必须给类发送一个消息(好比C语言中调用方法一样)
    // 如何发送消息? 在OC中只要想要 发送消息就先写上 [类名称/对象名称 方法名称];
    // 发送 什么消息(调用方法)可以创建一个对象呢? new
    
    /*
     只要通过一个类调用类的new方法,也就是给类 发送一个叫new的消息之后
     系统内部 就会做3件事情
     1.为 Iphone 类 创建出来的对象分配存储空间
     2. 初始化 iPhone 类创建出来的对象中的属性
     3. 返回 iPhone类 创建出来的对象 对应的地址 (指针)
     */
    
    // 通过 一个iPhone类型的指针 接受了 iPhone对象的地址
    // 如果使用给一个指针保存了某一个对象的地址,那么我们就称这个指针为 某个类的对象
    // 利用 iPhone类型的指针 保存了 iPhone对象的地址, 那么我们就称之为 iPhone类型的指针 (p)称之为 iPhone对象
    IPhone *p = [IPhone new];
    p->_model = 4; // instance variable "_model" is protected
    p->_size = 3.5;
    p->_color = 0;
    p->_cpu = 1;
    
    NSLog(@"model = %f, size = %f,color = %i,cpu = %i",p->_model, p->_size,p->_color,p->_cpu );
    
    // OC中的类 其实本质就是一个结构体,所以p这个指针 其实就是指向了一个结构体
    /*
    struct Person
    {
        int age;
        char *name;
    };
    struct Person sp = {25,"lyh"};
    struct Person *sip = &sp;
//    (*sip).age = 22;
//    (*sip).name= "lyhx";
    sip->age = 22;
    sip->name = "lyhxx";
    */
    

    
    // 什么是 用于保存地址的 ? 地址
    /*
    int num;
    num = 0;
    int *p = &num;
     */
    
    return 0;
}

© 著作权归作者所有

共有 人打赏支持
lyh2017iOS
粉丝 1
博文 357
码字总数 137380
作品 0
朝阳
私信 提问
【腾讯Bugly干货分享】JSPatch 成长之路

本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/579efa7083355a9a57a1ac5b Dev Club 是一个交流移动开发技术,结交朋友,扩展人脉的社群,成员...

腾讯Bugly
2016/08/05
23
0
iOS开发之OC与swift开发混编教程,代理的相互调用,block的实现。OC调用Swift中的代理, OC调用Swift中的Block 闭包

本文章将从两个方向分别介绍 OC 与 swift 混编 1. 第一个方向从 swift工程 中引入 oc类   1. 1 如何在swift的类中使用oc类 1.2 如何在swift中实现oc的代理方法 1.3 如何在swift中实现oc的B...

鸿鹄当高远
2018/11/06
0
0
Native code support (Native Code(C和C++)支持)

1. WP 8和Win 8之间共享native代码 通过 Windows 运行时组件,可以在 Windows 应用商店和 Windows Phone 应用程序之间共享Native coad。由于windows phone 8和Windows 8没有共享所有的Windo...

失足处男的倒霉孩子
2013/12/26
1K
0
Swift2.0与OC混编实验--动态库(一)

完整的Demo下载 做了以下几个实验 验证Swift和OC的项目可以使用任意语言开发的动态库 1、创建了一个Swift语言的动态库 2、创建了一个OC语言的动态库 3、创建了一个SwiftApp项目,在项目中同时...

泊竹
2016/01/17
434
0
Object-C基础-01-概述

回到顶部 前言 目前来说,Objective-C(简称OC)是iOS开发的核心语言,在开发过程中也会配合着使用C语言、C++,OC主要负责UI界面,C语言、C++可用于图形处理。近来,流传Ruby、C#也可以开发iOS...

Corwien
2016/03/16
33
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周三乱弹 —— 风扇写着先生请自爱

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @蚂蚁哈哈哈 :分享陈奕迅的单曲《落花流水》 《落花流水》- 陈奕迅 手机党少年们想听歌,请使劲儿戳(这里) @车谷 :我发现每天上班都好困 ...

小小编辑
今天
22
3
centos7重置密码、单用户模式、救援模式、ls命令、chmod命令

在工作当中如果我们错误的配置了文件使服务器不能正常启动或者忘记密码不能登录系统,如何解决这些问题呢?重装系统是可以实现的,但是往往不能轻易重装系统的,下面用忘记密码作为例子讲解如...

李超小牛子
今天
3
0
Python如何开发桌面应用程序?Python基础教程,第十三讲,图形界面

当使用桌面应用程序的时候,有没有那么一瞬间,想学习一下桌面应用程序开发?行业内专业的桌面应用程序开发一般是C++,C#来做,Java开发的也有,但是比较少。本节课会介绍Python的GUI(图形用...

程序员补给栈
今天
8
0
kafka在的使用

一、基本概念 介绍 Kafka是一个分布式的、可分区的、可复制的消息系统。它提供了普通消息系统的功能,但具有自己独特的设计。 这个独特的设计是什么样的呢? 首先让我们看几个基本的消息系统...

狼王黄师傅
今天
3
0
Android JNI总结

0x01 JNI介绍 JNI是Java Native Interface的缩写,JNI不是Android专有的东西,它是从Java继承而来,但是在Android中,JNI的作用和重要性大大增强。 JNI在Android中起着连接Java和C/C++层的作...

天王盖地虎626
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部