类和对象
来源:互联网 发布:域名泛解析怎么做 编辑:程序博客网 时间:2024/05/22 18:00
面向对象编程
基本:
- 概念:对象 类 封装 多态
- 主要语言有 C++,Java,OC
面向过程与面向对象的区别
基本代码:
// OC打印 NSLog(@"Lanou"); // NSInteger 整型,CGFloat 浮点型,NSString 字符串 NSInteger i = 100; NSLog(@"i = %ld",i); CGFloat f = 3.14; NSLog(@"f = %g",f); // OC的字符串可以放中文 NSString *str= @"哟哟"; NSLog(@"%@",str); // OC的数组 // 与for循环遍历一样,直接用NSLog进行遍历 NSArray *arr = @[@"1",@"2",@"3"]; NSLog(@"%@",arr); for (NSInteger i = 0 ; i < 3; i++) { NSLog(@"%@",arr[i]); }
类和对象
类
- 类和对象是面向对象编程的核心
- 类就是具有相同特征以及行为事物的抽象
对象
- 对象是类的实例
- 类是对象的类型
OC中类的定义
- 先定义类,再创建对象,然后使用对象
- 定义有两个部分,接口与实现(注意分开写)
- 文件: .h的为接口文件, .m的为实现文件
接口
@interface Student : NSObject@end
实现
// 对应的实现文件@implementation Student
创建对象
- 任何对象都要占用空间
- 创建对象分为两步
- ①分配空间
- ②初始化
- 初始化
// 1.分配空间Student *stu = [Student alloc];// 2.初始化stu = [stu init];// 可以把上两个步骤合成一个语句Student *stu = [[Student alloc] init];
初始化中返回的self指的是返回完成的自己
- (id)init{ _stuName = @"俊宝宝"; _stuSex = @"女"; _stuHobby = @"男"; _stuAge = 20; _stuScore = 100; return self;}
使用对象
Student *stu = [[Student alloc] init]; [stu sayHi];
实例变量操作
- 实例变量初始化的时候只做少量的设置,后期完善
- 实例变量的可见度分为三种
- @public 公有
- @private 私有
- @protected 受保护的
@interface Student : NSObject{ // 成员变量的可见度 @public // 成员变量,或实例变量 NSString *_stuName; // 名字 NSInteger _stuAge; // 年龄 NSString *_stuSex; // 性别 CGFloat _stuScore; // 分数 NSString *_stuHobby;// 爱好}@end
操作成员
// 操作成员变量 // 对象通过->来访问自己的成员变量 NSLog(@"%ld",stu -> _stuAge); // 修改年龄 stu -> _stuAge = 100; NSLog(@"%ld",stu -> _stuAge); // 修改姓名,直接修改字符串直接赋值 stu -> _stuName = @"切克闹"; NSLog(@"%@",stu -> _stuName);
注意:public修饰的实例变量,可以直接使用” ->”访问
部分代码
main.m
int main(int argc, const char * argv[]) { // 通过手机的类,创建对象,并且对对象的成员变量进行修改 MobilePhone *mPhone = [[MobilePhone alloc] init]; mPhone -> _phoneBrand = @"samsung"; mPhone -> _phoneColor = @"白色"; mPhone -> _phoneModel = @"S100"; mPhone -> _phonePrice = 4800; mPhone -> _phoneSize = 1080; NSLog(@"品牌为%@,颜色:%@,型号:%@,价格:%ld,屏幕:%ld",mPhone->_phoneBrand,mPhone->_phoneColor,mPhone->_phoneModel,mPhone->_phonePrice,mPhone->_phoneSize); return 0;}
MobilePhone.h
@interface MobilePhone : NSObject{ @public NSString *_phoneBrand; NSString *_phoneModel; NSInteger _phoneSize; NSString *_phoneColor; NSInteger _phonePrice;}- (void)buyPhone;- (void)call;- (void)sendMessage;- (void)surfInternet;- (void)watchVideo;// 写一个用来打印全部信息的功能- (void)sayHi;@end
MobilePhone.m
@implementation MobilePhone- (void)buyPhone{ NSLog(@"买了个手机");}- (void)call{ NSLog(@"打了个电话");}- (void)sendMessage{ NSLog(@"发了个短信");}- (void)surfInternet{ NSLog(@"上了个网");}- (void)watchVideo{ NSLog(@"看了个视频");}// 重写电话的初始化方法- (id) init{ _phoneBrand = @"Apple"; _phoneColor = @"red"; _phoneModel = @"S5"; _phonePrice = 4000; _phoneSize = 1080; return self;}- (void)sayHi{ NSLog(@"%@ , %@ ,%@ ,%ld ,%ld ,",_phoneBrand,_phoneColor,_phoneModel,_phonePrice,_phoneSize);}
文章总结了今天学习的基本内容
1 0
- 【面向对象】对象和类
- 面向对象--类和对象
- 面向对象(类和对象)
- 面向对象-类和对象
- 面向对象----类和对象
- 类和对象
- vfp对象和类
- 类和对象
- Chap02:类和对象
- 类、对象和方法
- C#类和对象
- 第一章 类和对象
- 类和对象
- 对象、类和结构
- 类和对象
- 类和对象
- 类和对象
- 类和对象
- Android高效加载大图、多图解决方案_LruCache,有效避免程序OOM
- [转]Zend Studio 10.0.1 下载安装与注册码破解
- POJ 1861 Network //Kruscal算法
- Centos配置国内yum源
- Lowest Common Ancestor of a Binary Tree
- 类和对象
- POJ 1837 Balance (多重背包计数)
- 一步步教你Hadoop多节点集群安装配置
- Codeforces Round #312 (Div. 2) ABC题解
- STL中容器的erase()
- 硬件知识
- DB2错误代码
- LeetCode---(232)Implement Queue using Stacks
- Android_APP级别的异常处理