----- 需求索要 自学了下 OBJECt-C  -----

就基础部分一些 和操作

command + R 运行
command +B 只编译.m文件

NSlog() = printf
NSLog 是自动换行的

#import <Foundation/Foudation.h>
<> 引用的是我们系统的库,找到就有

#import "Person.h"

//""引用的是我们自己的类

.h文件只负责声明 不实现
.m文件实现声明的方法

在Main
// 类名 *变量的名字 = [[类名 alloc]init]
Person *per = [[Person alloc]init];
[Per eat];

-(void)eat;
//对象方法命名规则
1.以-号开头
2.所有的数据类型放在()里面,而且只有数据类型放在()里面。
3.方法名准驼峰原则。

带参数的方法命名规则
1.对象命名前3条准守
2.一个参数带着:号,冒号写在参数类型前面
3方法名想写个句子:
-(void)eatApp:(int)num;

Person *per = [Person new];
[per run];
[per eatApp:5];

set get 方法
-(void)setAge:(int)age{
_age = age;
}

//**set方法
1.以-号开头
2.不需要返回值
3.set开头,后面是对象的成员变量去掉下划线首字母大写
4.只有一个参数
-(void)setAge:(int)age;
//get 方法为了取值的
1.以-号开头
2.返回值类型对应成员变量的类型
3.方法名为对应成员变量去掉下划线部分
4.不需要参数
-(int)age;

->指向符
直接赋值 通过->直接给属性赋值,会得到脏数据(了解)

类:不需要声明一个对象(实例)就可以直接调用的方法,有返回值
// 对象方法求2个和
-(int)sumWithNum1:(int)num1 andNum2:(int)num2;
//类方法求和
1.以+开头
2.其他规则与对象方法的规则(除去第一条)相同
+(int)sumWithNum3:(int)num3 andNum4:(int)num4;

//對象方法中可以直接使用成員變量
//类方法中不能直接使用成员变量
int sum=num3+sum4;

Person *per = [Person new];
int sum = [cal sumWithNum1:5 andNum2:6];
对象方法:
》对象调用
》以-号开头
》可以直接使用成员变量
》可以调用自己的对象和类方法

//类方法
》有类名调用
》以+号开头
》不能直接使用成员变量
》用作工具方法
》只能调用自己的类方法,不能调用自己对象方法

----点语法 :就是set get 方法
赋值不这么写
//[per setAge:18];
per.age = 18;

--property(合成存储器)。
// 组成: @property 对应成员变量的类型 对应成员变量去掉下划线后的部分
//作用; 自動生成对应的成员变量的set . get 方法的定义
@property int houseNum;

对应的 synthesize 对应的方法名
--property(加强版)
@property(nonatomic,assign)int houseNum;

----继承(继承父类的)
如果成员变量可以被继承,需要手动生成

--super:代表是父类的对象指针或者父类类名
使用场合:在子类中调用父类中方法
[super run]
先调用父类的 如果子类还有在调用子类的
----重写(子类和父类同名 ,优先执行子类中同名的方法)
目的(为了在与父类同名方法中完成一些自己的功能)

-----self(用来表示OC中的类名或者对象指针)
1.在对象方法中代表对象指针(自己)(谁调用的对象方法,那么self就代表谁)
在类方法中代表类名
2.可以调用方法和成员变量
3.禁止用自己(死循环)

字符串 NSString *string1 =@"样安抚"
//%d %f 基本的数据类型的占位符
%@ 代表打印的对象
stringWithFormat (格式化拼接字符串)
重写desciption 方法
目的(当一个对象的属性很多时,并且需要打印,那么就重写description,达到简写代码)

----变量作用域
@public 整个程序
@protected 本类和子类中
@private 本类中(用property自动生成)
@package 包内部

多态:一种事物的多种形态(前提:继承)
父类类型的指针指向子类对象 Animal *an = [Dog new];

----- 构造方法:
开辟内存空间 alloc
初始化 init
返回地址 init

以init开头,必须准守驼峰原则
id:万能指针,可以指向任意的对象 -(id)initwithAge:(int)age;

-(id)init{
1.判断self 是否为上一步初始化
2.添加自己类的功能
3.将自己返回
}

NSMakeRange(5,2)区间
NSMutable
--ObjectAtIndex

可变数组: NSMutableArray *phoneArray;

----单例
很霸道,很专一
定义:一个类,只允许通过“类方法”创建一个对象,调用这个类属性和方法时
只能通过这一个对象去调用,
作用:1.保值 :static
2.建立一个公共的访问点,在需要使用的时候调用即可

static Card *sing =nil; ( static 保存上一步的sing的数据)

-----NSData类 一种数据类型
//在传输数据时,传输的是二进制文件

---------协议:一组方法的列表
特点:只有定义,没有实现。实现在准守(引用)了该协议的类的.m文件
实现部分里面 (可以删了.m文件)
霸道
构成: NSObject:基协议
@protocol 协议名<NSObject>
方法定义的列表
@end

-------代理 :委托,是一种设计模式

协议一般放到主动的类中(有需求的类) (懶惰的類)
被动类: 代理类
协议代理名 :当前类名Delegate

-----自动释放池
在main.m @autoreleasepool {
本质上是一个数组,用来存储多个对象,在离开释放池的时候
系统会自动的给池中每个对象发送一个release 消息
}

