Xcode Day03:类和对象的创建和使用
1、现有类还是对象
从现实角度,一定是先有对象再有类
从代码角度,一定是先有类再有对象
2、类的作用:描述一群具有相同特征和行为的事物
3、类的定义
1)类的三要素
2)定义类的语法
a、位置:直接写在源文件之中,不要写在main函数之中
b、类的定义分为两个部分
—>类的声明
#import<Foundatin/Foundation.h>
@interface Person : NSObject
{
NSString *name;
int age;
float height;
}
@end
@interface 类名 : NSObject
{
数据类型 变量名1;
数据类型 变量名2;
…..
}
功能就是一个方法,将方法的声明写在这里
@end
—>类的实现
@implementation Person
@end
@implement 类名
将方法的实现写在这里
@end
3)注意
a、类必须要有声明和实现
b、类名用你描述的事物的名称来命名就可以了
类名的每一个单词的首字母必须大写开头
c、用来表示这类事物的共同特征的变量必须要定义在@interface的大括弧之中
e、定义在大括弧之中用来表示这类事物的共同特征的变量我们叫做属性/成员变量/实例变量/字段…..
4、类是无法使用的,如果非要使用这个类的话,就必须先找到这个类中的一个具体存在,再使用这个对象
类和对象的关系:类中有的东西,这个类中的对象也有,不会多也不会少,这个时候我们就可以使用对象里面的东西…
创建对象:
int main(int argc,const char * argv[])
{
Person *p1 = [Person new];
return 0;
}
语法:类名 *对象名 = [类名 new];
Person *p1 = [Person new]
根据Person这个类的模版,创建了一个对象的名字叫做p1
p1对象的特点:
—>可以直接使用
—>类中定义的东西,这个对象中也有,不会多也不会少
5、如何使用对象
如何访问对象属性:
1)默认情况下,对象的属性是不允许被外界直接访问的
如果允许对象的属性可以被外界访问,那么就再声明属性的时候加一个@public关键字
2)访问对象的属性方式
int main(int argc,const char * argv[])
{
Person *p1 = [Person new];
p1->name = @"阚志华";
p1->age = 19;
p1->height = 178.5f;
NSLog(@"p1对象的name属性的值是%@",p1->name);
//NSString:字符串 %@:打印的是指针变量指向的对象 %p:打印的是指针变量的值
//CGfloat:浮点值的基本类型 %f
//NSInteger:整型 %d
return 0;
}
对象名—>属性名;
对象名—>属性名 = 值;
Person *p1 = [Person new];
(*p1).name = @"阚志华";
(*p1).age = 25;
(*p1).length = 18.f;
(*对象名).属性名;
6、练习:写一个学生类,属性 年龄 语文成绩 数学成绩 英语成绩
@interface Student : NSObject
{
NSString *name;
int gae;
int yuwen;
int shuxue;
int yingyu;
}
@end
@implementation Student
@end
int main(int argc,const char * argv[])
{
Student *s1 = [Student new];
s1->name = @"阚志华";
s1->age = 25;
s1->yuwen = 98;
s1->shuxue = 100;
s1->yingyu = 99;
NSLog(@"s1对象的姓名是%@,年龄是%d 语文成绩是%d 英语成绩是%d",
s1->name,
s1->age,
s1->yuwen,
s1->shuxue,
s1->yingyu
);
}