关情纸尾-----OC面对对象的核心语法

有点愧疚,这几个月荒废了,也浪费了很多时间。

接下来是我看的关于核心语法的一些笔记,可能不全也可能有错误,希望大家可以指出来。

一、点语法

点语法的本质是调用。

例如:

Person *p = [Person new];

//赋值

p.age = 10; // 等价于[P setAge:10];调用setter

//取值

int a = p.age;// 等价于[P age];调用getter

二、成员变量的作用域

@public  任何地方都能直接访问

@private 只能在当前类的对象方法中直接访问

@protect 当前类和子类的对象方法。虽然被保护,但是在内存中子类拥有父类中的方法

三、@property和@synthesiz

1.自动生成 _age.

2.自动生成_age的setter和getter声明

@property int age;//写上类型和名称

/*等价于

-(void)setAge:(int)age;

-(int)age;*/

//表示字符串

@property NSString*name;

生成setter 和getter方法的实现

@synthesize age = _age;

还可以连着写

@synthesize age =_age,name = _name;

注:

一般情况下省略@synthesize,只写@property

并且会自动生成setter和getter的声明和实现。

四、万能指针 id

id 是一种指针,一般形式为

id = NSObject*

id d = [Person new]

五、构造方法

属于对象方法,减号开头。

new  完整的创建一个可用的对象

① 分配存储空间 ② 初始化

不再使用new创建对象。改为以下方式

1.调用+alloc 分配存储空间

2.调用-init进行初始化

Person *p = [[Person alloc] init];

六、重写构造方法

目的:为了让对象创建出来,成员变量就会有一些固定的值

*****重写-init 方法*****

-(id)init    //id是为了使任何对象都可以调用NSObject

