java定义一个学生类cstudent_ios入门教程3:创建object-c面向对象的student类

上一节ios开发入门教程我们学会了如何创建一个object-c的入门小程序object-c面向对象的Student学生类,并在main函数中输出这个学生的年龄和编号。

通过本节的学习,我们将学会如何去定义一个object-c的类,并且学会如何使用get和set方法,以及学会如何定义多参数的方法,和object-c对象的创建与方法的调用。

1.我们在上一节hello项目的基础上再新建一个Student学生类,点击hello项目,右键选择“New File”,如图。

9272c3a340f218e979192ed61477577a.png

2.在弹出的对话框中选择Cocoa class图标,点击next,弹出对话框,输入class类的名称如Student,选择Language语言为Object-c开发语言,如图。

933684c0186005638ab854625389ca63.png

3.点击next之后就会弹出文件保存位置,默认的就可以,点击create按钮完成了Student类的创建,这个时候就会生成两个文件,一个Student.h,另一个是Student.m文件,前者是类的申明(java中叫接口)文件,申明文件不能写方法体,后者是类的实现,用于实现申明中的方法,如图。

8f2dc36be280d456d79dcf18801ca4ac.png

解释一:我们在Student.h申明文件中定义Student学生类的年龄age和编号no属性,并且申明get和set方法,get方法有返回值类型int,set没有返回值,所以为void,代码如下。//导入ios开发语言object-c框架

#import 

@interface Student: NSObject{

//年龄属性

int age;

//编号属性

int no;

}

//年龄get方法申明,返回int类型

-(int)age;

//编号get方法申明,返回int类型

-(int)no;

//年龄set方法申明,传入一个参数为newAge

-(void)setAge:(int)newAge;

//编号set方法申明,传入一个参数为newNo

-(void)setNo:(int)newNo;

//多参数方法的申明,同时设置年龄和编号

-(void)setAge:(int)newAge andNo:(int)newNo;

@end

解释一下上面的代码,@interface是定义一个类的关键字,Student为类名,NSObject为父类@interface Student: NSObject

这段话的整条意思就是定义student学生类,并且这个类继承NSObject,冒号“:”在这里是继承的意思,在方法中“:”后面代表的是参数,要知道,object-c语言中所有的类都是必须要继承NSObject的,学生类的属性比如说年龄和编号需要用大括号括起来“{}”,类的方法需要写在@end结束关键字里面。

解释二:Student.m文件,叫类方法的实现文件,主要用来写实现Student.h中申明的get和set等方法的逻辑,代码如下。//实现Student.h中的方法必须要导入Student.h这个类文件

#import "Student.h"

@implementation Student

//年龄get方法实现

-(int)age{

return age;

}

//年龄set方法实现,

-(void)setAge:(int)newAge{

age = newAge;

}

//编号get方法实现

-(int)no{

return no;

}

//编号set方法实现

-(void)setNo:(int)newNo{

no = newNo;

}

//实现同时设置年龄和编号的方法

-(void)setAge:(int)newAge andNo:(int)newNo{

age = newAge;

no = newNo;

}

@end

@implementation这个是类的实现关键字,如果Student.m想要实现Student.h中定义的申明,必须要使用此关键字。

还有一点要注意的是object-c方法有两种,一种是静态方法(类方法),方法前面用“+”加号表示,可以直接用类名调用。另一种方法是实例方法,用“-”减号表示,必须要创建类的对象才能调用。

object-c面向对象类我们已经创建好了,这个时候我们需要在一个程序中使用我们刚刚定义的方法,代码如下。#import 

#import "Student.h"

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

@autoreleasepool {

//分配内存

//Student *stu = [Student alloc];

//初始化对象

//stu = [stu init];

//以上的两个步骤可以简写成这样

Student * stu = [[Student alloc] init];

//对象调用set方法设置年龄

//[stu setAge:20];

//对象调用get方法,返回年龄的int类型

//int age = [stu age];

//NSLog(@"输出值为:%d",age);

//对象调用多参数的方法,同时设置年龄和编号

[stu setAge:20 andNo:2];

NSLog(@"年龄为:%d,编号为:%d",[stu age],[stu no]);

return 0;

}

}

以上的代码输出结果为年龄为:100,编号为:2

由于object-c需要手动给对象分配内存,因此在创建之前要用静态方法alloc给对象在内存中分配一个位置,然后用静态方法init初始化对象,这个时候我们就可以使用对象的set和get方法了。

“[]”中括号是固定格式,用于方法的调用,为什么Student.h中没有定义alloc和init方法而可以直接使用alloc和init方法呢?这是由于我们前面的Student.h类中继承了NSObject这个类,而这个类里面就定义了静态方法alloc和init,所以我们的子类就可以直接使用这两个方法。

object-c面向对象类的定义和方法的使用我们就圆满完成了,请记住,一定要多练习,而不是仅仅只是看看。

来源网站:太平洋学习网,转载请注明出处:http://www.tpyyes.com/a/object-c_ios/49.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值