// 堆和栈
栈 堆
person *per = [[Person alloc]init];
根本区别: 栈趋于低的内存空间 不连续
堆趋于高的内存空间 连续空间

// 进程:
在系统中正在运行的一个应用程序

//多线程
一个进程可以开启多条线程,每条线程可以并行折行不同的任务

//主线程
NSThread *mainThread = [NSThread mainThread];

// NSURLSession
使用创建TASK ,然后执行Task
nsurlsessionDataTask (请求)
download (下载)
upload(上传)

//AFN 简单介绍

Object-C(自学1)的更多相关文章

  1. 自学Python之路-Python基础+模块+面向对象+函数

    自学Python之路-Python基础+模块+面向对象+函数 自学Python之路[第一回]:初识Python    1.1 自学Python1.1-简介    1.2 自学Python1.2-环境的 ...

  2. 自学Python2.1-基本数据类型-字符串str(object)

    Python str方法总结 class str(object): """ str(object='') -> str str(bytes_or_buffer[, ...

  3. 自学Python2.1-基本数据类型-字符串str(object) 上

    自学Python之路 自学Python2.1-基本数据类型-字符串str(object) 上 字符串是 Python 中最常用的数据类型.我们可以使用引号('或")来创建字符串. 创建字符串 ...

  4. 自学Python2.3-基本数据类型-元组tuple(object) 方法

    Python tuple方法总结 一.元组的简介 1.元组与列表一样,也是一种序列,但是唯一不同的元组是不能修改的 2.元组的元素不可修改,但是元组元素的元素是可以修改的 3.元组通过()括起来表示 ...

  5. 自学Python2.2-基本数据类型-列表list(object)

    Python List方法总结 一. 列表简介: 列表是序列对象,可包含任意的Python数据信息,如字符串.数字.列表.元组等   列表的数据是可变的,我们可通过对象方法对列表中的数据进行增加.修改 ...

  6. Java自学-接口与继承 Object类

    Java中的超类 Object 步骤 1 : Object类是所有类的父类 声明一个类的时候,默认是继承了Object public class Hero extends Object package ...

  7. JDK源码阅读-------自学笔记(一)(java.lang.Object重写toString源码)

    一.前景提要 Object类中定义有public String toString()方法,其返回值是 String 类型. 二.默认返回组成 类名+@+16进制的hashcode,当使用打印方法打印的 ...

  8. java自学第5期——Object、Date、Calender、System、StringBuilder、基本类型包装类

    一.Object类 作用:对象操作 位置:java.lang.Object 方法: public String toString() :返回对象的字符串表示形式. public boolean equ ...

  9. C++自学笔记 面向对象程序设计OOP(Object Oriented Programming)

    什么是对象? Objects = Attributes + Services Data : The properties or status Operations: the fuctions C语言中 ...

  10. 从零自学Hadoop(08):第一个MapReduce

    阅读目录 序 数据准备 wordcount Yarn 新建MapReduce 示例下载 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是 ...

随机推荐

  1. Laravel从模型中图片的相对路径获取绝对路径

    在模型product.php中增加以下方法.数据库图片字段为image.存储的图片相对路径 public function getImageUrlAttribute() { // 如果 image 字 ...

  2. poj3122 Pie (二分)

    题目链接:https://vjudge.net/problem/POJ-3122 题意:有n块饼,m+1个人,将饼均分成m+1块,求每块最大的大小. 思路:水二分,显然每块的大小与可以给多少人吃具有单 ...

  3. centos 6.x下jira显示饼图乱码解决方法

    由于最近业务反馈jira出饼图时出现乱码现象,无法显示中文. 1. 由于平时用的yum源没有相关安装包,这里推荐暂时修改yum源如下: [epel] name=Extra Packages - $ba ...

  4. 查找担保圈-step6-对被包含过的组进行清理,只保留未被包含过的组

    USE [test] GO /****** Object: StoredProcedure [dbo].[p04_get_groupno_cleared] Script Date: 2019/7/8 ...

  5. 【详细解析】MySQL索引详解( 索引概念、6大索引类型、key 和 index 的区别、其他索引方式)

    [详细解析]MySQL索引详解( 索引概念.6大索引类型.key 和 index 的区别.其他索引方式) MySQL索引的概念: 索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分 ...

  6. Netty的那些”锁”事

    Netty锁事的五个关键点: ① 在意锁的对象和范围  --> 减少粒度 ②  注意锁的对象本身大小   --> 减少空间占用 ③ 注意锁的速度 --> 提高速度 ④不同场景选择不同 ...

  7. QT目录模型QDirModel的使用(一个model同时连接tree,list,table)

    3#include <QApplication>#include <QAbstractItemModel>#include <QAbstractItemView># ...

  8. 并不对劲的CF1239B&C&D Programming Task in the Train to Catowice City

    CF1239B The World Is Just a Programming Task 题目描述 定义一个括号序列s是优秀的,当且仅当它是以下几种情况的一种: 1.|s|=0 2.s='('+t+' ...

  9. EasyUI_前台js_分页

    1.html: <table id="DataTb" title="客户信息" class="easyui-datagrid" sty ...

  10. WPF 键盘事件

    private void Window_KeyDown(object sender, KeyEventArgs e) { if (e.KeyStates==Keyboard.GetKeyStates( ...