{

//一定要调用回super 的init 方法,初始化父类中声明的成员变量和其他属性

if (self = [super init]

//如果对象初始化成功,才能进行下面的初始化

{_age = 10;//所有成员变量初始化值都是10

}

return self;//返回一个已经初始化完毕的对象

}

七、自定义构造方法

自定义构造方法:

1.一定是对象方法,一定以减号开头

2.返回值一定是id类型

3.方法名以initWith开头

例如

@interface Person:NSObject

@property NSString *name;

@property int *age;

-(id) initWithName:(NSString*)name andAge:(int)age;

@implementation Person

-(id)initWithName:(NSString*)name andAge:(int)age;

{if(self=[super init])

{_name=name;

_age=age;

}

return self;

}

int main()

{Person *p = [[Person alloc] initWithName:@"rose"andAge:30]

return 0;

}

八、类的本质

//利用Person这个类创建Person类型的对象

Person *p = [[Person alloc] init];

//获取内存中的类对象,即Person这个类对象

Class c = [p class];

也可以写成Class c = [Person class];

注:

类本身也是一个对象,是个class类型的对象,简称类对象,

利用class创建Person类对象

利用person创建Person类型的对象

时间: 2024-10-07 11:57:41

关情纸尾-----OC面对对象的核心语法的相关文章

关情纸尾-----Quartz2D绘制下载进度条,饼图

绘制下载进度条 1.搭建界面. 2.拖动滑竿的时候让他里面的能够跟着我的拖动,数字在改变. 数字改变时有一个注意点, 就是要显示%,它是一个特殊的符号,要用两个%%代表一个% 3.拖动滑竿的时候就是在上面画弧. 从最上面,按顺时针画,所以,它的起始角度是-90度.结束角度也是-90度 也是从起始角度开始画, 起始角度-90度, 看你下载进度是多少 假如说你下载进度是100,就是1 * 360度 也就是说这个进度占你360度多少分之一 CGContextRef ctx = UIGraphicsGe

关情纸尾-----面向对象的三大特性

面向对象的三大特性 .封装 .继承 .多态 一.封装 1.set方法 (1)作用:提供一个方法给外界设置成员变量,可以在方法里面对参数进行过滤 (2)命名规范: 方法都是以set开头,而且后面要跟上成员变量名,成员变量名的首字母必须是大写 (3)形参名称不要和成员变量同名 (4)返回值一定是void (5)一定要接收一个参数,而且参数类型和成员变量类型一致 2.get方法 (1)作用:返回内部的成员变量 (2)命名规范:方法的名称一般就跟成员变量同名 (3)一定有返回值,并且返回值类型和成员变量

关情纸尾-----内存管理

一.引用计数器 1.整数,4个字节,表示对象被利用的次数 2.创建一个新对象时,新对象的引用计数器默认为1 3.当某个对象的引用计数器为10时,所占内存被系统回收 4.引用计数器的操作 return  +1 release  -1 retainCount 获得当前引用计数器值 5.对象的销毁 ①引用计数器 0 ②系统自动发送dealloc给对象 ③重写dealloc方法 ④一旦重写了dealloc,就必须调用[super dealloc],放在最后面调用 ⑤一旦对象被回收了,它占用的内存就不再可

关情纸尾-----Quartz2D绘制圆形下载进度条,饼图

绘制下载进度条 1.搭建界面. 2.拖动滑竿的时候让他里面的能够跟着我的拖动,数字在改变. 数字改变时有一个注意点, 就是要显示%,它是一个特殊的符号,要用两个%%代表一个% 3.拖动滑竿的时候就是在上面画弧. 从最上面,按顺时针画,所以,它的起始角度是-90度.结束角度也是-90度 也是从起始角度开始画, 起始角度-90度, 看你下载进度是多少 假如说你下载进度是100,就是1 * 360度 也就是说这个进度占你360度多少分之一 CGContextRef ctx = UIGraphicsGe

关情纸尾-----IOS学习之UITableView

一.基本介绍 在iOS中,要实现表格数据展示,最常用的做法就是使用UITableView,UITableView继承自UIScrollView,因此支持垂直滚动,?且性能极佳 . UITableView有两种风格:UITableViewStylePlain和UITableViewStyleGrouped.这两者操作起来其实并没有本质区别,只是后者按分组样式显示,前者按照普通样式显示而已.先看一下两者的应用: 二.UItableview展示数据的过程 ♥ UITableView需要一个数据源(da

关情纸尾-----Quartz2D定时器CADisplayLink下雪效果

定时器CADisplayLink下雪效果 1.定时器雪花整体思路: 先在控制器View面绘制一个雪花. 在View加载完毕后,添加一个定时器. 在定时器方法当中调用得绘方法. 在绘图方法当不段的去修改雪花的Y值. 当雪花的Y值超过屏幕的高度时,让雪花的Y值重新设为0.从最顶部开始. 2.添加定时器实现方案 第一种采用NSTime 第二种采用CADisplayLink 最终采用CADisplayLink方案. 2.1为什么采用CADisplayLink方案不用NSTime? 首先要了解setNee

关情纸尾-----Quartz2D模仿系统的UIImageView

模仿系统的UIImageView 整体思路: 我们想要模仿系统的UIImageView,我们必须得要知道系统的UIView怎么用. 第一种用法 系统的用法是创建一个UIImageView对象,设置frame,给它传递一个UIImage,再把它添加到一个View上面就可以了. 可以切换图片. 第二种用法就是在创建的时候直接传递一个UIImage对象,使用initWithImage的方法进行创建一个UImageView的方式 用这种做法创建出来的UIImageView它的尺寸大小和原始图片的尺寸大小

关情纸尾-----IOS学习之UIScrollView

一.UIScrolllView控件的简单介绍 1.什么是UIScrollView (1)移动设备的屏幕大小是极其有限的,因此直接展示在用户眼前的内容也相当有限 (2)当展示的内容较多,超出一个屏幕时,用户可通过滚动手势来查看屏幕以外的内容 (3)普通的UIView不具备滚动功能,不能显示过多的内容 (4)UIScrollView是一个能够滚动的视图控件,可以用来展示大量的内容,并且可以通过滚动查看所有的内容 (5)举例:手机上的“设置”.其他示例程序 2.UIScrollView的简单使用方法

关情纸尾-----IOS学习之超级猜图

超级猜图 1>重点界面可变元素 索引.描述以及图片会随着点击下一题按钮自动更换对应的内容 点击放大按钮或者图片本身可以放大图片,且图片放大后,有一层半透明的遮盖处在图片后面,遮盖住屏幕上的的其他内容点击遮盖或者其图片可以将图片恢复大小,并且遮盖消失. 每次点击下一题按钮,下方的答案框数答案文字选项也随之改变. 点击下方候选答案按钮,此按钮隐身并且按顺序显示到上方的答案框中. 自动判断答案是否填满,填满后检测是否正确,正确显示蓝色,并自动跳到下一题同时加分:错误显示红色. 点击提示按钮,显示正确答