Objective-C:03_面向对象-类和对象

OC中只能使用指针变量来间接操作对象

类的声明使用的关键字是@interface

@interface  类名

@end

结尾的@end表示类声明结束

类的实现使用的关键字是@implementation

@implementation  类名

@end

结尾需要加上@end,告诉编译器类实现完毕

/*

类名:Car

属性:轮胎个数、时速(速度)

行为:跑

*/

//完整的写一个函数:函数的声明和定义(实现)

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

//1、类的声明

//:Car继承自NSObject类,目的是让Car这个类具备创建对象的能力(这个类在Foundation框架中)

#import <Foundation/Foundation.h>

@interface  Car:NSObject

{

//用来声明对象属性(成员变量(也成为实例变量 instance variable),默认会初始化为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行为来创建新对象

 //定义了一个指针变量p(左边的*不能省略)。p将来指向的是Car类型的对象

    //[Car new]每次都会创建出一个新对象,并且会返回新对象本身(新对象的地址)

Car *p=[Car new];

Car *p2=[Car new];

p2->wheels=5;

p2->speed=300;

 //给p所指向对象的wheels属性赋值

    p->wheels=4;

p->speed=250;

//给p所指向对象发送一条run消息

[p  run];

NSLog(@"车子有%d个轮子,时速为:%dkm/h",p->wheels,p->speed);

return 0;

}

Person *p=[Person new];

Person *p2=p;

指针之间的赋值传递的是指针存储的地址,相当于C#中的引用传递

OC中类在内存中也占空间(在使用类创建对象之前,会将类加载进内存-只会加载一次)

    而且OC中每个对象默认都有一个指针isa,指向创建对象的类

常见错误

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

漏了@end

@interface和@implementation嵌套(两个类的声明和实现不能嵌套)

两个类的声明嵌套

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

方法的声明卸载了大括号里面

成员变量必须写在类中的大括号中,并且不能重名和初始化,而且不能在前面加上static等

类的声明必须放在前面(使用之前),实现部分可以放在后面

方法和函数的区别:

对象方法都是以减号开头(-)

对象方法的实现只能写在@implementation和@end之间

对象方法的声明必须写在@interface和@end之间

对象方法只能由对象来调用

对象方法归类\对象所有

函数能写在文件中的任意位置(不能写在类的声明部分@interface和@end中间),函数归文件所有

函数调用不依赖于对象

函数内部不能直接通过成员变量访问某个对象的成员变量

如果在类的声明中有方法的声明,但是在实现的时候写成了函数,那么就会认为没有实现这个方法。

 方法的声明与实现:

//OC方法中,一个参数对应一个冒号(冒号前面可以写点描述的东西)

- (int) pingFang:(int) num;//方法名叫:pingFang:(冒号也算在方法名之内)

两个参数

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

调用的时候:

int a=[jsq sum:10 :5];

  推荐写法:

    - (int) sumWithNum1:(int)num1 andNum2:(int)num2;//方法名:sumWithNum1:andNum2:

        int a=[jsq sumWithNum1:10 andNum2:20];

多个参数也这么写

冒号也是方法名的一部分

在同一个类中不允许两个对象方法同名

方法名:

方法调用:

多个参数的方法声明:

多个参数的方法的调用:

匿名对象:

    不要写类似的匿名对象这样的代码(会造成内存泄漏):

    只要求能说出输出的结果

     [Car new]->speed=300;

     [[Car new] run];

ios文档:

安装方法1:将docset文件放到/Xcode.app/Contents/Developer/Documentation/DocSets路径下

安装方法2:放到硬盘某个路径

/Users/pcbeta/Library/Developer/Shared/Documentation/DocSets

如有不对的地方还请大家指正!!

时间: 2024-10-18 04:23:51

Objective-C:03_面向对象-类和对象的相关文章

Java面向对象-类与对象

Java面向对象-类与对象 类与对象的关系 我们通俗的举个例子,比如人类是一种类,张三这个人就是人类的具体的一个个体,也就是java中的对象:这就是一个类与对象的关系: 类的定义 下面看实例 类的创建和使用 看下面实例 我们在com.java1234.chap03.sec01包下新建一个Person类 1 package com.java1234.chap03.sec01; 2 3 /** 4 * Person类 文件名和类名必须一致 5 * @author user 6 * 7 */ 8 pu

C#编程语言与面向对象——类与对象

