iOS学习第一天(Objective-C语言的类/继承)

在学习完c语言之后,今天开始了对OC语言的学习,今天主要学习的是对OC中的类进行说明和继承。

1、类的定义和使用

在文件夹上右击,选择New File...-Cocoa Class-输入类的名称-Creat。即可新建一个类。注意,选择要继承的类为NSObject

首先在所建立的.h文件中进行对类的声明部分,之后在.m文件中进行对类的实现部分。

对类声明部分的语法:

@interface 类的名字:父类的名字

{

  类的数据的定义

}

@end

对类的实现部分的语法:

@implementation 类的名字

行为的实现

@end

如我们求1~100之和的函数中,.h文件中对类进行声明:

#import <Foundation/Foundation.h>

@interface LYSum : NSObject

{

int n;

}

-(void)setN:(int)_n;

-(int)sum;

@end

.m文件中对类实现的部分:

#import "LYSum.h"

@implementation LYSum

-(void)setN:(int)_n

{

n = _n;

}

-(int)sum

{

int s=0;

for(int i=0;i<=n;i++)

{

s+=i;

}

return s;

}

@end

最后在main.m文件中对类的行为进行实现,main.m文件中的代码:

#import <Foundation/Foundation.h>

#import "LYSum.h"

int main(int argc, const char * argv[]) {

@autoreleasepool {

LYSum * sum = [[LYSum alloc]init];//注意这里的固定用法

[sum setN:100];

int s = [sum sum];

NSLog(@"%d",s);

}

return 0;

}

2、类的继承和init函数

在作图函数中LYShape.h文件对类进行的定义:

#import <Foundation/Foundation.h>

@interface LYShape : NSObject  //对NSObject进行继承

{

int width;

int height;

}

-(id)initWithWidth:(int)_width andWithHeight:(int)_height;  //定义一个新函数,使width和height能够在一个函数中出现

-(int)area;

@end

在LYShape.m文件中对两个函数进行说明部分:

#import "LYShape.h"

@implementation LYShape

- (id)init  //重写父类里的init

{

self = [super init];

if (self) {

width = 0;

height = 0;

}

return self;

}

-(id)initWithWidth:(int)_width andWithHeight:(int)_height  //初始化行为

{

//必须去调用父类的初始化行为

self = [super init];

if(self)  //如果父类初始化成功

{

    //初始化自己的数据

width = _width;

height = _height;

}

return self;

}

-(int)area

{

return width*height;

}

@end

之后,LYCircle对LYShape进行继承,LYCircle.h中的代码:

#import "LYShape.h"

@interface LYCircle : LYShape  //对LYShape进行继承

-(id)initWithRad:(int)_rad;

-(double)area;

@end

LYCircle.m中的代码:

#import "LYCircle.h"

@implementation LYCircle

-(id)initWithRad:(int)_rad

{

self = [super initWithWidth:_rad andWithHeight:_rad];  //使用super代表调用父类的函数

return self;

}

-(double)area

{

return 3.14*[super area];  //同理,需要调用父类函数来计算圆的面积

}

@end

最终,main.m中的代码:

int main(int argc, const char * argv[]) {

@autoreleasepool {

  //图形

LYShape * s =[[LYShape alloc]initWithWidth:10 andWithHeight:20];

NSLog(@"%d",[s area]);

      //圆形

LYCircle * circle = [[LYCircle alloc]initWithRad:10];

NSLog(@"%g",[circle area]);  //%g可以输出一个整数

  }

return 0;

}

第一天学习到的东西并不是很多,但是我们对于这个语言有了一个整体的认识,可以很快完成从C到OC的转换。

时间: 2024-11-04 21:04:43

iOS学习第一天(Objective-C语言的类/继承)的相关文章

学习ios笔记第一天的C语言学习记录

c语言基础学习 int num1 = 15; int num2 = 5; int temp = 0; //先把num1放到temp里 temp = num1; //先把num2放到num1里 num1 = num2; //先把temp放到num2里 num2 = temp; 算数运算符 +加法运算 -减法运算符 *乘法运算符 /除法运算符  ------整型相除取整,除数不为0 %取余运算符 ------两边均为整数 ++递增运算-------运算符在前,先执行:运算符在后,后执行: --递减运

IOS学习第一课

