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

IOS/OC 记录 " 一 ",,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。