文档章节

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

lyh2017iOS
 lyh2017iOS
发布于 2017/07/10 00:52
字数 1334
阅读 4
收藏 0
点赞 0
评论 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
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
779
0
Object-C基础-01-概述

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

Corwien
2016/03/16
33
0
一、Objective-C概述

说明:这个Objective-C专题,是学习iOS开发的前奏,也为了让有面向对象语言开发经验的程序员,能够快速上手Objective-C。如果你还没有编程经验,或者对Objective-C、iOS开发不感兴趣,请忽略...

长平狐
2013/03/28
113
0
Swift2.0与OC混编实验--动态库(一)

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

泊竹
2016/01/17
434
0
Swift4.0基础知识回顾

简单介绍一下Swift Swift 语言由苹果公司在 2014 年推出,用来撰写 OS X 和 iOS 应用程序,Swift语言让应用开发更简单、更快、更稳定,确保最终应用有着更好的质量更多了解Swift可以去《The...

博行天下
2017/12/06
0
0
OC语言的特性(一)-消息传递与调用函数的表现形式

我们在初学Objective-C时,都会觉得ObjC中的消息传递和其他语言的调用函数差不多,只是在OC中,方法调用用消息传递这一概念来代替。 那么到底怎样区别OC中的消息传递与其他语言的调用函数呢。...

浩浩老师
2015/09/08
1K
0
使用Swift开发React Native组件(一)

使用Swift开发React Native组件(一) RN已经在圈子里流行很长一段时间了,网上相关的文章和介绍也很多,笔者很早之前也接触过一段时间,但也仅仅只是浅尝即止,这次正好有时间,所以准备深度...

黑血沸腾
2017/05/27
0
0
Object-C基础-02-第一个OC的类

一、语法简介 1.类 在Java中,我们用1个.java文件就可以描述清楚一个类;在OC中,一般用2个文件来描述一个类: 1> .h:类的声明文件,用于声明成员变量、方法。类的声明使用关键字@interfac...

Corwien
2016/03/17
22
0
【iOS】Swift类与结构、存储属性、计算属性、函数与方法、附属脚本等

写了12个Person来复习,不过完成同样的代码需要敲键盘的次数相比OC确实少了很多,这很多应该归功于Swift中不写分号,以及少了OC中的中括号。 一、类与结构体 两者在Swift中差不了多少了 类与...

xn4545945
2014/09/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

CentOS “Destination Host Unreachable”问题解决办法

挑战极速安装CentOS时遇到局域网主机不能通信的情况: [root@zjd network-scripts]# ping 8.8.8.8PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.64 bytes from 8.8.8.8: icmp_seq=1 ttl=......

wffger
7分钟前
0
0
CentoOS6.6安装netcat

CentOS下安装netcat 使用zookeeper过程中,需要监控集群状态。在使用四字命令时(echo conf | nc localhost 2181),报出如下错误:-bash: netcat: command not found。 我的系统是CentOS 6....

ghou-靠墙哭
18分钟前
0
0
es6之解构赋值巧用

ES6 允许按照一定模式,从数组、对象等中提取值,对变量进行赋值,这被称为解构赋值。 如何进行解构赋值我这里就不赘述,本篇文章主要是将解构赋值的巧妙使用之处。 1、交互变量的值 常用交互...

秋季长青
23分钟前
0
0
Elasitcsearch High Level Rest Client学习笔记(三)批量api

Bulk Request BulkRequest可以在一起从请求执行批量添加、更新和删除,至少需要添加一个操作 BulkRequest request = new BulkRequest(); //创建BulkRequestrequest.add(new IndexRequest("...

木子SMZ
27分钟前
0
0
mybatis-dynamic sql

OGNL expressions if 判断是否存在值 <select id="findActiveBlogLike" resultType="Blog"> SELECT * FROM BLOG WHERE state = ‘ACTIVE’ <if test="title != null"> AND title like #{tit......

writeademo
34分钟前
0
0
社交系统ThinkSNS+ V1.8.3更新播报

     研发发布版本号:1.8.3   本次版本于2018年7月16日发布   本次发布类型:新增功能、细节调整与优化   社交系统ThinkSNSPlus更新体验:请于官网下载/安装最新版或联系QQ35159...

ThinkSNS账号
37分钟前
0
0
教育思考:选择编程是一场父母和孩子的和解[图]

教育思考:选择编程是一场父母和孩子的和解[图]: 之前有个很热的段子是这样讲的:深夜十点的时候,某小区一女子大声喊叫“什么关系?啊?!到底什么关系?你说!”最后发现原来是一位妈妈陪...

原创小博客
38分钟前
0
0
X64汇编之指令格式解析

最近由于项目组内要做特征码搜索的东西,便于去Hook一些未导出函数,你懂得...于是就闲着学习了一下x86/x64的汇编指令格式。x86的汇编指令格式请参照http://bbs.pediy.com/showthread.php?t...

simpower
41分钟前
0
0
rust 语法概要(只适合不熟悉时快速查阅使用,不适合理解其精髓。未完待续)

注意:本内容只适合快查,不适合理解精髓。精髓请研读 https://kaisery.github.io/trpl-zh-cn/foreword.html 基本数据类型 i8,i16,i32,i64,i128 u8,u16,u32,u64,u128 f32,f64 char bool:true...

捍卫机密
44分钟前
0
0
JS中严格模式和非严格模式

1,使用 严格模式的使用很简单,只有在代码首部加入字符串 "use strict"。必须在首部即首部指其前面没有任何有效js代码除注释,否则无效 2.注意事项 (1)不使用var声明变量严格模式中将不通...

AndyZhouX
44分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部