类方法和实例方法的调用 super this 访问控制符

一、类方法和实例方法的调用

先看一道选择题:
下列哪种说法是正确的( )
  A. 实例方法可直接调用超类的实例方法
  B. 实例方法可直接调用超类的类方法
  C. 实例方法可直接调用其他类的实例方法
  D. 实例方法可直接调用本类的类方法

先复习一下,类方法(static方法)
在类方法中,不能引用实例变量
不能使用super、this关键字
不能调用类方法

不考虑访问修饰符的话,
实例方法可以通过super.方法名,对象名.方法名调用父类的实例方法
实例方法可以通过类名.方法名,super.方法名调用父类的静态方法
实例方法通过this.方法名调用本类的其他方法
本类的静态方法还可以用类名.方法名调用。
在本题中,如果是私有的,ABC都不能访问   所以选D

二、java中super关键字
1.在子类构造器中显示调用父类构造器(super必须出现在子类构造器的第一行)
2..可以在子类中充当临时父类对象,super.方法名调用父类的方法

三、java中this关键字
1.代表当前对象,指向成员变量和成员方法
2.指向某个构造方法,通过this调用其他构造方法。
this();//代表无参构造方法

四、访问控制符

访问级别       访问控制修饰符        同类       同包       子类      不同的包
  公开级别:       public                y          y          y          y
  受保护           protected             y          y          y
   默认           没有访问控制符      y          y
   私有             private                  y

原文地址:https://www.cnblogs.com/yxj808/p/11964770.html

时间: 2024-08-04 01:23:46

类方法和实例方法的调用 super this 访问控制符的相关文章

类方法和实例方法区别

1.类方法和实例方法 类方法:不需要声明一个对象(实例),就可以直接引用.通常是有返回值的(否则类方法就无意义了,因为没有对象或者相应的成员变量的值可以设置) 类方法的特点: 1.声明和实现的时候,以(+)开头 2.类方法属于类的本身,只能通过类名调用 3.类方法不能直接访问成员变量 4.类方法不能直接调用对象方法(可以间接调用)    // 间接调用:1> 把对象当做形参传入    2> 在类方法中创建一个对象 例如:+ (instancetype)personWithName:(char

Object-c 类方法和实例方法的区别和联系

在我学习oc的时候,总是搞不懂什么时候用类方法,什么时候使用实例方法.于是做了如下总结. -表示实例方法: 用实例方法访问 +表示类方法:类方法的对象时类不是实例.多用于创建对象或工具类 什么时候使用类方法,要创建一个实例时候获取一个共享实例,或者获取关于类的一些共有信息. 1.类方法是属于整个类,而不属于某个对象. 2.类方法只能访问类成员变量,不能访问实例变量,而实例方法可以访问类成员变量和实例变量. 3.类方法的调用可以通过类名.类方法和对象.类方法,而实例方法只能通过对象.实例方法访问.

1.4为类添加功能 :类方法和实例方法

添加通过方法为类添加功能                                                              ios7cook目录 方法是类的建筑块.例如,一个名为Person类可以有,如散步逻辑功能,呼吸,吃饭,喝水.这些功能通常是封装的方法. 一种方法可以带参数,当调用方法,或者仅显示该方法时,调用者传递的变量.例如,在一个简单的世界里,我们有一个Person类的walk方法.如果你愿意,你可以添加一个参数或参数的方法,并将其命名为CGFloat类型的w

类方法与实例方法的区别

1. +与- 2. 实例方法需要实例一个对象,通过这个对象来调用相应的实例方法:类方法直接通过类名调用 3. 类方法中可以直接调用类方法,不可以直接调用实例化方法,需要创建一个对象,通过对象调用相应地方法 实例化方法可以直接调用实例方法,也可以调用类方法 4. 类方法不可以使用实例变量,可以使用self,因为self不是实例变量 5. 在类方法中self相当于class,在实例化方法中self和super一样,标注对象首地址 6. 类方法的对象不需要手动释放,会被放到自动释放池中 and so

objc中的类方法和实例方法有什么本质区别和联系

类方法: 类方法是属于类对象的 类方法只能通过类对象调用 类方法中的self是类对象 类方法可以调用其他的类方法 类方法中不能访问成员变量 类方法中不能直接调用对象方法 类方法是存储在元类对象的方法缓存中 实例方法: 实例方法是属于实例对象的 实例方法只能通过实例对象调用 实例方法中的self是实例对象 实例方法中可以访问成员变量 实例方法中直接调用实例方法 实例方法中可以调用类方法(通过类名) 实例方法是存放在类对象的方法缓存中

python面向对象中类对象、实例对象、类变量、实例变量、类方法、实例方法、静态方法

1. 类对象和实例对象 Python中一切皆对象,Python类本身也是一种对象,类定义完成后,会在当前作用域中定义一个以类名为名字的命名空间.类对象具有以下两种操作: 可以通过"类名()"的方式实例化一个对象. 可以通过"类名.类属性"的方式来访问一个类属性. 如果说类时一种概念性的定义,是一种类别,那么实例对象就是对这一类别的具体化.实例化,即实例化对象是类对象实例化之后的产物. class Person:# 声明一个类对象 pass p1 = Person()

python中类对象、实例对象、类属性、实例属性、类方法、实例方法、静态方法

类对象.类属性与实例对象.实例属性的区别 在Python中一切皆是对象,类是一个特殊的对象即类对象,描述类的属性称为类属性.类属性在内存中只有一份,在__init__外部定义. 通过类创建的对象称为实例对象,描述实例对象的属性称为实例属性.实例属性在各自对象的内存中都保存一份,在__init__方法内部定义. 实例方法.类方法.静态方法的区别 这三种方法都是保存在类的内存中,调用者不同. 实例方法由对象调用,至少一个self参数,self代表对象的引用. 类方法有类调用,至少一个cls参数,并且

IOS—静态方法(类方法)和实例方法

1.实例方法/动态方法 a).标识符:- b).调用方式:(实例对象    函数) c).实例方法在堆栈上. 2.静态方法/类方法 a).标识符:+ b).调用方式:(类    函数) c).静态方法在堆上分配内存. 3.静态方法和实例方法的区分 a).静态方法常驻内存,实例方法不是,所以静态方法效率高但占内存.事实上,方法都是一样的,在加载时机和占用内存上,静态方法和实例方法是一样的,在类型第一次被使用时加载.调用的速度基本上没有差别. b).静态方法在堆上分配内存,实例方法在堆栈上.事实上所

python的静态成员变量、实例成员变量、静态方法、类方法、实例方法

静态成员变量(类变量)和普通成员变量(实例变量) 静态成员变量只能通过类名.变量名获得,实例成员变量,通过该实例引用.变量名获得. 在实例对静态成员变量赋值时,实例 python是动态类型的语言,没有特别的标志区分静态成员变量和普通成员变量 如果你使用类名.成员变量    那这个成员变量现在就是静态成员变量(类变量) 如果你使用实例.成员变量    那这个成员变量现在就是普通成员变量(实例变量) 静态方法.类方法.实例方法      实例方法,类中的普通方法,由实例调用 类方法,被@classm