精华内容
下载资源
问答
  • 主要介绍了java中this与super关键字使用方法的相关资料,希望通过本文能帮助到大家,让大家彻底理解应用java中this与super,需要的朋友可以参考下
  • Java中this与super关键字的对比使用.pdf
  • this与super关键字

    2020-01-06 11:11:18
    this与super关键字 一、描述 this关键字代表当前对象。 super可以理解为是指向自己超(父)类对象的一个指针,而这个超类指的是离自己最近的一个父类。 二、对比 (1)从本质上讲,this 是一个指向本对象的指针, ...

    this与super关键字

    一、描述
    this关键字代表当前对象。
    super可以理解为是指向自己超(父)类对象的一个指针,而这个超类指的是离自己最近的一个父类。

    二、对比
    (1)从本质上讲,this 是一个指向本对象的指针, 然而 super 是一个 Java 关键字。

    (2)this() 和 super() 都指的是对象,所以,均不可以在 static 环境中使用。包括:static 变量,static 方法,static 语句块。

    (3)this 和 super 不能同时出现在一个构造函数里面,因为this必然会调用其它的构造函数,其它的构造函数必然也会有 super 语句的存在,所以在同一个构造函数里面有相同的语句,就失去了语句的意义,编译器也不会通过。

    (4)super() 和 this() 均需放在构造方法内第一行。

    (5)super() 和 this() 类似,区别是,super() 从子类中调用父类的构造方法,this() 在同一类内调用其它方法,尽管可以用this调用一个构造器,但却不能调用两个。

    (6)调用super()必须写在子类构造方法的第一行,否则编译不通过。每个子类构造方法的第一条语句,都是隐含地调用 super(),如果父类没有这种形式的构造函数,那么在编译的时候就会报错。

    (7)this(参数):调用本类中另一种形成的构造函数(应该为构造函数中的第一条语句),super(参数):调用基类中的某一个构造函数(应该为构造函数中的第一条语句)

    (8)普通的直接引用:与this类似,super相当于是指向当前对象的父类,这样就可以用super.xxx来引用父类的成员。

    (9)引用构造函数:调用父类中的某一个构造函数(应该为构造函数中的第一条语句)。默认在构造函数第一条语句是“super();”,无论写与否。

    (10)this.属性 操作当前对象的属性,this.方法 调用当前对象的方法 ,子类中的成员变量或方法与父类中的成员变量或方法名同名时,表示调用父类的成员。

    展开全文
  • This与Super关键字

    2019-05-05 14:06:04
    开发工具关键技术:MyEclipse 10;Java基础语法 撰写时间:2019-05-04 This关键字this就是其所在函数所属对象的引用,就是...使用关键字this使用this后可以理解为是这个对象的name,也就是说当成员变量和...

    开发工具与关键技术:MyEclipse 10;Java基础语法

    撰写时间:2019-05-04

    This关键字:this就是其所在函数所属对象的引用,就是代表本类对象的引用,当在函数内需要用到调用该函数的对象时,就用this例程。

    在没使用关键字this之前,这种情况叫做局部变量和成员变量同名了。

    使用了关键字this,使用this后可以理解为是这个对象的name,也就是说当成员变量和局部变量重名时就可以用this来区分。This代表的是当前的对象,简单说哪个对象调用了this所在的函数,this就代表哪个对象。

    一个类(除静态类)当中所有的成员,想要被执行都必须要有对象调用,这时就要用到了this关键字。This也可以用于在构造函数中调用其他构造函数,但要注意的是只能定义在构造函数的第一行。因为初始化动作要先执行。

    Super关键字:在继承的时候我们就会用super这个东西,类指向自己,而super指向父类,表示父类对象默认的引用,是子类所属的父类中的内存空间引用。有的时候重写了父类的方法,又想调用父类的方法,那么这个时候就可以用到super这关键字。而在静态方法中是不能使用super关键字,这方面还是要注意。

    Super关键字中调用父类的构造方法,在调用时super必须要放在第一句,Java 在执行子类的构造方法前会先调用父类无参的构造方法,其目的是为了对继承自父类的成员做初始化操作。如果父类中没有空参数的构造函数,那么子类的构造函数内,必须通过 super 语句指定要访问的父类中的构造函数。

    public class Bird {

       int cpu=55;

       public void computer(){

         System.out.println("我是一台电脑");

       }

    }

    public class Ostrch extends Bird{

       public void spuerDemo(){

       super.computer();

       System.out.println(super. cpu);

       }

    }

    在构造函数中super()和this()只能出现其中一个,因为它们在定义构造函数的时候都要放在第一行,放在第一行的原因就是要让初始化先执行,所以呢他们两个在构造函数中只能出现一个。Super和this关键在静态方法中是不可以使用的,this 代表对象而静态在时,有可能没有对象,static关键字也是不能与Super和this连用的

    展开全文
  • Java基础——this关键字与super关键字

    Java基础——this关键字与super关键字

      有关this关键字与super关键字的介绍及区别,可以参考:this与super关键字详解,这里只重点强调this关键字与super关键字中一些关键的知识点。

      首先,this关键字与super关键字的定义:

      this:代表了所属函数的调用者对象,代表了对象的内存地址
      this是指向本类中某一个对象的一个变量,this相当于文章中第一人称的“我”,所有人描述自己的时候都会说“我”,只要读“我”的这个人发生变化,这个“我”指向的人就变了;而this关键字与之类似,this是抽象的,刚开始并不知道是指代谁,this是每一个对象携带的变量,这个变量所指向的都是自己,this只是起到了一个描述的作用:只要有一个具体的对象来执行的时候,this就用这个对象的this,换一个对象,this就变成另一个对象的this,所以只有在执行的时候才知道指向谁。就像文章中的“我”,只有确定了谁是读这篇文章的,才能确定这个“我”指代谁;
      super:代表了父类空间的引用

      说到this,首先先说一下命名遮挡

      命名遮挡(name shadow):局部变量、形参或者其他,与属性、方法或者其他重名导致直接通过名字访问出现歧义。

      因此可以通过this调用本类方法及属性:

       通过this<关键字>调用本类属性:只要在类中访问类的属性,一定要加上this关键字
       类的某个构造方法通过this()<方法>调用其他的构造方法,this调用构造方法必须出现在构造方法的第一行(编译期错误),也不允许成环(编译期错误)
    	class Person{
    	    public Person() {
    	        this(15);
    	    }
    	    public Person(int value) {
    	    }
    	}
    
       通过this<关键字>调用本类中普通方法(this.方法名(参数)):当有类的继承关系时,表示本类方法一定要加上this关键字区别于super本类中没有找子类中的同名方法

      this就如上面描述的一样,代表这个类对象本身。实际上就是那个"我",但具体这个"我"指的是谁,和该类的对象密切相关。下面说一下super关键字,super关键字大多作用于方法之上。

       当super()<方法>用于子类构造方法时:
        当子类调用父类无参构造时(系统默认会调用),super()可写可不写,表示调用父类的无参构造方法。
        当子类调用父类有参构造时,super(参数列表)必须要写,要告诉编译器调用的到底是父类的哪个有参构造方法。
       特别要注意的是:
        当父类中没有无参构造器(无论是默认生成还是自己手写),子类构造器中必须使用super(参数列表)调用父类的有参构造方法。且必须是出现在子类构造方法的第一行语句
        如果是父类存在自定义的无参构造(无论有无有参构造,只要存在无参构造系统就会默认调用),子类可以不直接使用super(),系统默认会调用父类无参构造的。
    	class Person{
    	    public Person() {
    	    }
    	    public Person(int value) {
    	    }
    	}
    	
    	class Student extends Person{
    	    public Student() {
    	    }
    	}
    
        若父类没有无参构造,就必须得使用super()调用父类有参构造。
    	class Person{
    	    public Person(String value) {
    	    }
    	}
    	
    	class Student extends Person{
    	    public Student() {
    	        super("hello");
    	    }
    	}
    
        this()和super()不能同时出现在构造方法中(都要出现在第一行),注意:此处指的是this()这个函数(调用本类其他构造方法),而不是this(值当前类的实例对象)
       当super<关键字>用于子类普通方法时:用于在子类中明确调用父类被覆写的方法。如果不使用super进行调用,子类调用的是子类重写父类的方法。
    	class Person{
    	    public void fun(){
    	        System.out.println("我是学生");
    	    }
    	    public void show(){
    	        System.out.println("你好人类");
    	    }
    	}
    	
    	class Student extends Person{
    	
    	    public void fun(){
    	        System.out.println("我是学生");
    	        // 此处调用的show()是子类覆写父类的方法
    	        show();
    	
    	    }
    	    public void show(){
    	        System.out.println("你好学生");
    	    }
    	}
    
    	class Person{
    	    public void fun(){
    	        System.out.println("我是学生");
    	    }
    	    public void show(){
    	        System.out.println("你好人类");
    	    }
    	}
    	
    	class Student extends Person{
    	
    	    public void fun(){
    	        System.out.println("我是学生");
    	        // 此处调用的show()是子类明确调用父类被覆写的方法
    	        super.show();
    	
    	    }
    	    public void show(){
    	        System.out.println("你好学生");
    	    }
    	}
    
    展开全文
  • Java_this关键字 定义:this关键字代表本类对象的引用; 特点: 1. 静态常量、变量、接口中不能访问this相关属性及接口; 原因:static静态修饰的属性及接口属于类所有;... 定义:super关键字代表父类...
    Java_this关键字
    
        定义:this关键字代表本类对象的引用;用来访问本类内容;
    
        语法:
            this.成员变量 ‐‐ 本类的
            this.成员方法名() ‐‐ 本类的
    
        特点:
            1. 静态常量、变量、接口中不能访问this相关属性及接口;
                原因:static静态修饰的属性及接口属于类所有;而this关键字是对象的引用;
                    按照加载的先后顺序来讲,static静态数据甚至在对象没有加载完成时便已经完成初始化,
                    故而在静态属性及接口中使用指向对象的引用时无法找到;
                    从而静态常量、变量、接口中不能访问this关键字;
            2. this关键字一般有三种用法:
                在类方法中,访问本类成员变量;
                在类方法中,访问本类成员方法;
                在类构造中,访问本类另一个构造;
            以下给出一则小示例:
    public class Aa{
    	
    	public Aa() {
    
    		// 调用本类有参构造 
    		this(1,2);
    
    	}
    
    	public Aa(int a, int b) {
    
    		// Codding ...
    
    	}
    }
    Java_super关键字
    
        语法:
            super.成员变量 ‐‐ 父类的
            super.成员方法名() ‐‐ 父类的
    
        定义:super关键字代表父类对象的引用;用来访问父类内容;
    
        特点:
            1. 静态常量、变量、接口中不能访问super相关属性及接口;
                原因:static静态修饰的属性及接口属于类所有;而super关键字是父类对象的引用;
                    按照加载的先后顺序来讲,static静态数据甚至在对象没有加载完成时便已经完成初始化,
                    故而在静态属性及接口中使用指向对象的引用时无法找到;
                    从而静态常量、变量、接口中不能访问super关键字; 
            2. super关键字一般有三种用法:
                出现在成员方法中,访问父类成员变量;
                出现在成员方法中,访问父类成员方法;
                出现在构造函数中,访问父类构造方法;

     

    展开全文
  • Java中的this与super关键字

    千次阅读 2019-07-18 09:39:43
    Java中的this与super关键字 this关键字 1.this是啥子? this代表当前类的对象 2.this能用在那些地方 1.可以用在成员方法中(访问当前对象的属性,调用当前对象的方法) 2.可以用在构造方法中(this必须...
  • Java中super关键字、super关键字与this关键字的区别

    千次阅读 多人点赞 2018-10-21 16:31:33
    文章目录1 super关键字1.1 super用于方法1.1.1 用于构造方法1.1.2 用于普通方法1.1.2 用于属性2 super与this关键字的区别2.1 概念上2.2 查找范围2.3 特殊之处 1 super关键字 1.1 super用于方法 1.1.1 用于构造...
  • 关于this与super关键字使用,对于一些初学者来说可能有些混淆,表6-1对this与super的差别进行比较,如下所示。 可以发现super或this调用构造方法时都需要放在首行,所以,super与this调用构造方法的操作使不...
  • thisSuper关键字thisSuper关键字的对比Super关键字的用法如下:1. super关键字代表了父类空间的引用;2. super关键字的作用:3. super关键字调用父类构造方法要注意的事项:this关键字的用法如下:1.了解没有 ...
  • super关键字this:代表本类对象的引用 super:代表父类存储空间的标识(可以理解为父类对象引用) - this和super的使用分别 成员变量: this.成员变量 - 访问本类成员变量 super.成员变量 - 访问父类成员变量 ...
  • thissuper关键字,final关键字,静态static关键字thissuper关键字关键字final修饰属性修饰局部变量修饰方法总结静态static关键字静态属性静态方法静态块非静态块总结 thissuper关键字,关键字final,静态...
  • this关键字与super关键字详解

    万次阅读 多人点赞 2018-02-02 12:17:03
    一.this关键字 1.实例一: (1)需求:使用Java类描述一个动物; (2)实例: class Animal{ String name; //成员变量 String color; public Animal(String n,String c){ name = n; color = c; } ...
  • javathissuper用法 thissuper 关键字的区别
  • 主要介绍了Java编程中this关键字与super关键字的用法示例,super是this的父辈,在继承过程中两个关键字经常被用到,需要的朋友可以参考下
  • this关键字 this关键字this指向对象本身,一个类可以通过this来获得一个代表它自身的对象变 量。this使用在如下三种情况中: 调用实例变量。 调用实例方法。 调用其他构造方法。 使用this变量的示例代码: ...
  • super关键字super关键字代表了父类空间的引用。 super关键字的 作用: 1. 子父类存在着同名的成员时,在子类中默认是访问子类的成员,可以通过super关键字指定访问父类的成员。 2. 创建子类对象时,默认会先...
  • Java关键字: a、Java中一些赋以特定的含义、并用做专门用途的单词称为关键字,用来表示一种数据类型或数据结构; b、Java中所有关键字都是小写的;...final static this super public protec
  • thissuper关键字

    2019-08-13 15:47:42
    thissuper关键字 ** 在java里,这个this和super我们学习过程中很容易把这俩忽略掉!!!       此篇博客将对thissuper关键字进行剖析。将this和super放在同一块是因为这两需要...
  • 1.this和super的使用区分 2.为什么this()和super()必须在构造...3.为什么静态方法中不能使用thissuper关键字 4.为什么要在构造方法内调用构造方法 5.如何调用两个父类的构造方法 6.为什么成员方法内不能调用构造方法
  • *this关键字使用方法 1.访问本类中的成员方法----this.方法名称 public class Apple { public String color; public int weight; public void setColor(String color) { this.color = color;//访问本类成员方法...
  • this,super关键字使用

    2016-08-26 20:49:00
    this关键字 1.this是对象的别名,是当前类的实例引用 2.在类的成员方法内部使用,代替当前类的实例。...super关键字 1.super代表父类实例 2.super()代表父类的构造方法 代码实例演示:  People类   p...
  • thissuper关键字/重载重写的一些区别补充拓展(thissuper关键字)(重载重写)1 、 this关键字2 、 super关键字3 、 this和super的区别4 、 重载重写的区别重载:重写: 补充拓展(thissuper关键字)...
  • this关键字: 1.代表当前这个对象 2.this可以访问本类中的实例变量、实例方法,也可以访问本类中的其他构造方法 3.this可以访问父类中的实例变量、实例方法 super关键字: ...3.super关键字使用语法...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 131,010
精华内容 52,404
关键字:

this与super关键字的使用