黑马程序员----------OC基础部分

本文探讨了Java语言中的面向对象编程概念,包括类和对象的设计原则,以及类的声明和实现方法。同时,介绍了Java培训课程内容,涵盖Java、Android、iOS和.NET等领域的学习资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                               ------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

1. 面向对象和面向过程。

1>oc是面向对象的语言,所谓面向对象就是解决问题需要哪些对象。

2>c是面向过程的语言,解决问题时关注的是过程和步骤。

2.  类和对象。

1>类:相当于设计图。

1>类名:类名的第一个字母必须是大写

               不能用下划线

                多个英文单词时必须用驼峰标识

2>对象:是依据类设计出来具体存在的。

因此面向对象解决问题是先考虑需要设计哪些类,再根据这些类创建出所需要的对象。

3. 需要设计哪些类,如何创建类。

1>类的设计只需三种东西。即类名、属性、和行为(功能)

例如:

1>.植物大战僵尸

类名  Zoombie

属性  life speed gongjili

行为  walk bite die

2>.雷电中的飞机

类名 : Plane

属性 : life gongjili speed boomCount

行为 : fly boomb shoot die

4. 类的声明和实现:

类的声明:声明对象属性、行为。

@interface 类名

{

   成员变量名

    ...............

}

@end

类的实现:

@implemention 类名

{

    对象方法的实现

}

@end

例子:

创建一个car类属性为轮子,速度,行为跑。

#import
//1.类的声明
//声明对象的属性、行为
//:NSObject 目的是让car这个类具备创建对象的能力
@interface Car: NSObject
{
 
 @public//可以让外部的指针间接访问对象内部的成员变量
 int wheels;
 int speed;
 }
  //方法(行为):方法名、参数、返回值(声明、实现);
  //只要是oc对象的方法 必须以减号“—"开头
  //oc方法中任何数据类型都必须用()括住
 -(void)run;
 @end
 //类的实现
 @imlemention Car
-(void)run
{
 NSLog(@"车子跑起来了");
}
  
 @end
 int main()
 {
    //在oc中向执行一些行为就写上一个中括号[执行者  行为名称] 
    //利用类名创建对象
 //执行了类的new行为创建了对象
 //定义了一个指针p将指针p指向car类型对象
 //[类名  new]每次都会创建一个新对象并且反悔新对象本身
  car *p = [car new];
  p -> wheels=4;
  p -> speed = 250;
  //给p只想的对象发送了一个run命令
  [p run]
  car *p2 = [car new];
  p2 -> wheels = 5;
  p2 -> speed = 300;
  [p2 run]
  return 0;
 }

类的声明和实现常见的错误:

 1>只有类的声明,没有类的实现

2> 漏了@end

3>@intface和@implementation嵌套 两个类的声明嵌套

4>成员变量没有写在括号里面

5>方法的生命卸载了大括号里面 

5. OC中方法和函数的区别:

对象方法:

1>对象方法是以-好开头的的

2>对象方法必须声明在@interface  @end中

3>对象方法必须有对象来调用

4>对象方法归类对象所有

函数:

1>函数能写在文件任意位置(@interface @end 只见除外)

2>函数调用不依赖于对象

3>函数内部不能通过成员变量名访问某个成员变量

例子:


#import
typedef enum{
            SexWoman,
   SexMan,
}Sex;
typetydef struct{
            int year;
            int month;
            int day;
}Date;
typedef enum{
 ColorBlue;
 ColorRed;
 ColorGreen;
}Color;
@interface Student : NSObject
{
 Sex sex;
 Date birthday;
 Color favCOlor;
 double wheight;
 Dog *dog;
}
-(void) eat;
-(void) run;
-(void) liudog;
-(void) weidog;
@end
@implementation Student
-(void) eat
{
 wheight = wheight - 1;
 NSLog{@"当前体重为%f", wheight};
}
-(void) run
{
 wheight = wheight - 1;
 NSLog{@"当前体重是%f",wheight}
}
-(void) liudog
{
 [dog run]
}
-(void) weidog
@end
@interface Dog : NSObject
{
 @public
 double wheight;
}
-(void) eat;
-(void) run;
@end
@imlementation Dog
-(void) eat
{
 wheight = wheight - 1;
 NSLog{@"狗当前的体重是%f",wheight}
}
-(void) run
{
  wheight = wheight - 1;
 NSLog{@"狗当前的体重是%f",wheight}
}
}
int main()
{
 Student *s = [ Student new];
 s-> wheigt = 50;
 
 Date d ={2011,11,11};
 s -> birthday = d;
 s ->favColor = ColorGreen;
 [s run];
 [s eat];
 
 
 
 Dog *p = [Dog new];
 p ->wheight = 20;
 [p eat];
 [p run];
 
  s ->Dog = p;
  [s liugou];
  [s weigou];
  return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值