黑马程序员--类与对象

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-

一、类与对象

类是一类事物的统称,是抽象的,拥有相同属性和行为的对象可抽象出一个类。构成元素:事物的名称即类名,属性,行为也可以说是功能。(一般名词都是类,例如坦克发射3颗炮弹轰掉了2架飞机,那坦克,炮弹,飞机是类)

对象是现实世界中各种各样的实体。

例如:人可以称作是类,而有个人叫小二,有个人叫小一,小二就是对象,小一也是一个对象。

总结一个类可以实例化多个对象。

1.类的设计:
1》类名
*类名的第一个字母必须是大写
*不能有下划线
*多个英文单词,用驼峰标示
2》属性
3》行为(功能)

2.植物大战僵尸
1》僵尸
*类名:Zoombie
*属性:life 、speed、goodjili
*行为:walk、bite、die

二、类的声明和实现

.h:类的声明文件,用于声明成员变量、方法,使用关键字@interface和@end。

.m:类的实现文件,用于实现.h中声明的方法,使用关键字@implementation和@end。

类的方法(在c语言中称是函数)

以+,-开头,+表示类方法(静态方法),-表示对象方法(动态方法)
/*
计算器类
方法:
1>返回 π
2》计算某个整数的平方
3》计算两个整数的和
*/

#import <Foundation/Foundation.h>
@interface JiSuanQi : NSObject
//方法名:pi
- (double)pi;
//oc方法中,一个参数对应一个冒号
//方法名:pingfang:(冒号也是方法名的一部分)

- (int)pingfang:(int)num;

//- (int)sum:(int)num1 :(int)num2;

//方法名:sumWithNum1:andNum2:

- (int)sumWithNum1:(int)num1 andNum2 :(int)num2;
@end
@implementation JiSuanQi

- (double)pi
{
    return 3.14;
}

- (int)pingfang:(int)num
{
    return num * num;
}
- (int)sumWithNum1:(int)num1 andNum2 :(int)num2
{
    return num1 + num2;
}
@end
int main()
{
    JiSuanQi *p = [JiSuanQi new];
    //int a = [p pingfang:10];
    int a = [p sumWithNum1:10 andNum2:5];
    NSLog(@"%i",a);

    return 0;
}

//完整的写一个类:类的声明和实现

#import <Foundation/Foundation.h>
//类的声明(声明对象的属性、行为)

@interface Car : NSOject(目的是 让这个Car 具备创建对象的能力)
{//用来声明对象属性(成员变量,默认会初始化为0)

    //@public 可以让外部的指针间接访问对象内部的成员变量
    @public
    int wheels;
    int speed;
}
//方法(行为):方法名、参数、返回值(声明、实现)
//只要是oc对象的方法,必须以减号- 开头
//oc方法中任何数据类型都不必须用小括号()扩住
//oc方法中小括号作用:扩住数据类型
- (void)run;

@end
//2.类的实现
@implementation Car
//方法的实现

- (void)run;
{
    NSLog(@"车子跑起来了");
}


@end
int main()
{
    //利用类来创建对象,在oc中,想执行一些行为,就写上一个中括号【行为执行者  行为名称】
    //执行Car这个类的new行为来创建对象
    car *p = [Car new];
    car *p2 = [Car new];
    //给p所指向的对象的wheels属性赋值
    p->wheels = 4;
    p->speed = 250//给p所指向对象发送一条run消息
    [p run];
    NSLog(@"车子有%d个轮子,时速位:%dkm/h",p->wheels,p->speed);

    return 0;

}

练习
/*
设计一个方法,用和其他车速比较车速,换回成为苏的差距
*/

#import <Foundation/Foundation.h>
@interface Car : NSObject
{
@public
    int speed; // 定义成员变量
}
// 类的声明
- (int)compareSpeedWithother:(Car *)other;
@end
@implementation Car
// 类的实现
- (int)compareSpeedWithother:(Car *)other
{
    return speed - other->speed;
}
@end
int main()
{
    Car *c1 = [Car new];// 定义一个新的对象
    c1->speed = 300;// 赋值
    Car *c2 = [Car new];// 定义第二个对象
    c2->speed = 280; // 赋值

    int a = [c1 compareSpeedWithother:c2];
    NSLog(@"a=%d",a);
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值