OC基础-类的使用

 #import <Foundation/Foundation.h>

 //定义枚举类型 typedef enum  {    sexMan,    sexWomen  } Sex;//定义日期类型typedef Struct{  int year;  int month;  int day;} Date; //1.声明类 (此时不能初始化类的成员变量)
 2
 3 @interface  Student:NSObject
 5 {
 6      @public;
 9    int age;
11    char *name;    Sex enumSex;       Date birthday;
13   //声明方法
15   - (void) study;
17 }
18
19 @end
20
21 //2.类的实现
22
23 @implementation Student
25 //方法的实现
27 - (void) study
29 {
31   NSLog(@"开始学习");
33 }
35 @end

int main(){  Student *stu=[Student new];  stu.name="aaa";  stu.age=20;  Date d={1995,1,12};  stu.birthday=d;  stu.enumSex=sexWomen;

  //调用方法  [stu study];}

1.声明类的同时不能对类里面的成员变量初始化

2.要是外部的实例指针访问类的成员变量,就必须在成员变量前加上@public,默认是受保护的

3.OC中操作对象,都是用指针间接操作的

4.OC中方法的声明语法 :方法类型 (数据类型)方法名;  (oc中的方法类型都是减号-,oc中的()仅用来括住数据类型)

5.操作类对象的行为语法:[执行者  行为]

6.typedef 关键字用于定义类型, typeof int myInt;  那么在该文件中使用myInt 就是在使用int类型

7.结构体仅在定义实例的时候可以直接赋值。(错误写法:Date d; d={1995,1,12})

7.该代码的内存分析:

  1.当创建类的实例赋值给外部指针时,在内存中就分配一块空间给该指针对象,该内存的地址就是实例的地址,同时分配一块内存给创建的实例,该内存中存放了成员变量;

若是第一次创建实例,那么还会给类分配一块内存,该内存中存放类的方法列表

2.给类成员变量赋值时:由指针找到变量,并赋值

3.调用方法时:在每个实例内存中默认存在一个isa内存,当指针向实例发送一条行为消息是,该isa内存就会指向类的内存中,找到行为

 

时间: 2024-08-10 04:11:57

OC基础-类的使用的相关文章

OC基础 类的三大特性

OC基础  类的三大特性 OC的类和JAVA一样,都有三大特性:继承,封装,多态,那么我们就来看一下OC中类的三大特性. 1.继承 继承的特点: (1)子类从父类继承了属性和方法. (2)子类独有的属性和方法不能被父类使用. (3)子类独有的属性和方法,不能够在子类之间互相使用. (4)子类能够重写父类的方法,子类调用该方法时:首先调用子类的方法,如果子类没有该方法,就调用父类的该方法. (5)子类对象指针可以转换成父类对象指针,但是父类对象指针不能够转换成子类对象指针. 三种权限变量的继承:

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

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

OC基础--类的本质

类的本质: 类的本质其实也是一个对象(类对象),只要有了类对象, 将来就可以通过类对象来创建实例对象 程序中第一次使用该类的时候被创建,在整个程序中只有一份.此后每次使用都是这个类对象,它在程序运行时一直存在. 类对象是一种数据结构,存储类的基本信息:类大小,类名称,类的版本,继承层次,以及消息与函数的映射表等 类对象代表类,Class类型,保存了当前对象所有的对象方法,当给一个实例对象发送消息的时候, 会根据实例对象中的isa指针去对应的类对象中查找 如果消息的接收者是类名,则类名代表类对象

OC基础--类

都是注释哈 类的组成: C语言中函数分为声明和实现 OC中定义一个类也分为声明和实现, 也就是说以后我们在OC中定义类, 就是在写类的声明和实现 编写类的声明和实现: 声明 .h: /*  行为方法:      OC中的行为和C语言中的函数一样, 都是用来保存一段特定功能的代码      C语言中定义一个函数, 分为声明和实现, 声明写在.h中, 实现写在.c中      OC中定义一个方法, 也分为声明和实现, 声明写在@interface中, 实现写在@implementation    

iOS开发OC基础:OC中的分类(类目)

//分类,category,(类目) //为没有源代码的类添加方法 //一定要注意,只能添加方法,不能添加实例变量 /** *  分类 类的定义也是分为接口部分和实现部分 接口部分:以@interface开头 + 类名 后跟小括号,小括号内填写的是分类名 @end结束 在@interface 与@end 之间添加方法. */ //分类为原类添加的方法,就相当于原类具有该方法,可以正常调用 因为涉及到几个分类的创建,所以就直接上传代码了,其实代码也不多,只是怕大家在建立分类的时候会混淆,所以直接把

OC基础笔记——创建类2(广州黑马一期)

// // main.m // 04-创建类2 // // Created by Apple on 14/11/17. // Copyright (c) 2014年 itcast. All rights reserved. // #import <Foundation/Foundation.h> /* 类名:Zombies 属性:life,颜色,位置,形状 行为:走,咬,死,loseLife 炮弹 类名:Cannonball 属性:大小,威力,飞行距离,速度 行为:飞,爆炸 车 类名:Car

四.OC基础--1.文档安装和方法重载,2.self和super&amp;static,3.继承和派生,4.实例变量修饰符 ,5.私有变量&amp;私有方法,6.description方法

四.OC基础--1.文档安装和方法重载, 1. 在线安装 xcode-> 系统偏好设置->DownLoads->Doucument->下载 2. 离线安装 百度xcode文档 3. 方法重载: 是指在一个类中定义多个同名的方法 在OC中没有重载 2.self和super&static, self和super: 1. self理解: 谁调用当前方法, self就代表谁. 比如: 在对象方法中,self代表的是对象, 因为只有对象才可以调用对象方法 在类方法中, self代表的

OC基础(23)

NSArray基本概念 NSArray 遍历 NSArray排序 NSArray文件读写 NSArray 与字符串 *:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } a { color: #4183C4; } a.absent { color: #cc0000; } a.anchor { display: block; padding-left: 30p

黑马程序员--oc基础第六篇

六. oc基础知识(内存管理下) 总结:内存管理代码规范 1.只要调用alloc那么就必须调用release: 2.set方法的代码部分 *基本数据类型直接赋值. *如果是oc对象类型 - (void) setCar:(Car *)car { if(_car!=car) { [_car release]; _car=[Car retain]; } } 3.dealloc 部分的代码规范 *一定要[super dealloc ]放在最后面. *对self(当前)所拥有的其他对象做一次release