知识点
1.Objective-c Hello World
2.NSLog使用
3.面向对象编程思想--类和对象
4.类的定义和使用
5.面向对象编程思想--封装
6.声明和实现相分离
7.类的实例化--对象
IDE
===========================================
Objective-c hello world
1.objective-c历史
http://zh.wikipedia.org/wiki/Objective-C
2.Xcode使用
1)如何使用Xcode创建一个基于Objective-c的工程
2)main.m内容
===========================================
NSLog
1.NSLog和printf函数的区别
2.输出各种数据类型的变量
int %d, %i
long %ld
float / double %f
char %c
object %@
练习:输出各种数据类型的字节数
3.字符串输出
1)如何输出字符串
2)@"hello world" 和 "hello world"区别
================================================
Objective-c相对于c语言的改进
1.标识符
oc语言中,对各种变量、方法和类等要素命名时使用的字符序列称为标识符
>1标识符由字母、下划线"_"、美元符号"$"和数字组成
>2标识符必须以字母、下划线、美元符号开头
>3oc标识符大小写敏感,长度没有限制(C语言不能超过32个字节) 驼峰命名
>4oc标识符选取最好“见名知意”,并且不能与oc中的保留字重名
2.基本数据类型
NSObject -> OC里所有对象的基类(根类,父类)
3.oc中数据类型
NSInteger
NSUInteger
CGFloat
BOOL类型, 取值范围YES, NO
id类型,相当于c语言中的void *
4.循环的改进
for ( xx in xxx)
5.oc关键字
1)oc中的关键字全部以@符开头
@class @interface, @implementation
@public @private @protected
@try @catch @finally
@throw @end @protocol
@selector @synchronized @encode @defs
2)oc2.0新加关键字
@optional @required @property
@dynamic @synthesize
3)oc 2.1
@import
==========================================
面向对象编程思想
认识 - > 归纳 -> 演绎
1.什么是面向对象
1)面向对象就是用计算机语言来模拟显示真实世界里的物体
然后用编程逻辑来组织对象处理问题
2)面向对象是现实世界模拟的自然延伸,显示世界中的任何
物体都可以看作是对象。
3)对象之间通过消息相互作用,另外,现实世界中任何实体都可以归属于某类事物,任何对象都是某一类事物的实例
2.面向对象的优点
1)传统编程语言: 程序=算法+数据
2)面向对象编程语言:程序= 对象+消息
3)结构清晰,维护简单,可扩展性,代码重用!!!
3.面向对象的三个特点 !!!
1)封装
1>封装是一种信息隐藏技术,它体现于对类的说明,是类的重要特性
2>封装就是把客观事物封装成抽象的类
2)继承 (OC没有私有方法)
1>继承是子类自动共享父类数据和方法的机制
2>继承的过程就是从一般到特殊的过程
3)多态
对象根据所接收的消息而做出不同的动作
=============================================
类的定义和使用
1.什么是类
1)类是对象的模板,是对实体的一个描述
2)类是oc的核心,oc程序都围绕着类进行
2.如何创建一个类
1)@interface,oc中通过@interface关键字来声明一个类
0>类的字段
1>不带参数的方法声明
2>带参数的方法声明
3>带返回值的方法声明
4>各种函数与c语言函数的对比
2)@implementation来实现一个类
3)@end
实例:创建一个描述学生的类
练习:1.创建一个描述汽车的类,字段有品牌,价格,型号,颜色,轮胎数,当前速度,最大速度
brand price model color wheel Speed
方法有:启动汽车,停车,刹车
2.创建一个描述飞机的类,属性有品牌,所属公司,价格,颜色
方法有:起飞,降落
3.创建一个描述人的类,属性和方法自己分析
4.创建一只描述狗的类,属性和方法自己分析
3.类声明中需要注意的地方
1)类声明中不允许包含任何代码的实现
.h 用来声明,不实现代码
.m 文件才实现
2)不能直接对类中的成员进行初始化
3)oc中类的字段默认为受保护的,不允许直接访问
4)成员的三种访问修饰
@private, @protected, @public
4.对象实例化
1)如何使用类声明变量
2)如何给对象发送消息
发消息[实例对象 方法名];
3)如何访问对象中的成员
1>setter和getter消息
5.类的声明和实现相分离
1)如何在xcode中创建一个类
2)类的两个文件:.h和.m文件
youtube.com
6.特殊的函数
1)构造函数
1>作用
根据用户在实例化过程中的要求来初始化对象中的成员
2>实现方式
以init开头,initWithXXX
2)+方法
1>作用
不需要实例化对象即可调用该类中的方法
3)description方法
1>作用
可以直接通过该消息输出对象的当前状态
7.类和实例的区别
1)类是对象的模板,类是静态的,本身并不占用内存,只是对某类事物的一个说明
2)对象是某个模板的具体化
//作业
1.已知一辆汽车速度是20km/h ,让他行驶1000km,需要多少小时;
2.小明手里有两张牌,左手红桃A, 右手方片K, 现在让小明交换两只手里的牌,问交换之后,左右手各是什么牌?
3.编写一个加法器,它能够接收两个整数,然后输出两个整数的和。
4.有一个长方形,MyRect类,字段有
int length;
int width;
int area;
方法有
设置长和宽
打印面积
5.有一个正方体, 边长a为10, 求它的体积volume;
(要求创建立方体时,使用构造函数进行初始化,构造函数有带参,两个版本,不带参,边长默认为1)
6.创建一个Dog类,成员变量有,int age; int weight; int height;
分别写3个set函数,给3个成员变量赋值。
再写一个set函数,同时给3个成员变量赋值。
再写一个show函数,打印3个成员变量的值。
7.有一个圆类,半径为r
创建半径为5的圆对象。
打印圆的面积和周长。
#import <person.h>
- setage:(nssting*);