IOS/OC 记录 " 一 "
类是一组具有相同特征和行为的事物的抽象,类就是通常所说的"类型".
对象就是类的实例.
在OC中,类的定义分两个部分:接口部分和实现部分, 通常分别写在两个文件中.
接口部分: .h; 声明了类名、父类名、实例变量(特征)和方法(行为);
实现部分: .m; 方法的具体实现(具体行为);
接口部分以@interface开始,以@end结束:
@interface 类名:NSObject{
//实例变量列表(类的特征)
}
//方法列表(类的行为列表)
@end
.h可以在一个文件里,声明多个类,但通常不这么做;
实现部分以@implementation开始,以@end结束:
@implementation 类名
{
//方法列表
}
@end
创建对象,分两步:
内存分配:为对象分配内存空间,并返回首地址;
初始化:在内存中填上初始值;
OO(Object Oriented)面向对象
OOP(Object Oriented Programming)面向对象编程
//记录
.h
#import <Foundation/Foundation.h>
@interface Student : NSObject
//1.接口部分(所属的文件以.h结尾)
{
//实例变量的列表(类的特征列表)
@public
NSString * _name; /*NSString * 在OC里定义字符串*/
NSString * _sex;
int _age;
//实例变量的使用:
//1.类的内部
//在类的内部,实例变量在任何方法中都可以随意使用
//2.外部访问实例变量时,有可见度的设置
//三种访问权限(可见度)
//@public 公开的 表示实例变量可以 在外部 随意调用和改动
//@protected 受保护的 表示实例变量不可以在外部被调用和修改(OC默认)
//@private 私有的,不可以在外部被调用和修改
}
//方法列表(也叫类的行为列表;类的方法在接口部分,只是声明,不实现)
- (void) study;
- (void) sleep;
//带参数的方法
- (void)eat:(NSString *)food;
//多参数
- (void)firstNumber:(int)num1 secondNumber:(int)num2 thirdNumber:(int)num3;
@end
.m
#import "Student.h"
@implementation Student
//实现部分:(.m文件)
//接口部分中的 所有方法 都必须在实现部分实现
- (void) study
{
_name = @"啊啊啊";
_age = 10;
_sex = @"男";
NSLog(@"我正在学习,名字:%@ 年龄:%d 性别:%@",_name,_age,_sex);
/*NSlog相当于printf打印*/
}
- (void) sleep
{
_name = @"噢噢噢";
_sex = @"你猜";
NSLog(@"正在睡觉,%@%@",_name,_sex);
}
//带参数的方法
- (void)eat:(NSString *)food
{
NSLog(@"%@在吃%@",_name,food);
}
//多参数
-(void)firstNumber:(int)num1 secondNumber:(int)num2 thirdNumber:(int)num3
{
NSLog(@"%d===%d===%d",num1,num2,num3);
}
@end
main.m
#import <Foundation/Foundation.h>
//第一步,引入类的头文件
#import "Student.h"
int main(int argc, const char * argv[])
{
Student * stu1 = [[Student alloc] init]; /*创建实例对象*/
//利用 stu1对象 调用自身的方法
[stu1 study]; //对象 学习
[stu1 sleep]; //对象 睡觉
//实例变量被改变为public后,调用对象的实例变量
stu1->_name = @"啊啊君"; /*给stu1 赋值*/
NSLog(@"%@",stu1->_name);
//作业
1.完成班级开班介绍
需求:
(1)定义一个班级类。
实例变量:所属培训机构,班级名,班级人数、开班时间、授课老师名字。
方法:初始化、集体活动、开班会。
(2)定义一个老师类。
实例变量:名字、性别、年龄、正在教的课程、授课班级。
方法:初始化、讲课、留作业、验收作业、解决问题、自我介绍。
(3)定义一个学生类。
实例变量:名字、性别、年龄、学号、所在班级、任课老师、正在学习的课程。
方法:初始化、学习、做作业、提出问题、回答问题、自我介绍。
2.编程实现:在一个视图坐标系中(原点在左上角,原点向右为正x,原点向下为正y,坐标系宽320,高480),创建布置3个矩形对象。第二个和第三个矩形拼接显示的位置,刚好能够完全覆盖第一个矩形。输出这三个矩形的坐标x,坐标y,宽,高,周长,面积。矩形对象不要超出坐标系的范围。需求:
定义矩形类:
实例变量:坐标x、坐标y、宽、高、矩形中心点的坐标centerX、矩形中心点的坐标centerY、面积、周长。
方法:初始化、绘制(输出4个主要数据,面积、周长),计算周长、计算面积。
3.分数计算:任意的两个分数,对这两个分数的进行加、减、乘、除运算,并输出结果, 注:结果区分正负。
需求:任意的两个分数,对这两个分数的进行加、减、乘、除运算,并输出结果,注:结果区分正负。
本文出自 “学员园” 博客,请务必保留此出处http://313073062.blog.51cto.com/8682905/1381455
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。