第一课,也就是公认的HelloWorld了. 步骤如下: 1  创建helloWorld工程 2 实现QuizViewController.h文件 3 实现QuizViewController.m文件 4 使用StorBoard绘制界面 5 连接输出口 6 定义事件 IOS学习第一课

iOS 学习第一步

学习iOS首先要学会怎么使用苹果电脑 本人初期学习过程总结: a9本课程从第一次上手Mac开始,循序渐进的介绍了 OS X 的日常使用方法以及诸多实用技巧.在课程的后半部分以范例的形式深入讲解了OS X 下的一些高级技巧. 苹果系统是软硬结合度非常高的 1.0:Mac OS 简述.谈谈 Mac OS 到 OS X 的发展过程,以及 Mac OS 与 Windows 的爱恨情仇. MAC(苹果电脑) Mac是苹果自1984年起以“Macintosh”(麦金塔电脑)开始的个人消费型计算机搭载Mac

IOS学习笔记3—Objective C—简单的内存管理

今天简述一下简单的内存管理,在IOS5.0以后Apple增加了ARC机制(Automatic Reference Counting),给开发人员带来了不少的方便,但是为了能更好的理解IOS内存管理机制,还是需要对其比较了解. 1.在OC中,每个对象都有一个保留计数,创建时每个对象都有一个初始值为1的保留计数,释放时,保留计数都为0 2.创建自动释放的对象 要求以一个方法创建对象时,以自动释放的形式返回该对象是一个很好的编程实践 +(Car *)car { Car *myCar = [[Car a

C++学习笔记(十二):类继承、虚函数、纯虚函数、抽象类和嵌套类

类继承 在C++类继承中,一个派生类可以从一个基类派生,也可以从多个基类派生. 从一个基类派生的继承称为单继承:从多个基类派生的继承称为多继承. 1 //单继承的定义 2 class B:public A 3 { 4 < 派生类新定义成员> 5 }; 6 //多继承的定义 7 class C:public A,private B 8 { 9 < 派生类新定义成员> 10 }; 我们这篇主要说单继承. 派生类共有三种C++类继承方式: 公有继承(public) 基类的公有成员和保护成

【Smallfan的ios学习笔记 01】编译并运行第一个程序

本文来自:博客园CoderSmallfan.转载请注明出处:http://www.cnblogs.com/codersmallfan/p/3746329.html 如同学习其他平台开发一样,学习ios开发也应掌握一门语言并以一个操作系统作为平台,这门语言就是objective C,而这个操作系统为Mac OSX.如果英语稍微及格的同学应该能从objective这个单词看出点门道,object的中文意为对象[计],objective直意为目标,在这里实际上是面向对象的意思,其实就是一门扩充C的面向

iOS学习笔记---c语言第九天

高级指针 指向结构体变量的指针,称为结构体指针 可以使用->指向内容. %p打印地址 void pLenth(cPoint *p1,cPoint *p2) //求两点间的距离  用的开方函数sqrt()和平方函数pow(,) { float a = sqrt(pow((p1->x-p2->x), 2)+pow((p1->y-p2->y), 2)); printf("两点距离为%.2f\n",a); } //main.m中代码 #import <Fou

C语言零基础项目驱动式学习第一天

引言: 智能手机(Smart Phone)是一种运算能力及功能比传统手机更强的手机.目前的操作系统基本上有以下几种: 1. Symbian Os 众所周知塞班隶属于NOKIA,Symbian开发之初的目标是保证在较低资源的设备上能长时间的运行,这导致了塞班的应用程序开发有着较为陡峭的学习路线,开发成本高,但是程序的运行的效率很高> 2.Android 开源, 联盟,Android凝聚了几乎遍布全球的力量,这是Android形象及声音能够被传到全球移动互联网市场每一个角落的根本原因.不过, 1).

IOS阶段学习第一天笔记

原本从事的是.NET开发,一直在要不要转IOS 中犹豫徘徊,经过复杂的内心挣扎终于鼓起勇气辞职脱产学习IOS,现在已成无业人士加学生狗一枚.希望通过四个月的学习后能够拿到理想的薪资.以下是学习过程中的学习笔记,为了方便自己日后查看,同时也希望为IOS初学者带来些许帮助,遂准备将IOS整个学习阶段的学习笔记整理记录.                                                                                   IOS学习(C语言