如何设计类?
类的设计,只关心3样东西:
1>.事物名称(类名):人(Person)
2>.属性:身高,年龄。。。
3>.方法(功能):跑,吃饭,打架。。。
拥有相同(或者类似)属性和行为的对象都可以抽象出一个类
总结:我们可以把具有相同属性和行为的对象都可以抽象出来一个类,开发过程中,我们是利用类按需索取创建所需的对象
类的设计具备三要素:类名,属性,方法(行为)
/*
学生类
1.类名:Student
2.属性:年龄 age
3.方法:学习study
*/
#import <Foundation/Foundation.h>
//如何定义类
//一个完整的函数:函数的声明和函数的定义(实现)
//一个完整的类:类的声明和类的实现
/********************类的声明*************/
//@interface是用来声明类的关键字,表示对外暴露的接口
//NSObject是所有类的根类,OC中所有的类都直接或者间接的继承于NSObject
//: NSObject我们可以先认为是让类具备创建对象的功能
@interface Student : NSObject
//声明属性 @property用来声明属性的关键字
@property int age;
//void func();
//-(返回值类型)方法名字;没有参数直接写“;”
-(void)study;
@end
/*******************类的实现**************/
@implementation Student
//类的实现里面主要是对类的方法的实现
-(void)study{
NSLog(@"Student对象正在学习");
}
@end
int main(int argc, const char * argv[]) {
@autoreleasepool {
//在OC中,想执行一些行为,先写上中括号[行为执行者 行为名称]
//利用类创建对象
//alloc 表示在堆里开辟了一块对象大小的空间
//[Student alloc]这个表达式返回的是这块内存空间的地址
//定义了一个指针变量stu,stu指向的是Student类型的对象
Student *stu = [Student alloc];
stu.age = 20;
NSLog(@"age = %d",stu.age);
//给stu指针指向的对象发送一条study消息【OC的消息机制】
[stu study];
}
return 0;
总结:面向对象语言解决问题,首先是根据需求设计相应的类,在根据类按照需求创建相应对象
//返回π 有返回值无参
//计算某个整数的平方
//带一个参数有返回值的 方法名:square:
//计算两个整数的和
//方法名是由“标签+冒号”组成
//sumWithNum1 andNum2 都是标签
//要求:标签对参数进行说明sumWithNum1:andNum2:
-(