对象方法怎么写
-(返回值类型)方法名:(参数类型)参数名;
-(void)setName:(NSString *)name;
-代表对象(void)代表返回值类型 setName代表方法名 : (NSString *)代表参数类型 name 代表参数名 ; 结尾
创建一个类的整体思路
1.创建一个类 生成.h 和.m文件 .h 代表接口文件 .m 代表实现文件
2.在.h文件里写类属性(成员变量) 在大括号里的表示类属性
3.声明 类属性值的方法 一个是设置的 一个是获取的
4.实现 在.m 文件实现 实现接口文件里面的所有声明的方法
5.实例化 在main.m里实例化一个对象
首先 引入要实例化类的头文件
然后 实例化一个对象 类名 *对象名 =[[类名 alloc]init];
再设置对象属性 通过调用方法去设置 在OC里调用方法是中辍符
调用方法去设置 例如 [ 对象名字 设置的方法 : ];分号结尾
//
// main.m
// 复习面向对象编程
//
// Created by 非凡 程序员 on 15/10/28.
// Copyright (c) 2015年 非凡 程序员. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "Father.h"
#import "Son.h"
#import "daughter.h"
int main(int argc, const char * argv[]) {
//OC 类包含:类属性 、方法
//OC 方法包括:类方法、对象方法
//类方法以+ 号开头, 对象方法以 - 号开头
//类方法可以通过类直接调用,对象方法通过类的实例化后调用
//对象:类的实例化
//类的实例化写法:[[类名 alloc]init]; [类名 new];
//在main函数里使用其他类,需要先#import这个类的头文件。
//注意:.h 为头文件 接口文件 .m 为实现的文件
//.h interface .m implementation
//类的实例化 举例:
Father *father = [[Father alloc]init];
//在该Father类里创建一个Name属性,通常会再Father.ht添加
father.name = @"" ;//方法一 点语法设置
[father setName:@"jack"]; //方法二 中辍符设置
//返回一个方法
//NSLog(@"father name is : %@", father.name );
NSLog(@"father name is : %@", [father name]);
//实例化Son
Son *son = [[Son alloc]init];
//因为Son类继承了Father,因此可以使用Father类属性
son.name = @"peter";
//打印son的名字
NSLog(@"son name is : %@", son.name );
//调用类方法 直接通过类去调用
//注意是Father类 不是Father对象
[Father echoLog];
// ------- 多态: 父类的指针指向子类的对象
//实例化Son类
Son *sonI = [[Son alloc]init];
//多态的思想 需要用父类指针
Father *fatherI = sonI;
//实例化一个Father对象
Father *jack = [[Father alloc]init];
[jack cry];
//子类如果自己有cry优先调用自己类的cry对象方法
[fatherI cry];
// -------- 复合: 对象之间的组合
//参考写法:一个类里有多个对象类型类属性
//先实例化至少2个对象
Son *xiaoMing = [[Son alloc]init];
xiaoMing.name = @"xiaoMing";
daughter *xiaoHong = [[daughter alloc]init];
xiaoHong.name = @"xiaoHong";
//实例化Father对象
Father *daDa = [[Father alloc]init];
daDa.name = @"xiDaDa";
//因为Father里面有son 和 daughter类型的类属性,因此需要把son和daughter对象传值组合在一起,这样叫做对象之间的组合叫复合。
daDa.son = xiaoMing;
daDa.daughter = xiaoHong;
Son *xiaoQiang=[[Son alloc]init];
daughter *xiaoHua=[[daughter alloc]init];
xiaoQiang.name=@"xiaoQiang";
xiaoHua.name=@"xiaoHua";
daDa.sonII=xiaoQiang;
daDa.daughterII=xiaoHua;
NSLog( @"%@ 有 2个儿子,2个女儿,儿子的名字是%@ 和 %@, 女儿的名字是 %@ 和%@", daDa.name, daDa.son.name , daDa.daughter.name ,daDa.sonII.name,daDa.daughterII.name);
//----------------复习数据类型---------------
// c的基本类型:int float double char bool
bool cBool=true;
printf("cBool:%d\n",cBool);
// OC的数据类型
//布尔类型,值为YES或NO
BOOL _bool = NO;
NSLog(@"OC:%d",_bool);
//字符串类型----不可变字符串
NSString *string = @"123";
NSLog(@"string:%@",string);
NSLog(@"%lu",[string length]);//length为NSString的对象方法。可以返回字符串的长度
NSString *stringI=@"hello";
// 比较两个字符串的大小
if ([string isEqualToString:stringI]) {
NSLog(@"相同");
}else {
NSLog(@"不同");
}
NSString *stringII=[stringI uppercaseString];//将小写字母转换为大写
NSString *stringIII=[stringII capitalizedString];//将字符串转化为首字母大写,其他为小写的形式
NSLog(@"%@",[stringII lowercaseString]);//lowercaseString将字符串转换为小写
// 定义一个范围
NSRange rage=NSMakeRange(0, 1);
NSLog(@"%@",[stringII substringFromIndex:1]);//按位置截取字符串的内容,返回新的字符串
//找到字符串的位置---查
NSRange range=[stringII rangeOfString:@"LL"];
NSLog(@"location:%li,length:%li",range.location,range.length);
//可变字符串
NSMutableString *muString=[[NSMutableString alloc]initWithCapacity:10];
[muString appendString:stringII];//在原本字符串后增加,新增
NSLog(@"muString :%@",[muString substringWithRange:range]);//按范围截取字符串
[muString deleteCharactersInRange:range];//将原本的字符串进行删除,不返回新字符串,删除
NSLog(@"%@",muString);//截取之后的新字符串
//数字转化字符串
int i=10;
NSString *str=[NSString stringWithFormat:@"%i",i];
NSLog(@"String :%@",str);
// 字符串转换数字
int stringNum=[str intValue];
NSLog(@"int Number:%i",stringNum);
//总结:不可变字符串的方法:长度,比较,截取,大小写相互转化
// 不可变字符串:增加,查找,删除
//------数组-----数组不能存放数字,但是转化为NSNumber的对象类型就可以存入
// 不可变数组NSArray,
NSArray *array=@[@1,@2,@3];
NSLog(@"%@",array[2]);
//可变数组NSMutableArray
NSMutableArray *muArray=[[NSMutableArray alloc]initWithCapacity:10];//定义一个可变数组给一个初始空间
NSMutableArray *muarray=[NSMutableArray array];//定义一个可变数组给一个空数组
NSMutableArray *mutableArr=[[NSMutableArray alloc]initWithArray:array];//定义一个可变数组,给一个不可变数组
NSLog(@"%@",mutableArr);
[mutableArr addObject:@"hello"];//可变数组增加对象
NSLog(@"%@",mutableArr);
[mutableArr removeObject:@1];//可变数组删除对象
NSLog(@"%@",mutableArr);
return 0;
}