精华内容
下载资源
问答
  • thissuper区别和各自的作用?

    千次阅读 多人点赞 2019-05-27 20:34:17
    文章目录一、二者的区别二、注意点: 一、二者的区别 1.属性的区别this访问本类中的属性,如果本类没有此属性则从父类中继续查找。super访问父类中的属性。 2.方法的区别this访问本类中的方法,如果本类没有此...

    一、二者的区别

    1.属性的区别:
    this访问本类中的属性,如果本类没有此属性则从父类中继续查找。super访问父类中的属性。
    2.方法的区别:
    this访问本类中的方法,如果本类没有此方法则从父类中继续查找。super访问父类中的方法。
    3.构造的区别:
    this调用本类构造,必须放在构造方法的首行。super调用父类构造,必须放在子类构造方法首行。
    4.其他区别:
    this表示当前对象。super不能表示当前对象
    A、this. 变量和super.变量
    this.变量 调用的当前对象的变量;
    super.变量 直接调用的是父类中的变量。
    B、this(参数)和super(参数)方法
    this(参数) 调用(转发)的是当前类中的构造器;
    super(参数) 用于确认要使用父类中的哪一个构造器。

    二、注意点:

    1)在对拥有父类的子类进行初始化时,父类的构造方法也会执行,且优先于子类的构造函数执行;因为每一个子类的构造函数中的第一行都有一条默认的隐式语句super();
    2)this() 和super()都只能写在构造函数的第一行;
    3)this() 和super() 不能存在于同一个构造函数中。第一,this()和super()都必须写在构造函数的第一行;第二,this()语句调用的是当前类的另一个构造函数而这个另一个构造函数中必然有一个父类的构造器,再使用super()又调用一次父类的构造器, 就相当于调用了两次父类的构造器,编译器不会通过;
    4)this和super不能用于static修饰的变量,方法,代码块;因为this和super都是指的是对象(实例)。

    展开全文
  • this与super有什么区别this 在Java中,this用来指当前实例对象,它主要就是区分对象的成员变量还是方法的形参,当成员变量和方法的形参相同名字的时候,就会用覆盖成员变量。 class Student{ String name ; ...

    this与super有什么区别?

    this

    在Java中,this用来指当前实例对象,它主要就是区分对象的成员变量还是方法的形参,当成员变量和方法的形参相同名字的时候,就会用覆盖成员变量。

    
    class Student{
    		String name ;
    		//正确的写法
    		public Student(String name){
    			this.name = name ;
    }
    	//错误的写法
    	public Student(String name){
    			name = name;
    }
    }
    

    在第一个构造函数中的this.name是成员的,而不是这个构造函数的形式参数,
    第二个两个name都是构造函数的形式参数。
    要通过this才能访问到成员变量,在这个例子中很好的体现出this的作用。

    super

    super可以用来访问父类的方法和成员变量。当子类的方法或者成员变量与父类有相同的名字时也会时覆盖父类的方法和成员变量,想要访问父类的方法或成员变量只能通过super关键字来访问。

    示例如下。

    class Base{
    	public void f(){
    				System.out.println("Base:f()");
    }
    }
    	class Sub extends Base{
    	
    		public void f(){
    				System.out.println("Sub:f()");
    }
    		public void subf(){
    				f();
    }
    		public void basef(){
    				super.f();
    }
    }
    	public class Test {
    		public static void main (String[] args){
    				Sub s = new Sub();
    				s.subf();
    				s.subf();
    }
    }
    

    运行结果:

    Sub:f()
    Base:f()
    
    展开全文
  • java中thissuperthis()、super()的用法和区别

    千次阅读 多人点赞 2018-05-08 12:26:42
    this关键字:一.this是什么? this是一个引用类型, 在堆中的每一个java对象上都有thisthis保存内存地址指向自身。二.thisthis()能用在哪些地方?this可以用在成员方法中.this()可以用在构造方法中.语法: ...

    this关键字:
    一.this是什么?
          this是一个引用类型,   在堆中的每一个java对象上都有this, this保存内存地址指向自身。

    二.this及this()能用在哪些地方?
    1. this可以用在成员方法中.
    2. this()可以用在构造方法中.语法: 
    • this(实参);
    • 通过一个构造方法去调用另一个构造方法。
    • 目的:代码重用。
    •  this(实参);必须出现在构造方法的第一行
     应用实例:
    public class ThisTest01{
    
        public static void main(String[] args){
    
            /*
            //创建对象
            MyDate t1 = new MyDate(2008,8,8);
    
            System.out.println(t1.year+"年"+t1.month+"月"+t1.day+"日");
    
            //创建对象
            MyDate t2 = new MyDate(2012,12,20);
    
            System.out.println(t2.year+"年"+t2.month+"月"+t2.day+"日");
            */
    
            MyDate t3 = new MyDate();
    
            System.out.println(t3.year+"年"+t3.month+"月"+t3.day+"日");
    
        }
    
    }
    
    //日期
    class MyDate{
    
        //Field
        int year;
        int month;
        int day;
    
        //Constructor
        //需求:在创建日期对象的时候,默认的日期是:1970-1-1
        MyDate(){
            this(1970,1,1);
            /*
            this.year = 1970;
            this.month = 1;
            this.day = 1;
            */
        }
    
        MyDate(int _year,int _month,int _day){
            year = _year;
            month = _month;
            day = _day;
        }
    }
    this为什么不能用在静态方法中.
    • 静态方法的执行根本不需要java对象的存在。直接使用  类名.  的方式访问。而this代表的是当前对象。所以静态方法中根本没有this
    • 根据构造方法的执行顺序,静态的方法是先于对象存在的,也就是说在静态方法加载的时候有,对象还没有创建!!!


        三.super()用在构造方法中:
        语法:super(实参);

        作用:通过子类的构造方法去调用父类的构造方法.

        语法规则:一个构造方法第一行如果没有this(...);也没有显示的去调用super(...);
        系统会默认调用super();

        注意:
    • super(...);的调用只能放在构造方法的第一行.
    •  super(....)和this(....)不能共存。
    • super(...);调用了父类中的构造方法,虚拟机会创建父类对象但不是new 出来的;是虚拟机在执行字节码时在初始化方法 init(该方法在字节码中)中创建的对象!!!
    • 在java语言中只要是创建java对象,那么Object中的无参数构造方法一定会执行。



        四.super关键字做引用,

        语法:super.xx 来调用父类的成员方法或成员变量:

        注意:super是一个引用但是却没办法输出,Sun公司也没有给出相关的声明,导致此处有些模棱两可,所以不必纠结其他,记住这个结论就行

    
    
    展开全文
  • 主要介绍了java中this与super关键字的使用方法的相关资料,希望通过本文能帮助到大家,让大家彻底理解应用java中this与super,需要的朋友可以参考下
  • thissuper关键字的区别(Java)

    千次阅读 多人点赞 2018-08-26 05:59:43
    一、Java当中thissuper区别: 1.属性的区别: (1)this访问本类中的属性,如果本类没有这个属性则访问父类中的属性。 (2)super访问父类中的属性。 2.方法的区别: (1)this访问本类中的方法,如果本类...
    一、Java当中this和super的区别:
    1.属性的区别:
         (1)this访问本类中的属性,如果本类没有这个属性则访问父类中的属性。
         (2)super访问父类中的属性。 
    2.方法的区别:
         (1)this访问本类中的方法,如果本类没有这个方法则访问父类中的方法。
         (2)super访问父类中的方法。 
    3.构造的区别:
         (1)this调用本类构造构造,必须放在构造方法的首行。
         (2)super调用父类构造,必须放在子类构造方法首行。 
         (3)其他区别:this表示当前对象。super不能表示当前对象 
    
    二、this. 变量和super.变量
         (1)this.变量:调用的当前对象的变量; 
         (2)super.变量:直接调用的是父类中的变量。 
    
    三、this(参数)和super(参数)方法 
         (1)this(参数):调用(转发)的是当前类中的构造器; 
         (2)super(参数):用于确认要使用父类中的哪一个构造器。
     
    四、注意点: 
         (1)在对拥有父类的子类进行初始化时,父类的构造方法也会执行,且优先于子类的构造函数执行;因为每一个子类的构造函数中的第一行都有一条默认的隐式语句super(); 
         (2)this() 和super()都只能写在构造函数的第一行; 
         (3)this() 和super() 不能存在于同一个构造函数中。
                1)this()和super()都必须写在构造函数的第一行;
                2)this()语句调用的是当前类的另一个构造函数而这个另一个构造函数中必然有一个父类的构造器,再使用super()又调用一次父类的构造器, 就相当于调用了两次父类的构造器,编译器不会通过; 
         (4)this和super不能用于static修饰的变量,方法,代码块;因为this和super都是指的是对象(实例)。

     

    展开全文
  • this与super区别

    千次阅读 2019-01-03 10:59:01
    1.this与super继承关系 当子类创建对象后,该子类对象本身可以使用this来指代,而该对象当中的父类对象空间可以使用super来指代 示例: 所以继承关系图: 2.this与super调用普通成员构造方法 调用普通成员 ...
  • Java中this与super区别

    2018-06-27 22:41:45
    Java中this与super区别 this&super; 什么是this,this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针。 Java关键字this只能用于方法的方法体内。当一个对象创建后, Java虚拟机(JVM)就...
  • supersuper关键字和this的作用类似,将被隐藏的父类的成员变量和成员方法变为可见,或者说用来引用被隐藏的父类的成员成员变量和成员方法。 使用场景: 1.使用superthis调用成员变量和方法 有时会遇到子类中的...
  • 关键字thissuper区别

    万次阅读 2018-08-29 23:39:48
    1.this关键字  (1.)每个类的每个非静态方法(没有被static修饰)都会隐含一个this关键字,它指向调用这个方法的对象;当在方法中使用本类属性时,都会隐含地使用this关键字,当然也可以明确使用。  this可以看成...
  • 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; } ...
  • java中thissuper的用法区别

    千次阅读 多人点赞 2019-06-03 22:12:53
    java中thissuper的用法区别 this this是自身的一个对象,代表对象本身,用法大致分为以下3类: 1、普通直接引用当前对象本身 2、形参和成员名重名,用this来区分 3、引用构造方法 ,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 用于构造...
  • super关键字和与this关键字的区别

    千次阅读 2018-03-31 17:48:29
    功能:调用父类中的方法或属性 1.调用父类中的同名方法 class Person{ public void print(){//4. System.out.println("1.父类"... super.print();...
  • package com.cj.study.thissuper; public class Student{ public String name; public void setName(String name) { this.name = name; } public String getName() { return name; } } ...
  • super,this区别和使用

    千次阅读 2016-03-25 22:28:06
    this的使用和说明java的this关键字只能用于方法体内,java虚拟机(JVM)会给这个对象分配一个引用自身的指针,这个指针的名字就是this.注意:函数参数或者函数中的局部变量和成员变量同名的话,成员变量被屏蔽,此时要...
  • superthis区别

    千次阅读 2017-11-10 19:31:50
    参考博客:https://www.cnblogs.com/hasse/p/5023392.html http://blog.csdn.net/zuoyang1990/article/details/53471494thisthis是自身的一个对象,代表...this的用法在java中大体可以分为3种: 1、普通的直接引用
  • java中关键字thissuper的用法和区别

    千次阅读 2019-03-18 20:37:38
    thissuper的用法以及它们的区别在这里做了一些整理,大家可以参考使用 1. thisthis是自身的一个对象,以下是几种用法: 1.1.当形参成员变量重名时,用this来区分,this.name 代表类的成员变量 1.2.引用构造...
  • 简述java中this,和super关键字的区别和作用

    千次阅读 多人点赞 2019-04-09 08:58:20
    在JAVA类中使用super来引用父类的成分,用this来引用当前对象,如果一个类从另外一个类继承,我们new这个子类的实例对象的时候,这个子类对象里面会有一个父类对象。怎么去引用里面的父类对象呢?使用super来引用,...
  • this:当前对象(new的对象|调用成员方法的对象) 1.调用本类中的其他构造器 this(参数列表) 2.区分局部和成员之间的问题 super:指代父类对象 1.调用父类的构造器 super() 如果没有显示定义...
  • This():当前类的对象,super 父类对象。 Super():在子类访问父类的成员和行为,必须受类继承规则的约束 而this 他代表当前对象,当然所有的资源都可以访问. 在构造函数中,如果第一行没有写super(),编译器会自动...
  • super()与this()的区别

    2018-10-15 12:58:15
    文章目录1 相同:2 不同之处在于:...super()与this()的异同 1 相同: 都只能在构造函数中调用 代码会出错哦! public class Main extends teacher{ public static void main(String[] args) { //super(); }...
  • thissuper this:代表对象(代表本类类型对象的引用)。就是所在方法所属对象的引用。哪个对象调用了this所在的方法,this就代表哪个对象,就是哪个对象的引用。 this还可以用于构造方法间的调用。 调用格式:...
  • 【java】this()与super()使用详解

    万次阅读 多人点赞 2018-01-10 16:36:20
    this调用属性、调用方法、利用this表示当前对象。 this this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针。 this的用法在java中大体可以分为3种: 1.普通的直接引用 这种就...
  • super,this区别

    2013-02-21 00:52:59
    super,this区别super,this区别
  • thissuper关键字的作用区别 this:是对象对自身的引用,没有继承也可以使用,调用本类的构造 super:对父类对象的引用,只能在继承条件下使用,调用父类的构造 super注意点: super调用父类的构造方法,必须在...
  • thissuper区别

    2020-08-17 22:40:46
    一、this this是自身的一个对象,...2、形参成员名字重名,用this来区分: public Person(String name, int age) { > this.name = name; > this.age = age; } 3.引用本类的构造函数 class Person{ private
  • java中this 与super的详解
  • 主要介绍了Java中super的几种用法并与this区别,有需要的朋友可以参考一下
  • https://blog.csdn.net/qq_32331073/article/details/77097809

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,131,153
精华内容 452,461
关键字:

this与super区别