由于ASP.NET技术是全面向对象的,因此,要掌握这一技术,必须具备有扎实的面向对象理论基础 使用C#编程,所有的程序代码几乎都放在类中,不存在独立于类中之外的函数,因此,类是面向对象编程的基本单元 在绝大多数面向对象语言中,一个类都可以包含两种成员:字段和方法.字段与方法这两个概念是面向对象理论的术语,是通用与各种面向对象语言的.而在各种的具体面向对象语言(比如C#)中,可以简单地理解: 字段及变量,方法及函数. C#编程语言与面向对象--类与对象

12-10面向对象--类与对象

二.类与对象 1.了解类:从这里开始,学习C#面向对象编程的基本内容,使用C#编程,所有的程序代码都放在类中,结构体是一个用户自定义的类型,是由其他类型组成的变量组,不存在独立于类之外的函数:因此,在面向对象中,类是面向对象编程的基本单元.类与类之间交互. 2.类的定义:一个类都可以包含2种成员:字段和方法. 1)类的字段一般代表类中被处理的数据(变量): 2)类的方法大多数代表对这些数据的处理过程或用于实现某种特定的功能,方法中的代码往往需要访问字段保存的数据. 简单的说,字段即变量,方法即函

python面向对象——类和对象

一.三大编程范式 编程范式即编程的方法论,标识一种编程风格 三大编程范式: 1.面向过程编程(流水线式) 优点:极大的降低了程序的复杂度 缺点:应用场景固定住了,可扩展性差 2.函数式编程 特点: a.不修改外部传来值的状态 b.精简,可读性差 c.模仿数学里的函数 3.面向对象编程(是用来解决程序的可扩展性的) 优点:解决了程序的可扩展性 缺点:可控性差 二.面向对象设计与面向对象编程 1.面向对象设计 面向对象设计(Object oriented design):将一类具体事物的数据和动作整

1210面向对象--类与对象

二.类与对象 1.了解类:从这里开始,学习C#面向对象编程的基本内容,使用C#编程,所有的程序代码都放在类中,结构体是一个用户自定义的类型,是由其他类型组成的变量组,不存在独立于类之外的函数:因此,在面向对象中,类是面向对象编程的基本单元.类与类之间交互. 2.类的定义:一个类都可以包含2种成员:字段和方法. 1)类的字段一般代表类中被处理的数据(变量): 2)类的方法大多数代表对这些数据的处理过程或用于实现某种特定的功能,方法中的代码往往需要访问字段保存的数据. 简单的说,字段即变量,方法即函

面向对象(类与对象的关系)

人开门 class { public static void main(String[] args) { System.out.println("Hello World!"); } } /* 人开门:名词提炼法. 人 { 开门(门) { 门.开(); } } 门 { 开(){操作门轴等.} } */ //面向对象:三个特征:封装,继承,多态. //以后开发:其实就是找对象使用.没有对象,就创建一个对象. //找对象,建立对象,使用对象.维护对象的关系.               //

php面向对象------------类和对象

<?phpheader("content-type:text/html;charset=utf-8");/*$code = $_POST["code"];$name = $_POST["name"];*///类和对象//类是对象的抽象化,对象是类的实例化class ren{ //成员变量 var $shengao; var $tizhong; var $name; var $sex; //成员属性---php语言没有 //成员方法 func

黑马程序员-Java基础-面向对象-类和对象、封装、构造函数、this、static、饿汉式&amp;懒汉式

第一讲  面向对象概念 1.  定义 相对于与面向过程而言的,将功能封装进对象,我们只关心具备了该功能的对象,而不用关注对象的具体细节. 面向对象的特点:使复杂问题简单化.我们只关心什么对象能处理什么事情,而不用关心具体的实现细节. 2.  面向对象特征 封装.继承.多态. 第二讲  类和对象的关系 1.  概述 类就是:对现实生活中事物的描述,可以是实体的事物也可以是一件事等: 对象是:是某类事物的实例,实实在在存在的个体: 映射到java中,描述就是class定义的类. 具体对象就是对应ja

面向对象 类和对象

//面向对象     类     对象 //类是对象的抽象化//对象是类的实例化 class Ren{ //成员变量 var $tpo; var $zhong; var $name; var $sex; //成员方法 function Eat() { echo "正在用手吃饭";  } function Run() {  echo "跑的很快"; }} //实例化对象$r=new Ren();$r->name="张三";echo $r-&g