个人学习笔记
1、什么是对象
对象是现实生活中的一个具体存在,看得见摸得着,拿过来就可以直接用
2、什么是类
类是对一群具有相同特征或者行为的事务的统称,抽象的,不能直接使用
如果非要使用只能去找到这一类事务的一个具体存在,然后使用这个具体存在
3、类和对象关系
类是模板,类的对象是根据这个模板创建出来的,类模板中有什么,对象中就有什么,绝不可能多也绝不可能少。
4、如何设计一个类
类的作用:
用来描述一群具有相同特征和行为的食物
设计类的三要素:
类的名字
这类事务具有的相同的特征
这类事务具有的共同的行为
5、如何找到类
名词提炼法:分析整个业务流程,分析出现哪些名词,这些名词就是要找的类
6、如何定义类
a、定义类的语法
位置:直接写在源文件之中,不要写在main函数中
类的定义分为两个部分:类的声明,类的实现
//声明
@interface Human: NSObject
{
//可访问
@public
//这类具有的共同的变量,定义为属性
NSString *_name;
int _age;
float _height;
}
//功能就是一个方法,将方法的声明写在这里
//无参数方法
- (void)run;
//一个参数方法
- (void)eat:(NSString *)foodName;
//多个参数方法
- (int)sum:(int)num1 :(int)num2;
@end
//实现
@implementation Human
//无参数方法
- (void)run
{
NSLog(@"我在跑步");
}
//一个参数方法
- (void)eat:(NSString *)foodName
{
NSLog(@"这个@真好吃",foodName);
}
//多个参数方法
- (void)sum:(int)num1 :(int)num2
{
int sum = num1 + num2;
NSLog(@"sum的值为%d",sum)
}
@end
int main()
{
//创建对象
Human *h1 = [Human new];
//设置属性值
h1->_name = @"ergo";
h1->_age = 20;
h1->_height = 180.8f;
//访问属性值
NSLog(@"h1对象的_name属性值是%@",h1->_name)
//调用无参数方法
[h1 run];
//调用一个参数方法
[h1 eat:@"苹果"];
//调用多个参数方法
[h1 sum:123 :456];
}
b、几点注意
类必须要有声明和实现
类名用描述的事务名称来命名就可以,首字母大写
属性名必须以下划线开头
7、创建对象
类名 *对象名 = [类名 new]
8、使用对象
a、访问对象属性
默认情况下对象属性不允许被外界直接访问,如果允许对象属性被外界访问,那么就在声明的时候添加@public关键字
b、访问对象的属性的方式
对象名->属性名 = 值;
对象名->属性名;
(*对象名).属性名 = 值;
(*对象名).属性名;
9、无参数方法
a、声明
位置:在@interface大括号外面
语法:- (返回值类型)方法名称;
b、实现
位置:在@implementation中实现
语法:- (返回值类型)方法名称{方法实现代码}
c、调用
方法无法直接调用,因为类不能直接使用,必须要先创建对象,对象中就有类中的属性和方法,就可以调用对象的方法
调用方法:[对象名 方法名]
10、带一个参数的方法
a、声明
位置:同上
语法:- (返回值类型)方法名称:(参数类型)形参名称;
b、实现
位置:同上
语法:同上
c、调用
方法无法直接调用,因为类不能直接使用,必须要先创建对象,对象中就有类中的属性和方法,就可以调用对象的方法
调用方法:[对象名 方法名:实参];
11、带多个参数的方法
a、声明
位置:同上
语法:- (返回值类型)方法名称:(参数类型)形参名称1 :(参数类型)形参名称2
b、实现
位置:同上
实现的语法:- (返回值类型)方法名称{方法实现代码}
c、调用
方法无法直接调用,因为类不能直接使用,必须要先创建对象,对象中就有类中的属性和方法,就可以调用对象的方法
调用方法:[对象名 方法名:实参1 :实参2 :实参3];
12、带参数的方法声明规范
a、如果方法只有一个参数,最好这个方法的名字叫做 xxxWith: 增强可读性
b、如果有多个参数,建议按这个方法命名 xxxWith:(参数类型)参数名称 and:(参数类型)参数名称;