[黑马程序员]12[OC语言]OC基本语法部分学习笔记总结
来源:互联网 发布:c语言经典第五版pdf 编辑:程序博客网 时间:2024/06/06 01:51
------- android培训、java培训、IOS培训、期待与您交流! ----------
OC基本语法介绍
1. 类与对象
OC中的类,什么是类,面向对象思想
//人,类名:Person
//属性:(成员变量,实例变量):体重,年龄
//行为(方法):走路
//1.类的声明
#import <Foundation/Foundation.h>
@interface Person :NSObject
{
//成员变量
@public
int age;
double weight;
}
//方法的声明
- (void)walk;
@end
//2.类的实现
@implementation Person
//方法的实现
- (void)walk
{
NSLog(@"%d岁,%lf公斤的人走了一段路",age,weight);
}
@end
//主函数
int main()
{
// Person *p = [Person new];
// p->age = 20;
// p->weight =70.0;
//
// [p walk];//给指针p指向的对象发一条walk消息
//
// Person *p2 = [Person new];
// p2->age = 30;
// p2->weight = 80.0;
//
// [p2 walk];
Person *p =[Personnew];
p->age =20;
Person *p2=[Personnew];
p->weight =50.0;
[p walk];
return0;
}
2. 类与函数
类与函数的关系与区别
//函数:
//1.函数能写在文件中的任意位置(@interface和@end之间除外),函数归文件所有
//2.函数调用不依赖于对象
//3.函数内部不能直接通过成员变量名访问某个对象的成员变量
@interface Car :NSObject
{
int wheels;
int speed;
}
-(void)run;
@end
@implementation Car
-(void)run
{
NSLog(@"");
}
@end
void test(int w,int s)
{
w =20;
s =200;
}
void test1(Car *newC)
{
newC->wheels =5;
}
void test2(Car *newC)
{
Car *c2 =[Carnew];
c2->wheels =5;
c2->speed =300;
newC = c2;
newC->wheels =6;]
}
int main()
{
Car *c =[Carnew];
c->wheels =4;
c->speed =250;
test(c->wheels, c->speed);
test1(c);
[c run];
return0;
}
3. 类与方法
什么是方法,方法的声明与实现
//方法:
//1.对象方法都是以减号'-'
//2.对象方法的声明必须写在@interface和@end之间
// 对象方法的实现必须写在@implementation和@end之间
//3.对象方法只能由对象来调用
//4.对象方法归类/对象所有
//计算器类
//方法:
//1>返回π
//2>计算两个整数的和
//3>计算两个整数的平方
@interface Calculate :NSObject
{
}
@end
@implementation Calculate
@end
//
#import <Foundation/Foundation.h>
@interface JiSuanQi :NSObject
-(double)fanHui;
-(int)pingFang:(int)num;
//-(int)sum:(int)num1:(int)num2;
-(int)sumWithNum1:(int)num1 andNum2:(int)num2;
@end
@implementation JiSuanqi
-(double)fanHui
{
return3.14
}
-(int)pingFang:(int)num
{
return num*num;
}
-(int)sumWithNum1:(int)num1 andNum2:(int)num2
{
return num1 +num2;
}
@end
int main()
{
JiSuanQi *jsq =[JiSuanQinew];
double a =[jsqfanHui];
NSLog(@"%f",a);
int b =[jsqpingFang:10];
int c =[jsqsumWithNum1:10andNum2:5];
return0;
}
4. 对象类型的属性与方法
//学生:
//成员变量:性别,生日,体重,最喜欢的颜色,狗......
//方法;吃,跑,遛狗,喂狗.......
typedefenum {
SexMan,
SexWoman
} Sex;
typedefstruct {
int year;
int month;
int day;
} Date;
typedefenum {
ColorBlack,
ColorRed,
ColorGreen
} Color;
@interface Dog :NSObject
{
Sex sex;
double weight;
Color CurColor;
}
-(void)eat;
-(void)run;
@end
@implementation Dog
-(void)eat
{
weight +=1;
NSLog(@"吃一次后体重为%d斤",weight);
}
-(void)run
{
weight -=1;
NSLog(@"跑一次后体重为%d斤",weight);
}
@end
@interface Student :NSObject
{
@public
Sex sex;
Date birthday;
double weight;
Color favColor;
char *name;
Dog *dog;
}
-(void)eat;
-(void)run;
-(void)print;
-(void)liuDog;
-(void)weiDog;
@end
@implementation Student
-(void)liuDog
{
//让狗跑()调用狗的run方法
[dogrun];
}
-(void)weiDog
{
[dogeat];
}
-(void)eat
{
weight +=1;
NSLog(@"chiyicizhang%fjin",weight);
}
-(void)print
{
NSLog(@"%d,%d,%s,%d-%d-%d",sex,weight,favColor,birthday.year,birthday.month,birthday.day);
}
-(void)run
{
weight -=1;
NSLog(@"paoyicijian%fjin",weight);
}
int main()
{
Student *s =[Studentnew];
s->weight =50;
Dog *d = [Dognew];
d->curColor =ColorGreen;
d->weight =20;
s->dog = d;
[s liuDog];
[s weiDog];
return0;
}
匿名对象的声明
@interface Car :NSObject
{
@public
int speed;
}
-(void)run;
@end
@implementation Car
-(void)run
{
NSLog(@"");
}
@end
int main()
{
// Car *c;
// c =[Car new];
// s->speed=250;
[Carnew]->speed =300;
[[Carnew]run];
return0;
}
- [黑马程序员]12[OC语言]OC基本语法部分学习笔记总结
- [黑马程序员]13[OC语言]OC三大特性部分学习笔记总结
- [黑马程序员]14[OC语言]OC内存管理部分学习笔记总结
- 黑马程序员-OC基本语法总结
- 黑马程序员-OC笔记(一) OC基本语法
- 黑马程序员-OC特有语法-学习笔记
- 黑马程序员-IOS学习笔记-OC基础OC简介及基本语法
- 黑马程序员:OC基本语法
- 黑马程序员-OC基本语法
- 黑马程序员--OC基本语法
- 【黑马程序员-学习笔记】OC-基础知识总结
- 黑马程序员——OC语言(一)--基本语法
- 黑马程序员——6、OC语言(基本语法)
- 黑马程序员——OC语言基本语法
- 黑马程序员——OC语言------基本语法
- 黑马程序员 -- OC语言 基本语法 类 对象
- OC语言学习-基本语法
- 黑马程序员-iOS学习日记(一)OC基本语法
- CSS3实现的单div图标
- [黑马程序员]10[C语言]C语言基本语法与基本语句部分需要注意的几个知识点
- [黑马程序员]11[OC语言]圆,点问题, OC的面向对象程序设计思想和类封装
- Navicat for MySQL and dos 在win7 64 位系统中遇到的问题,以及简单操作
- error while loading shared libraries: libz.so.1
- [黑马程序员]12[OC语言]OC基本语法部分学习笔记总结
- [黑马程序员]13[OC语言]OC三大特性部分学习笔记总结
- [黑马程序员]14[OC语言]OC内存管理部分学习笔记总结
- [黑马程序员]15[Foundation框架] Foundation部分学习笔记小结
- 【Android语音合成TTS】国内主流引擎对比
- [黑马程序员]16[Foundation框架]学习应用,计算学习代码量
- search - binary search/sort tree
- 北京市朝阳区第二中级人民法院服务电话是多少
- Codeforces Round #299 (Div. 1) 解题报告 (AB)