《IOS_OC》类和对象
来源:互联网 发布:windows桌面程序开发 编辑:程序博客网 时间:2024/06/05 20:06
一:面向过程和面向对象的区别:
// 面向过程编程:以时间先后顺序、因果关系为中心的编程思想,如:C语言
//面向对象编程:以功能点为核心,程序可以有多个不同的功能模块,各个模块相互独立,适合团队开发,如:C#\C++\OC\JAVA
二:类和对象的使用步骤
(1)Student.h文件,头文件,声明文件,接口文件里面创建一个类
如:Student类 ,首字母大写
在@interface Student : NSObject和@end里面填写实例对象、方法的声明
如:
@interface Student : NSObject
//1、实例变量的声明,作为全局变量
{
@public//实例变量的可见度,public表示共有的,使得几个文件里面可以使用以下的实例变量,默认是protected的,不然在后面会报错的,因此需要在这里添加@public
//1、实例变量的声明
//对象类型声明,格式:NSString *_名字;
NSString *_name;
// NSString *_gender;
//以下不是对象类型int\float\bool等,则不用加星号*
int _age;
float _score;
}
//2、方法(行为)的声明
//(1)类方法:+开头,由当前类使用,静态的。
//不需要返回值的
+(void)sayHello;
//(2)实例方法:-开头,返回值类型,动态的,由当前类的对象()来调用
-(void)introduceSelf;
//3、带参数的实例方法的实现
//格式:-(返回值类型)方法名1:(参数类型)参数名 方法名2:(参数类型)参数名{}
-(void)introduceSelfWithHobby:(NSString *)hobby number:(NSInteger)number
{
NSLog(@"hello,everybody!My name is %@.I am %d years old.My hobby is %@,my number is %ld",_name,_age,hobby,number);//这里直接是方法名1和方法名2
}
@end
(2)Student.m文件:方法的实现文件,相当于函数的定义
//方法的实现,相当于函数的定义
@implementation Student
//1)类方法(+(void)sayHello)的实现过程
+(void)sayHello
{
NSLog(@"Hello!");//静态的,直接显示的
}
//2)实例方法-(void)introduceSelf的实现
-(void)introduceSelf
{
NSLog(@"大家好,我是%@,今年%d",_name,_age);//动态的,需要调用实例变量的
}
//3)类方法:直接打印的,吃面包
+(void)eatBread
{
NSLog(@"eatingBread!");//静态的,直接显示出来的
}
//4)实例方法应用:取名字
-(void)getScore
{
NSLog(@"我是%@,我得成绩是%f",_name,_score);
}
//5)、带参数的实例方法的实现
//格式:-(返回值类型)方法名1:(参数类型)参数名 方法名2:(参数类型)参数名;
-(void)introduceSelfWithHobby:(NSString *)hobby number:(NSInteger)number
{
NSLog(@"hello,everybody!My name is %@.I am %d years old.My hobby is %@,my number is %ld",_name,_age,hobby,number);//这里直接是方法名1和方法名2
}
@end
(3)main.m文件里面主要是函数的调用使用
首先需要引入#import “Student.h”头文件
再写在@autoreleasepool {·····}里面
如://(1)类方法+(void)sayHello)的使用,由类"Student"来使用:【Student类名+方法的名字】;
[Student sayHello];
//(2)实例方法-(void)introduceSelf的调用,用Studen类的对象stu来调用
//下面创建类的对象stu
//1)、分配空间[Student alloc],*号表示对象
Student *stu=[Student alloc];
//2)、初始化[stu init]
stu=[stu init];
当然以上两步可以整合起来:
Student *stu=[[Student alloc]init];//申请空间和赋值初始化一步到位
//3)访问实例变量(格式:对象名stu->实例变量名_name),赋初值(汉字或字符串则@“”,整型的数字,则直接赋值就可以了)
stu->_name=@"猪头";
stu->_age=18;
//取值输出,跟访问赋值格式是一样的访问方式,格式:对象名stu->实例变量名_name
NSLog(@"%@,%d",stu->_name,stu->_age);
//4)、通过对象stu来使用实例方法-(void)introduceSelf
[stu introduceSelf];
//5)、带参数的实例方法使用,直接用对象stu来调用,在冒号后面输入对应的方法名1,和方法名2的内容
[stu introduceSelfWithHobby:@"18的姑娘" number:60];
- 《IOS_OC》类和对象
- ios_oc @property和@synthesize以及属性介绍
- ios_OC中的类声明、定义域等等概念
- ios_oc 类名、延展与协议(网址)
- ios_oc Foundation
- IOS_oc 数组
- ios_oc学习总结
- iOS_oc小知识点
- iOS_OC重要知识点
- ios_oc 程序执行过程概述
- ios_oc 内存管理(引用计数)
- ios_oc 深浅拷贝的区别
- 【面向对象】对象和类
- 面向对象--类和对象
- 面向对象(类和对象)
- 面向对象-类和对象
- 面向对象----类和对象
- 类和对象
- JAVA基础学习(四)---数组的操作
- java设计模式-模版方法
- C++入门经典 笔记 (第十三章)高级引用和指针
- [LinkerScript.2] 链接器脚本格式 - Linker Script Format
- scala学习之:scala并发编程(三)
- 《IOS_OC》类和对象
- PJAI
- java.lang.ClassNotFoundException: Didn't find class "*****Activity" on path: /data/app/*******.apk
- IPV4上建立IPV6隧道以及IPV6上建立IPV4隧道
- linux之read命令
- linux中断处理原理分析
- 提高
- Topcoder SRM630,DIV2,1000,后缀数组
- IOS 字符串的用法