精华内容
下载资源
问答
  • 对象 调用方法

    千次阅读 2018-09-12 16:52:26
    class Cat: # 定义 对象必须有对应的 类名使用大驼峰命名法 # 定义对象方法 对象方法需要在对应的中定义 def eat(self): # 定义对象方法和定义函数类似,只...调用对象方法 引用对象的变量名.方法名() ca...

    class Cat: # 定义类 对象必须有对应的类 类名使用大驼峰命名法
    # 定义对象方法 对象方法需要在对应的类中定义
    def eat(self): # 定义对象方法和定义函数类似,只不过对象方法的第一个形参必须是self
    print(“吃东西”)

    创建对象
    cat1 = Cat()
    调用对象方法 引用对象的变量名.方法名()
    cat1.eat() # 定义对象方法时必须设置第一个形参为self,但是调用时不要设置self对应的实参

    class Cat: # 定义类
    pass

    创建对象
    cat1 = Cat()
    定义属性 首次赋值就会被定义
    cat1.type = “猫”
    print(cat1.type)
    cat1.type = “卡通猫” # 再次赋值,只是改变记录的数据
    print(cat1.type)

    class Cat: # 定义类
    # 定义方法
    def eat(self):
    print(“吃东西”)

    同一个类可以创建多个对象
    创建对象
    tom = Cat()
    tom.eat() # 同一个类的不同对象都可以调用对象方法(可以有相同的行为)
    tom.type = “卡通猫” # 同一个类的不同对象中的属性记录的数据可能是不同的(每个个体对应的数据不同)
    print(tom.type)

    创建另一个对象
    jiafei = Cat()
    jiafei.eat()
    jiafei.type = “家猫”
    print(jiafei.type)

    class Cat:
    def introduce(self): # self 指的是 调用该方法的对象
    “”“自我介绍”“”
    print(“我是 %s” % self.type)
    self.age = 10 # self也可以作为对象来定义对象属性

    创建对象1
    tom = Cat()
    tom.type = “卡通猫”
    tom.introduce() # 解释器 会自动将调用方法的对象作为方法的第一个实参进行传递
    print(tom.age)

    创建对象2
    jiafei = Cat()
    jiafei.type = “家猫”
    jiafei.introduce()
    print(jiafei.age)

    class Cat:
    def init(self, type): # init可以设置自定义参数,用于实现属性的不同初始值
    # 初始化方法
    self.type = type

    def introduce(self):
        """自我介绍"""
        print("我是 %s" % self.type)
    

    创建对象1
    tom = Cat(“卡通猫”) # init自定义形参对应的实参在创建对象的()中传递
    调用对象方法
    tom.introduce()
    print(tom.type)

    jiafei = Cat(“家猫”)
    print(jiafei.type)

    class Cat:
    def init(self, name, age):
    self.name = name
    self.age = age

    def __str__(self):  # 实现该方法后,返回什么内容,打印对象时就显示对应的内容
        return "我的名字 %s, 年龄 %d" % (self.name, self.age)
    

    tom = Cat(“汤姆”, 60)
    print(tom)

    展开全文
  • 打印类对象自动调用toString方法

    千次阅读 2017-05-19 13:46:29
    在讲Hashtable时老师说过打印一个类对象会自动调用toString方法,就直接记下来了,今天又发现老师在打印Date类对象时也说会自动调用toString方法,所以就查看了一下帮助文档和源码,结果如下:  Object中有...

           在讲Hashtable时老师说过打印一个类对象会自动调用toString方法,就直接记下来了,今天又发现老师在打印Date类对象时也说会自动调用toString方法,所以就查看了一下帮助文档和源码,结果如下:

                Object类中有toString方法

    摘抄:

    	public String toString()
    	返回该对象的字符串表示。通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一	个简明但易于读懂的信息表达式。建议所有子类都重写此方法。

    如Date类中覆盖的toString方法

    	public String toString()
    	把此 Date 对象转换为以下形式的 String
     	dow mon dd hh:mm:ss zzz yyyy
    	覆盖:
    	Object 中的 toString
    那么System.out.println()怎么调用了toString呢?

    Systeme类中的out字段是标准输出流,out是static PrintStream类型的,PrintStream类有println函数,其重载形式有参数是Object的:

    public void println(Object x)
    打印 Object,然后终止该行。此方法首先调用 String.valueOf(x) 获取打印对象的字符串值,然后的行为如同先调用 print(String) 再调用 println() 一样。

    String类的valueOf函数
    public static String valueOf(Object obj)
    返回 Object 参数的字符串表示形式。

    查看valueOf源码如下:

     public static String valueOf(Object obj) {
    return (obj == null) ? "null" : obj.toString();
        }

    所以说在打印一个类对象时会自动调用toString方法,如果是自己写的类要记得覆盖了这个方法。



    展开全文
  • Python如何使用类对象调用实例方法

    千次阅读 2020-05-06 15:29:40
    在前面的学习中,我总结了...我们知道,实例对象可以调用这三种方法,而对象只能调用类方法和实例方法,既然如此为何我们还要研究类对象调用实例方法呢?我们先看一个例子: class Dog: def action(self): ...

    在前面的学习中,我总结了python中的三种方法类型的,分别是实例方法、类方法和实例方法,可以参考文章从例子中来到例子中去-Python中的实例属性、类属性与实例方法、类方法、静态方法

    我们知道,实例对象可以调用这三种方法,而类对象只能调用类方法和实例方法,既然如此为何我们还要研究类对象调用实例方法呢?我们先看一个例子:

    class Dog:
        def action(self):
            print("吃骨头")
    #通过类名直接调用实例方法
    Dog.action()
    """
    上述代码执行的结果:
    TypeError: action() missing 1 required positional argument: 'self'
    """
    

    显然,程序会报错,但是我们观察一下报错的信息提示,即:调用的方法中没有给self传参数,slef就是我们对象的引用。
    这个提示告诉了我们,之前在使用实例对象调用实例方法的时候,其实是python自动给self参数进行了传值,而使用Dog.action()的方式,我们只有类对象的引用,缺少实例对象的引用,python不能够实现自动的传递了。
    因此,我们可以根据提示传递一个实例对象的引用,进行手动操作,我们修改一下代码,来验证这样的思想是否正确:

    class Dog:
        def action(self):
            print("吃骨头")
            
    dog = Dog()
    Dog.action(dog)
    """
    上述代码执行的结果:
    吃骨头
    """
    

    从结果可以看到python是允许类名直接调用实例方法的。

    总结

    通常情况下,我们都是使用类的实例对象调用类中的实例方法的,如果想使用类名进行调用,需要手动给该实例方法传递实例对象的引用。

    展开全文
  • 其实在OC的对象方法(减号方法)和类方法(加号方法)并不是相互独立的,它们也可以发生千丝万缕的关系,今天我们来研究下它们两者相互调用的问题。该例子还是以People为基础。 (一)对象方法调用类方法: (1)...

          其实在OC的对象方法(减号方法)和类方法(加号方法)并不是相互独立的,它们也可以发生千丝万缕的关系,今天我们来研究下它们两者相互调用的问题。该例子还是以People类为基础。

    (一)对象方法调用类方法:

    (1)先在People.h中分别声明两个方法:

    -(void)show;
    
    +(void)showw2;
    
    


    (2)然后在People.m中分别实现两个方法,并在对象方法中调用类方法,调用方式也是用  “类名 方法名”进行。

    -(void)show{
    
        NSLog(@"我是一个对象方法,我被调用了!");
        [People show2];//调用类方法
    }
    
    +(void)show2{
    
        NSLog(@"我是一个类方法,我被调用了!");
    //    [[People alloc] show];
    }
    

    (3)最后在main.m中调用对象方法:

    People *people = [[People alloc] init];//注意没有在main.m中直接调用
            [people show ];
            

    (4)随后的输出结果如下,先输出对象方法中的内容,然后输出类方法中的内容,结果符合预期。类方法成功在对象方法中被调用。



    (二)类方法调用对象方法

    (1)先在People.h中分别声明两个方法:

    -(void)show;
    
    +(void)showw2;
    
    

    (2)在People.m文件中实现两个方法,并在类方法中调用对象方法,注意是如何调用的。[People alloc]相当于实例化了一个对象,使用该对象调用show对象方法;

    -(void)show{
    
        NSLog(@"我是一个对象方法,我被调用了!");
    }
    
    +(void)show2{
    
        NSLog(@"我是一个类方法,我被调用了!");
        [[People alloc] show];
    }
    

    (3)最后在mian.m中调用类方法show2.

    [People show2];

    (4)输出结果如下,先输出类方法中的内容,再输出对象方法中的内容,符合我们的预期:


             总之,减号方法和加号方法的相互调用使我们的代码更为灵活,编程更为方便。


    github主页:https://github.com/chenyufeng1991  。欢迎大家访问!

    展开全文
  • 父类对象可以调用子类中的方法吗?

    万次阅读 多人点赞 2017-03-30 11:03:38
    2.我们new一个子类对象赋给父类(父类的引用指向了子类的对象,也就是说java里说的多态,),父类对象可以调用子类的方法,但如果子类重写了父类的某个方法,则此时父类调用的是子类方法的内容。
  • 通常情况子类覆写父类方法 如果是构造函数,直接用super() 如果是普通方法用super.method() 但是如果创建了子类实例,比如A中覆写了Object的equals()方法 ...a怎么调用Object的equals()方法 A没有显示继承其他
  • 作为一个iOS程序员初学者,会搞不清楚对象方法类方法的区别
  • java中,静态方法可以直接被调用,非静态方法直接被对象调用,如下。 public class Person { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub ...
  • JAVA之间方法调用

    万次阅读 多人点赞 2018-11-02 23:39:15
    JAVA类方法的调用一、静态方法调用其他方法:1. 静态方法调用非静态方法2.静态方法调用静态方法二、非静态方法调用其他方法1.非静态方法在同一内...无论是否在同一内,均需要通过对象调用 //Test package mai...
  • 定义 声明对象 创建对象 实例化对象 属性 对象调用属性或者方法 举例,下面定义了一个并声明属性,写了一个方法: class Person { public String name; //声明属性 public int age; //声明属性 ...
  • 怎么用一个对象调用另一个中对象的方法 比如一个A ,一个B,B里面有个方法show(),在main中A a=new A();B b=new B();在A中没有调用B方法的情况下,我想通过a调用B中的show()方法,该怎么实现。初学者,求大神给...
  • java的方法方法体里面只能对象或者类调用方法是吧,不能再写方法了 如果可以写,可以有大括号包含的方法体吗
  • C++ 对象,及其调用方法

    万次阅读 多人点赞 2016-07-30 18:35:12
    声明:本人是一名iOS开发者,接触C++已经很久了,之前只能是调用别人写好的方法,但不知道怎么去声明及其实现这些方法,现在是要好好学习C++,把每天学的东西及其心的一一记录在blog里面,互相学习,有些观点或者...
  • 1.Java中父类能调用子类的方法吗?...(4)在父类中直接new子类相关对象或者通过构造函数传入子类对象,然后调用方法 (5)将子类相关方法声明为static,在父类中调用子类的static方法 1.2 四种实现方式...
  • C++类方法调用

    千次阅读 2019-10-29 09:23:09
    在C++内部方法调用时,一般都是先去定义一个的变量,实例化之后再通过类对象调用类内部的函数。在项目中发现另一种比较方便的方法,不需要定义类对象,话不多说直接上代码。 实例代码如下: #include <...
  • class A{ public static void main(String asrg[]) { A hh=new A(); float a=10,b=80; float x=22,y=222; float z=hh.max(x,y); float e=
  • 对象方法类方法

    千次阅读 2018-06-10 09:50:45
    可以对象名 方法名调用类方法不可以调用实例方法,但是可以创建对象来访问实例方法类方法不可以使用实例变量,但可以使用self对象方法(-)表示对象方法对象方法只能由实例变量来调用对象方法可以访问当前对象的...
  • ![图片说明](https://img-ask.csdn.net/upload/201812/14/1544788405_744691.png)![图片说明]... 怎么在定义的函数内调用类中的函数,在不用静态成员的情况下
  • 因为非 static 方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方法调用,而 static 方法调用时不需要创建对象可以直接调用。 也就是说,当一个 static 方法调用时,可能还没有创建任何...
  • java 知识 下列说法错误的有( ) A. 在类方法中可用this来调用类方法 B....c是明显的错误,类方法可以调用外部其他方法。 至于D选项中,也是有问题的,只要实力化对象,也是可以调用
  • 通常情况下在父类中不能直接调用子类中的方法(重写的除外),但是在某些特殊的情况下,需要根据一个父类的对象调用子类的方法,原理就使用java的反射原理。例如:Person,有一个name属性 public class Person { ...
  • 编写A,该创建的对象包含一个方法f输出英文字母表,再编写一个A的子类B,要求必须继承A方法f(不允许重写),子类创建的对象不仅可以调用方法f输出英文字线表,而且调用子类新增的方法g输出希腊字母表(α...
  • 在面向对象编程的时候经常会遇到不同实例之间的跨类调用,包括跨值传递以及跨类调用方法,实际运用是有很多方法可以解决这一问题,今天主要总结2个常用且通用的方法。 1.通过全局变量实现跨类调用 (1)优缺点...
  • 父类 实例 = new 子类() ... 实例可以调用父类中特有的方法(未在子类中覆盖的方法) 实例可以调用子类中覆盖父类的方法 但不可以调用子类中特有的方法(即父类中没有的方法) ...
  • package zimu; public class A { public void f() { for (int i = 97; i <123; i++) { System.out.print((char)i); } ...
  • JSON对象调用方法

    千次阅读 2017-12-19 15:32:22
     在JSON中,有两种结构:对象和数组。  1. 一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间运用 “,”(逗号)分隔。 名称用引号括起来;值...
  • java 对象调用方法的过程

    千次阅读 2018-10-01 17:57:59
    1、编译器通过对象的声明类型和和方法名,在此类型和其超类中寻找权限为public的方法。 2、编译器根据方法调用时...相反若不是上述声明则编译器根据对象声明的类型,动态的去寻找要调用方法,这称之为动态绑定。...
  • 调用代理对象的从Object继承的hashCode,equals,或toString这个3个方法时,代理对象调用请求转发给InvorcationHandler对象,对于其他方法,则不转发请求。所以geyClass(),返回的是代理对象本身的getClass(),值为:...
  • 对于一个A,表达式
  • Java中调用对象方法的执行过程

    千次阅读 2017-09-25 20:09:08
    假设调用x.f(param),且隐式参数x声明为C对象。需要注意的是:有可能存在多个名字为f,但是参数类型不一样的方法。例如,可能存在f(int)和f(String)。编译器将会一一列举所有C和其超类中访问属性为public且名...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,170,045
精华内容 1,668,018
关键字:

对象可以调用类方法吗