精华内容
下载资源
问答
  • super和this之间的区别: this:当前对象(new的对象|调用成员方法的对象) 1.调用本类中的其他构造器 this(参数列表) 2.区分局部成员之间的问题 super:指代父类对象 1.调用父类的构造器 super() 如果没有显示定义,...

    super和this之间的区别:
    this:当前对象(new的对象|调用成员方法的对象)
    1.调用本类中的其他构造器
    this(参数列表)
    2.区分局部和成员之间的问题
    super:指代父类对象
    1.调用父类的构造器
    super()
    如果没有显示定义,调用父类的哪一个构造器,默认首行调用super()父类空构造
    因为一般子类构造器的首行会默认调用父类空构造的问题,所以建议模板类都至少存在一个空构造
    super()必须在首行调用使用才行
    2.区分子父类同名问题
    如果当子父类中存在同名成员的时候,子类中使用同名内容默认就近原则指代父类,如果先要使用父类的通过super使用
    super指代父类对象
    如果不存在同名问题,调用父类中的成员,super.可以省略
    先父类后子类
    先静态后成员
    final 关键字
    被final修饰的变量为常量
    被final修饰的方法不能被重写
    被final修饰的类不能被继承 (太监类)

    public class SuperDemo01 {
    	//成员变量 引用数据类型 存储对象类型的数据
    	static final Zi z=new Zi();
    	public static void main(String[] args) {
    		Zi zi=new Zi();
    		System.out.println(zi.a);
    		zi.test();
    		
    		System.out.println(zi);
    		
    		//z=new Zi(); 对象的内存地址不可以改变,但是其成员的值可以修改
    		z.s="hehe";
    		System.out.println(z.s);
    	}
    }
    
    class Fu{
    	int a=5;
    	int b=10;
    	/*public Fu() {
    		System.out.println("我是父类空构造");
    	}*/
    	public Fu(int a) {
    		System.out.println("我是父类带参构造");
    		this.a=a;
    	}
    	
    }
    
    class Zi extends Fu{
    	int  a=1;
    	String s="哈哈";
    	public Zi() {
    		//super();
    		this("1");
    		System.out.println("我是子类空构造");
    	}
    	
    	public Zi(String s){
    		super(500);
    	}
    	
    	//测试字父类同名问题
    	void test(){
    		System.out.println(a);  //默认就近原则
    		System.out.println(new Fu(1).a);
    		System.out.println(super.a);
    		
    		System.out.println(this);
    	}
    }
    
    展开全文
  • java 关键字super和this

    2019-09-28 12:59:45
    super关键字  作用:调用父类的构造器  只能出现在子类的构造其中,并且必须是第一行  super()中的参数,决定了调用父类的那个构造器  注:如果子类构造器中没有出现super,则默认加上super(),调用父类...

    super关键字

      作用:调用父类的构造器

         只能出现在子类的构造其中,并且必须是第一行

         super()中的参数,决定了调用父类的那个构造器

      注:如果子类构造器中没有出现super,则默认加上super(),调用父类无参的构造器,若父类没有空构造器,提升错误

    this关键字

      作用:调用本类的构造器

            this()只能写在构造器的第一行

      注:在同一个构造器中,super( )和this()不能同时出现

    转载于:https://www.cnblogs.com/makangning/p/9489895.html

    展开全文
  • Java关键字 super和this

    2017-03-19 13:13:38
    总结关键字thissuper用法。 author: ZJ 07-3-12 ... 1.什么是super?什么是this? ...super关键字表示超(父)类的意思...2.使用super&this调用成员变量方法 可以使用super访问父类被子类隐藏的变量或覆盖的方法。
    总结关键字thissuper用法。
    author: ZJ 07-3-12
    1.什么是super?什么是this
    super关键字表示超(父)类的意思。this变量代表对象本身。
    2.使用super&this 调用成员变量和方法
    可以使用super访问父类被子类隐藏的变量或覆盖的方法。当前类如果是从超类继承而来的,当调用super.XX()就是调用基类版本的XX()方法。见示例1
    当类中有两个同名变量,一个属于类(类的成员变量),而另一个属于某个特定的方法(方法中的局部变量),使用this区分成员变量和局部变量。见示例2
     
    示例1
    class  Person {
         protected   void  print() {
           System. out .println( "The print() in class Person." );
        }
    }
     
    public   class  DemoSuper  extends  Person {
         public   void  print() {
           System. out .println( "The print() in class DemoSuper." );
            super .print(); //  调用父类的方法
        }
     
         public   static   void  main(String[] args) {
           DemoSuper ds =  new  DemoSuper();
           ds.print();
        }
    }
     
    结果:
    The print() in class DemoSuper.
    The print() in class Person.
     
    示例2
    public   class  DemoThis {
         private  String  name ;
     
         public   void  setName(String name) {
            this . name  = name; //  前一个 name private name ;后一个 name setName 中的参数。
        }
    }
    3.使用this 表示当前调用方法的对象引用
    假设你希望在方法的内部获得对当前对象的引用,可使用关键字thisthis关键字只能在方法内部使用,表示对“调用方法的那个对象”的引用。见示例3
     
    示例3
    Button  bn ;
    bn.addActionListener( this );
    4.使用super&this调用构造子
    super(参数):调用基类中的某一个构造函数(应该为构造函数中的第一条语句)。见示例4
    this(参数):调用本类中另一种形成的构造函数(应该为构造函数中的第一条语句)。 见示例5
     
    示例4
    class  Person {
         public   static   void  prt(String s) {
           System. out .println(s);
        }
     
        Person() {
            prt( "A Person." );
        }
     
        Person(String name) {
            prt( "A person name is:"  + name);
        }
    }
     
    public   class  Chinese  extends  Person {
        Chinese() {
            super (); //  调用父类构造函数。
            prt( "A chinese." );
        }
     
        Chinese(String name) {
            super (name); //  调用父类具有相同形参的构造函数。
            prt( "his name is:"  + name);
        }
     
         public   static   void  main(String[] args) {
           Chinese cn =  new  Chinese();
           cn =  new  Chinese( "kevin" );
        }
    }
     
    结果:
    A Person.
    A chinese.
    A person name is:kevin
    his name is:kevin
     
    示例5
    Point( int  a, int  b){
        x=a;
        y=b;
    }
    Point(){
         this (1,1);  // 调用 point(1,1), 必须是第一条语句。
    }
    5.使用super&this应该注意些什么?
    1)调用super()必须写在子类构造方法的第一行,否则编译不通过。每个子类构造方法的第一条语句,都是隐含地调用super(),如果父类没有这种形式的构造函数,那么在编译的时候就会报错。
     
    2super()this()类似,区别是,super从子类中调用父类的构造方法,this()在同一类内调用其它方法。
     
    3super()this()均需放在构造方法内第一行。
     
    4)尽管可以用this调用一个构造器,但却不能调用两个。
     
    5thissuper不能同时出现在一个构造函数里面,因为this必然会调用其它的构造函数,其它的构造函数必然也会有super语句的存在,所以在同一个构造函数里面有相同的语句,就失去了语句的意义,编译器也不会通过。
     
    6this()super()都指的是对象,所以,均不可以在static环境中使用。包括:static变量,static方法,static语句块。
     
    7)从本质上讲,this是一个指向本对象的指针然而super是一个Java关键字。
    6 .参考资料
    [1]Thinking in Java 3rd
    [2] this super java里使用时应注意的地方
    [url]http://hengdao325200.blog.163.com/blog/static/340522006626114027/[/url]
    [3] Java 类体中的thissuper的正确用法
    [url]http://xiaocao000.spaces.live.com/Blog/cns!F[/url]826A925CF33491A!126.entry
    7.相关介绍
    Java关键字介绍之 static

    本文出自 “i张俊” 博客,请务必保留此出处http://zhangjunhd.blog.51cto.com/113473/20531

    展开全文
  • java关键字super和this

    2014-09-24 21:25:03
    2.使用super&this调用成员变量方法 可以使用super访问父类被子类隐藏的变量或覆盖的方法。当前类如果是从超类继承而来的,当调用super.XX()就是调用基类版本的XX()方法。见示例1。 当类中有两个同名变量...
    1.什么是super?什么是this
    super关键字表示超(父)类的意思。this变量代表对象本身。
    2.使用super&this调用成员变量和方法
    可以使用super访问父类被子类隐藏的变量或覆盖的方法。当前类如果是从超类继承而来的,当调用super.XX()就是调用基类版本的XX()方法。见示例1
    当类中有两个同名变量,一个属于类(类的成员变量),而另一个属于某个特定的方法(方法中的局部变量),使用this区分成员变量和局部变量。见示例2
     
    示例1
    class  Person {
         protected   void  print() {
           System. out .println( "The print() in class Person." );
        }
    }
     
    public   class  DemoSuper  extends  Person {
         public   void  print() {
           System. out .println( "The print() in class DemoSuper." );
            super .print(); //  调用父类的方法
        }
     
         public   static   void  main(String[] args) {
           DemoSuper ds =  new  DemoSuper();
           ds.print();
        }
    }
     
    结果:
    The print() in class DemoSuper.
    The print() in class Person.
     
    示例2
    public   class  DemoThis {
         private  String  name ;
     
         public   void  setName(String name) {
            this . name  = name; //  前一个 name private name ;后一个 name setName 中的参数。
        }
    }
    3.使用this表示当前调用方法的对象引用
    假设你希望在方法的内部获得对当前对象的引用,可使用关键字thisthis关键字只能在方法内部使用,表示对“调用方法的那个对象”的引用。见示例3
     
    示例3
    Button  bn ;
    bn.addActionListener( this );
    4.使用super&this调用构造子
    super(参数):调用基类中的某一个构造函数(应该为构造函数中的第一条语句)。见示例4
    this(参数):调用本类中另一种形成的构造函数(应该为构造函数中的第一条语句)。 见示例5
     
    示例4
    class  Person {
         public   static   void  prt(String s) {
           System. out .println(s);
        }
     
        Person() {
           prt( "A Person." );
        }
     
        Person(String name) {
           prt( "A person name is:"  + name);
        }
    }
     
    public   class  Chinese  extends  Person {
        Chinese() {
            super (); //  调用父类构造函数。
           prt( "A chinese." );
        }
     
        Chinese(String name) {
            super (name); //  调用父类具有相同形参的构造函数。
           prt( "his name is:"  + name);
        }
     
         public   static   void  main(String[] args) {
           Chinese cn =  new  Chinese();
           cn =  new  Chinese( "kevin" );
        }
    }
     
    结果:
    A Person.
    A chinese.
    A person name is:kevin
    his name is:kevin
     
    示例5
    Point( int  a, int  b){
        x=a;
        y=b;
    }
    Point(){
         this (1,1);  // 调用 point(1,1), 必须是第一条语句。
    }
    5.使用super&this应该注意些什么?
    1)调用super()必须写在子类构造方法的第一行,否则编译不通过。每个子类构造方法的第一条语句,都是隐含地调用super(),如果父类没有这种形式的构造函数,那么在编译的时候就会报错。
     
    2super()this()类似,区别是,super从子类中调用父类的构造方法,this()在同一类内调用其它方法。
     
    3super()this()均需放在构造方法内第一行。
     
    4)尽管可以用this调用一个构造器,但却不能调用两个。
     
    5thissuper不能同时出现在一个构造函数里面,因为this必然会调用其它的构造函数,其它的构造函数必然也会有super语句的存在,所以在同一个构造函数里面有相同的语句,就失去了语句的意义,编译器也不会通过。
     
    6this()super()都指的是对象,所以,均不可以在static环境中使用。包括:static变量,static方法,static语句块。
     
    7)从本质上讲,this是一个指向本对象的指针然而super是一个Java关键字。
    6.参考资料
    [1]Thinking in Java 3rd
    [2] this super java里使用时应注意的地方
    [url]http://hengdao325200.blog.163.com/blog/static/340522006626114027/[/url]
    [3] Java 类体中的thissuper的正确用法
    [url]http://xiaocao000.spaces.live.com/Blog/cns!F[/url]826A925CF33491A!126.entry
    展开全文
  • java中关键字super和this

    2018-06-22 21:42:27
    1.super关键字:(1)子类构造方法调用父类构造方法:super()class B{ public B() { System.out.println("1*****"); } } public class A extends B { public A() { super(); }  }输出结果:1*****...
  • Java中关键字superthis区别 一、super关键字 在JAVA类中使用super来引用父类的成分,用this来引用当前对象,如果一个类从另外一个类继承,我们new这个子类的实例对象的时候,这个子类对象里面会有一个...
  • super和this关键字 简单的说一下this就是指代当前类,super就是指代父类。this和super完全可以当作一个类来使用,调用方法等。...JAVA中this用法小结super关键字的作用Java核心(七):this和super区别 ...
  • this关键字 1.”this.(方法名,属性名)”表示引用当前对象的方法或属性。 (1).给属性赋初始值时,一般要用this.xxx=xxx; (2).当方法内部定义的局部变量与成员变量重名时,如果要调用成员变量应当使用this....
  • this关键字: 1、调用本类中的属性(成员...super关键字和this关键字区别 通俗的讲,this指的是当前对象,super则指父类的。 (2)仅在了类中的构造方法中可以用“this(参数列表)”调用另一个构造方法,别...
  • Java关键字superthis

    2018-01-05 16:20:21
    子类可以继承父类的非私有变量方法(不是以private或者final关键字修饰的)作为自己的变量方法。但是,下列场景中,如果想在子类中访问父类方法或变量,就可以使用super关键字。 1)如果子类隐藏了父类的变量...
  • 一.this关键字代表什么 this代表当前对象的引用 有关this关键字的注意事项: 1.this代表当前对象的引用 2.在静态方法内部,不能够使用this(j静态不依赖于对象 ,而this代表对象的引用产生矛盾) 3. a.this通过点号 ...
  • ① 在 java 语言中,关键字 this 指的是对当前对象的引用...当引用当前对象的某个方法或某个成员时,通常会使用 this,而 通过super 可以调用父类的构造方法,父类的方法属性。② 每当一个对象创建后,java 虚...
  • 1.关键字this:是指调用对象本身的引用名。可以用this关键字引用对象的实例成员,例如:下面的代码使用this来显示地引用对象的radius以及调用它的getArea()方法。但是this引用可以省略掉的。 public class Circle{...
  • 注意:使用super关键字和this关键字,均不能用在静态方法中,只能用在普通方法(实例方法)中。 访问属性: 示例: 父类 public class FatherClass{ public int age=18; } 子类 public c
  • JAVA中关键字THIS和关键字SUPER图解 父类 package demo10; public class Fu { int num=10; public void method(){ System.out.println("父类方法"); } } 子类 package demo10; import java.util.zip....
  • 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 superthis关键字区别2.1 概念上2.2 查找范围2.3 特殊之处 1 super关键字 1.1 super用于方法 1.1.1 用于构造...
  • public Test(String s) { super(s); System.out.println("How do you do?"); }
  • 1.super关键字和this关键字区别super关键字: 表示父类对象的引用,只能在子类中使用 可以使用 super() 调用父类的构造方法,必须位于第一行 可以使用 super. 访问父类的属性方法,解决父类子类中成员同名...
  • 两个关键字super/this -------(个人理解) This 关键字代表当前对象 This.属性 操作当前对象的属性; This.方法 操作当前对象的方法; 封装对象的属性经常使用this 关键字. 例如: ​ public abstract ...
  • this关键字 this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针。 this的用法在java中大体可以分为3种: 1.普通的直接引用,this相当于是指向当前对象本身。 2.形参与成员名字重名,用...
  • super super和this通常是我们在继承中使用。...1.super和this都是指向对象的关键字,因此不可以在static环境中使用,包括代码区块其他。 2.super调用父类中的方法,在子类中使用 3.this是指向自己的指针。 ...
  • this关键字和super关键字区别 » this关键字 ■ 代表当前这个对象 ■ this可以访问本类中的实例变量、实例方法也可以方法本类中的其他构造方法 ■ this还可以访问父类中的实例变量、实例方法 »super关键字 ■...
  • this关键字和super关键字区别 super关键字的三种用法: 在子类的成员方法中,访问父类的成员变量。 在子类的成员方法中,访问父类的成员方法。 在子类的构造方法中,访问父类的构造方法。 this关键字的三种方法: ...
  • javathis和super用法 this和 super 关键字区别
  • 一、关键字this的使用。 this调用的是本类中的属性,也就是类中的成员变量。通过this引用变量的形式如下:this.成员变量名。 实例:void setName(int name)  {   this.name=name;  } 2.
  • 关键字super和final

    2019-10-24 22:33:58
    关键字super super this 之间的区别: this 指代当前创建的对象 调用本类其他构造器: 构造器的首行 this(参数列表) 区分同名变量问题(局部成员) this. super 指代父类对象 调用父类构造器 默认调用父类的空...
  • super关键字的作用 this和super区别 使用super可以从子类中调用父类中的构造方法、普通方法、属性。语句必须放在子类的构造方法的首行。 下面以使用super调用父类中的指定构造方法为例 代码如下 package ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 132,222
精华内容 52,888
关键字:

关键字super和this的区别