OC-方法的声明和实现、匿名对象

方法声明:

  

方法调用:

*冒号也是方法名的一部分

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

练习

给Car类设计一个方法,用来和其他车比较车速,如果快返回1,慢返回-1,相同返回0

#import <Foundation/Foundation.h>
@interface Car : NSObject
{
    @public
    int speed;
}

- (int)compareSpeedWithOther:(Car *)other;

@end

@implementation Car
- (int)compareSpeedWithOther:(Car *)other;
{
    //speed //调用方法的speed
    //other->speed//访问传入的speed
    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];

    CSLog(@"a=%d", a); //输出20
}

匿名:(不推荐写)

int main()
{
    Car *c; //定义指针
    c = [Car new]; //创建对象,赋值给指针
    //可以合成为一句:Car *c = [Car new];
    [c run];

    return 0;
}
//匿名
int main()
{
    [Car new]->speed = 300;
    [[Car new] run]; //speed 为0 ,与上边无关系

    return 0;
}
时间: 2024-11-05 22:53:32

OC-方法的声明和实现、匿名对象的相关文章

Objective-C( 三方法的声明与实现)

OC方法的声明与实现 oc方法的声明在@interface中 大括号外@end上面 oc方法的实现在@implementation 中@end上面 OC方法中,一个参数对应一个冒号 方法名: 例  fangFaMing:(冒号也是方法名的一部分) -返回值类型  方法名:参数名:(参数类型)参数 参数名:(参数类型)参数 ; 例  -(int)fangFaMing:sumWithNum1:(int)num1 andNum2:(int)num2; ??此处空格 易犯错误 1.只写声明,不写实现 2

接口作为成员变量——实现类和匿名内部类和匿名对象

声明定义的接口: 主体类: 其中接口作为成员变量,在这个主体类的成员方法中调用了这个接口的抽象方法,会自动找到这个这个接口实现类的覆盖重写的方法,避免多个实现类不同的覆盖重写,所以如果用实现类类实现的话都是直接传参该实现类就行: 其中,用实现类的时候,入参为接口的时候直接传入它的实现类,jvm会自动实现向上转型,继承和实现都有向上转型,原理可以看作一样:但是java是单继承.多实现的: 实现类只使用了一次,可以使用匿名内部类: 匿名内部类创建出来的对象也只调用了一个方法,可以使用匿名内部类的匿名

匿名对象与非匿名对象的区别

类封装完以后就可以通过使用new关键字和类的构造方法来创建对象,这种对象分为两种:匿名对象与非匿名对象.何为匿名对象,何为非匿名对象呢?举个例子:假如有如下类: package com.heima.vo; public class Student{                    private String name="lisi";                    private int age=12;                    public void pri

对于匿名对象,内部类这块的理解

一,匿名对象 1.什么是匿名对象以及匿名对象的使用环境 平常我们所实例化的对象可以重复使用,但是匿名对象,因为没有变量名所以只能使用一次,总的来说,匿名对象真实存在,但我们却无法明确的指出他来,所以他只能在创建之初使用一次. 使用环境:当我们想要通过一个对象仅仅调用一次某个方法时我们就可以使用匿名对象,局限性较大,用的不好就会造成代码量比不用还多的情况 2.格式(通过代码来看看使用正常对象和匿名对象之间的不同之处) package it.cast.demo10; public class Rai

匿名对象,内部类,包的声明与访问,访问修饰符,代码块,java的API equals toString方法整理

匿名对象  匿名对象是指创建对象时,只有创建对象的语句,却没有把对象地址值赋值给某个变量. public class Person{ public void eat(){ System.out.println(); } }创建一个普通对象person p=new person();创建一个匿名对象new person(); 匿名对象的特点: 1创建匿名对象直接使用,没有变量名. new Person().eat() //eat方法被一个没有名字的Person对象调用了. 2,匿名对象在没有指定其

OC 对象和匿名对象

OC 对象和匿名对象 对象和匿名对象的定义: 当new出一个对象时,如果用一个指针接收这个对象,那么这个指针通常被称为对象. 如果new出的对象,不用指针接收,那么这个对象就称为匿名对象. #import <Foundation/Foundation.h> #import "Iphone.h" #import "Person.h" int main(int argc, const char * argv[]) { //1.通过指针访问对象 Iphone

黑马程序员 oc对象的行为和内存分析,匿名对象

#import <Foundation/Foundation.h> @interface Car : NSObject { @public int speed; int wheels; } // oc方法必须是-开头 // oc方法中所有的数据类型必须得用括号括起来 // oc方法中的()就是用来扩住数据类型的 -(void)run; @end @implementation Car - (void)run { NSLog(@"%d个轮子和速度为%d的车子跑起来了!");

对象方法的声明和实现

1.对象方法的声明 格式: 1 -(int)addNum1: (int)num1 andNum2: (int)num2; 2.特征 a:对象方法以-开头如 -(int)xx; b:对象方法只能由对象来调用 c:对象方法中可以访问当前对象的成员变量 d:调用格式 [对象名 对象方法名]; 3.示例 1 //声明没有返回值的对象方法 2 -(void)run; 3 //声明有返回值的对象方法 4 -(int)run; 5 //声明有返回值有参数的对象方法 6 -(int)run: (int)num;

JAVA笔记2__类/封闭性/构造方法/方法的重载/匿名对象

public class Main { public static void main(String[] args) { Chicken c1 = new Chicken(); Chicken c2 = null; c1.eat(); System.out.println(c1.age); c2 = c1; c2.eat(); } } class Chicken{ int color; char sex; int age; void eat(){ System.out.println("chik

匿名对象:oc

匿名对象就是没有名字的对象: [Car new]->speed = 300; [[Car new] run]; 上面两句的结果是0,因为[Car new]每次都会重新申请内存: OC字符串也是一个对象: