this和super用法】的更多相关文章

1. this能分清混淆,形参名与当前对象的某个成员有相同的名字,需要明确使用this关键字来指明你要使用某个成员,使用方法是“this.成员名”. 一般以this.形参数名=形参名,代表送进来赋值的形参数给赋给这个类作为数值 2. 一个类的多种方法之间可以,用“this.方法名”来引用当前类的某个方法,this不用必须写. public class DemoThis{ private String name; private int age; DemoThis(String name,int…
参考网上资料和自行理解总结java中this和super中各自用法及其差异 <一>. this的用法 构造方法是创建java对象的重要途径,通过new关键字调用构造器时,构造器返回该类的对象,但是这个对手并不是完全由构造器负责创建. 创建一个对象分为如下四步: a. 分配对象空间,并将对象成员变量初始化为0或者null b. 执行属性值的显式初始化 c. 执行构造方法 d. 返回对象的地址给相关变量 this的本质就是“创建好的的对象的地址”, 由于在构造方法调用前,对象已经创建. 因此,在构…
Python中对象方法的定义很怪异,第一个参数一般都命名为self(相当于其它语言的this,比如:C#),用于传递对象本身,而在调用的时候则不 必显式传递,系统会自动传递. 今天我们介绍的主角是super(), 在类的继承里面super()非常常用, 它解决了子类调用父类方法的一些问题, 父类多次被调用时只执行一次, 优化了执行逻辑,下面我们就来详细看一下. 举一个例子: class Foo: def bar(self, message): print(message) >>> Foo…
在学习this和super关键字时,发现它们有诸多相同点,同时这两个关键字非常常用,现对它们做以下的总结. 一.概况 This: This指代当前对象,this()指代当前对象的其他构造函数 Super: Super指代父类对象,super()指代父类的构造函数: 二.具体用法,对比super和this理解 1.this用作指代当前对象,super指代父类对象 A.this.成员变量,可调用当前对象的成员变量,一般是在当前类的某个方法的形参和当前的对象成员变量同名的时候用到 super.成员变量…
 这节我们主要是区分this 和 super这两个关键字的用法 起初我根本弄不清楚this 和 super这两个关键字的用法,也不明白在代码实例中为什么既用this又用super,下面就是原因: 1.在Java中,this通常指当前对象,super则指父类的. *当你想要引用当前对象的某种东西,比如当前对象的某个方法,或当前对象的某个成员,你便可以利用this来实现这个目的,当然,this的另一个用途是调用当前对象的另一个构造函数. *如果你想引用父类的某种东西,则非super莫属.由于this…
    通过用static来定义方法或成员,为我们编程提供了某种便利,从某种程度上可以说它类似于C语言中的全局函数和全局变量.(理解为加了static的就是全局变量)但是,并不是说有了这种便利,你便可以随处使用,如果那样的话,你便需要认真考虑一下自己是否在用面向对象的思想编程,自己的程序是否是面向对象的.  好了,现在开始讨论this&super这两个关键字的意义和用法.  在Java中,this通常指当前对象,super则指父类的(super能继承父类的方法).当你想要引用当前对象的某种东西,…
在Python类的方法(method)中,要调用父类的某个方法,在Python 2.2以前,通常的写法如代码段1: 代码段1: 代码如下: class A: def __init__(self): print "enter A" print "leave A" class B(A): def __init__(self): print "enter B" A.__init__(self) print "leave B" >…
一.问题的发现与提出 在Python类的方法(method)中,要调用父类的某个方法,在python 2.2以前,通常的写法如代码段1: 代码段1: class A:  def __init__(self):   print "enter A"   print "leave A" class B(A):  def __init__(self):   print "enter B"   A.__init__(self)   print "…
这几天看到类在继承时会用到this和super,这里就做了一点总结,与各位共同交流,有错误请各位指正~ this this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针. this的用法在java中大体可以分为3种: 1.普通的直接引用 这种就不用讲了,this相当于是指向当前对象本身. 2.形参与成员名字重名,用this来区分: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 class Person {     private in…
1. 引言 最近在研究django rest_framework的源码,老是遇到super,搞得一团蒙,多番查看各路大神博客,总算明白了一点,今天做一点总结. 2. 为什么要用super 1)让代码维护更加简单 Python是一门面向对象的语言,定义类时经常用到继承的概念,既然用到继承就少不得要在子类中引用父类的属性,我们可以通过“父类名.属性名”的方式来调用,代码如下: class A: def fun(self): print('A.fun') class B(A): def fun(sel…
路漫漫其修远兮,吾将上下而求索.——屈原<离骚> 昨天写this用法总结的时候,突然产生了一个问题,请教别人之后,有了自己的一点认识.还是把它写下来,为大家更好的认识提供一点思路. 1)有人写了个很好的初始化属性的构造函数,而你仅仅想要在其中添加另一些自己新建属性的初始化,这样在一个构造函数中调用另外一个构造函数,可以避免重复的代码量,减少工作量: 2)在一个构造函数中调用另外一个构造函数的时候应该用的是同一块内存空间,在默认的构造函数中先初始化变量,调用另一个的时候覆写已经初始化的变量的值:…
Person类: public class Person { String _name; int _age; public Person(String name,int age) { _name= name; _age=age; } } Student类: public class Student extends Person { String _school; public Student(String name,int age,String school) { super(name,age)…
Python中对象方法的定义很怪异,第一个参数一般都命名为self(相当于其它语言的this),用于传递对象本身,而在调用的时候则不必显式传递,系统会自动传递. 举一个很常见的例子: >>> class Foo:def bar(self, message):print(message) >>> Foo().bar("Hello, World.")Hello, World. 当存在继承关系的时候,有时候需要在子类中调用父类的方法,此时最简单的方法是把对…
注释:以下都是在python2.7版本验证的 总括:1.python解决二义性问题,经历了深度优先算法.广度优先算法.拓扑排序算法,目前python的版本都是使用拓扑算法(C3)    2.严谨super(A,self).__init__()和A.__init__(self)这两种调用类方法的方法混用 3.A.__init__(self)是经典类的调用方法,使用深度优先算法,不论是否有类继承object:也就是新式类也可以使用这种调用方法 4.super(A,self).__init__()是新…
普通继承 class FooParent(object): def __init__(self): self.parent = 'I\'m the parent.' print 'Parent' def bar(self, message): print message, 'from Parent' class FooChild(FooParent): def __init__(self): FooParent.__init__(self) print 'Child' def bar(self,…
this: 1.使用在类中,可以用来修饰属性.方法.构造器 2.表示当前对象或者是当前正在创建的对象 3.当形参与成员变量重名时,如果在方法内部需要使用成员变量,必须添加 this 来表明该变量时类成员 public void setName(String name) { this.name = name; } 4.在任意方法内,如果使用当前类的成员变量或者成员方法可以在其前面添加 this ,增强程序的阅读性 5.在构造器中使用 “ this(形参列表) ” 显示的调用本类中重载的其他的构造器…
问题的发现与提出 在Python类的方法(method)中,要调用父类的某个方法,在Python 2.2以前,通常的写法如下: class A: def __init__(self): print "enter A" print "leave A" class B(A): def __init__(self): print "enter B" A.__init__(self) print "leave B" >>&…
1:static{}表示静态代码块:在java虚拟机(jvm)加载该类时,会执行这个代码块一次,静态代码块在new()对象之前就加载了 2: this()与surper()区别:surper()是从子类中调用父类的构造方法,this()在同一类调用其他方法 this:代表当前对象名,但是如果函数的形参与类中的成员的数据同名时,this指的是成员变量名 surper:它引用当前对象的直接父类中的成员(用来访问父类中成员数据或者函数) 例:surper(name),而父类中有方法的参数也是name那…
super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序(MRO).重复调用(钻石继承)等种种问题.总之前人留下的经验就是:保持一致性.要不全部用类名调用父类,要不就全部用 super,不要一半一半. 普通继承 『代码』 [python]view plaincopyprint? class FooParent(object): def __init__(self): self.parent = 'I\'m the parent.'…
一.this用法 概念:this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的指针. this的用法在java中大致可以分为三种: 1. 普通对象的直接引用:this相当于指向当前对象本身. 2. 形参与成员名字重名时,用this来区分. class Person { private int age = 10; public Person(){ System.out.println("初始化年龄:"+age); } public int GetAge(int age){ t…
package com.ssm.java; /** * Super * usage1:super. 直接去调用父类的方法和属性. * usage2:放在构造器中的第一位,代表引用父类的构造器. */ class SuperSub { String name; void value() { name = "China"; } SuperSub(){ System.out.println("父类,无参构造方法"); } SuperSub(String name){ Sy…
Python中super的用法[转载] 转载dxk_093812 最后发布于2019-02-17 20:12:18 阅读数 1143  收藏 展开 转载自 Python面向对象中super用法与MRO机制 1. 引言 最近在研究django rest_framework的源码,老是遇到super,搞得一团蒙,多番查看各路大神博客,总算明白了一点,今天做一点总结. 2. 为什么要用super 1)让代码维护更加简单 Python是一门面向对象的语言,定义类时经常用到继承的概念,既然用到继承就少不得…
super 用法 1.调用父类变量2.调用父类方法3.子类构造方法第一句 this 用法 super关键字用来访问父类内容, this 关键字用来访问本类中的内容, 有三种用法 1.在本类的成员方法中,访问本类的成员变量 2.在本类的成员方法中,访问本类中的成员方法 3.在本类的构造方法中,访问本类的另一个构造方法this(123) 必须位于构造方法内第一句,唯一一句,故不能与super共用 例: public This(){ this(10); // 3.必须位于构造方法内第一句,唯一一句,故…
this 用法1:代表当前对象本身 用法2:方法形参和类成员变量重名,用this进行区别 class demo{ private int age = 10; public int getAge(int age){ this.age = age; return this.age; } } 用法3:引用构造函数 这个和 super 放在一起讲,见下面. super 用法1:引用父类成员变量 可用 super.xxx 来引用父类的成员 用法2:子类调用父类方法或变量 调用变量前需要先引用 父类方法:…
这段时间一直在学Java,看了辣么多书以及博客,心痒也是着写写自己的学习心得. 这也算是新手篇:咬文嚼字Java中的关键字. 以关键字为第一篇博文也是考虑再三:1.本人基础也是薄弱 2.集跬步至千里 3.看了一些博文也是有些瑕疵.不多说废话正片开始: super的用法: 1.调用父类的构造器: class MyDate extends Date { static public MyDate valueOf() { return new MyDate(); } static public MyDa…
# -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' #当使用多重继承层次结构时,再使用super的时候是非常危险的,主要是因为类的初始化,基类不在__init__中被隐式调用 #1滥用super和传统调用 #来自james knight(http://funm.net/super-harmful)示例中,类C使用__init__方法调用其基类,这样类B被调用2次 class A(object): def __init…
http://zhangjunhd.blog.51cto.com/113473/20531 总结关键字this与super用法. author: ZJ 07-3-12 Blog: [url]http://zhangjunhd.blog.51cto.com/[/url] 1.什么是super?什么是this? super关键字表示超(父)类的意思.this变量代表对象本身. 2.使用super&this调用成员变量和方法 可以使用super访问父类被子类隐藏的变量或覆盖的方法.当前类如果是从超类继…
ruby语法-super用法 本文主要介绍ruby中super方法的使用.super方法参数传递.method执行顺序. 下面主要通过实例来说明super方法的使用: 示例1: #!/usr/bin/env ruby class A def a p 'a 1' end def a p 'a 2' super p 'a 2 END' end end b = A.new b.a 示例1输出: ➜ tmp ./test.rb "a 2" ./test.rb:9:in `a': super:…
1,object 类 object class A: ''' 这是一个类 ''' pass a = A() print(A.__dict__) # 双下方法 魔术方法 创建一个空对象 调用init方法 —— 调用了么? 调用了 将初始化之后的对象返回调用处,{'__module__': '__main__', '__doc__': '\n    这是一个类\n    ', '__dict__': <attribute '__dict__' of 'A' objects>, '__weakref…
this在构造方法间的使用, public class Person { private String name; private int age; public Person() { //this()是调用其他的构造方法 //this()必须写在构造方法第一行 this("张三", 20); } public Person(String name, int age) { this.name = name; this.age = age; } } public class Test {…