精华内容
下载资源
问答
  • this和super关键字

    2019-08-13 15:47:42
    this和super关键字 ** 在java里,这个this和super我们学习过程中很容易把这俩忽略掉!!!       此篇博客将对this和super关键字进行剖析。将this和super放在同一块是因为这两需要...

    java基础

    **

    this和super关键字

    **

    在java里,这个this和super我们学习过程中很容易把这俩忽略掉!!!

          此篇博客将对this和super关键字进行剖析。将this和super放在同一块是因为这两需要进行对比分析!!!

    this:

        位置:构造器内、方法内

        作用:像它的意思。表示当前对象,可以用来调用属性、方法和构造器。

    来段我们熟悉的pojo类

    
    class A{
    
        private int id;
    
        protected String name;
    
        public String sex;
    
        public A(int id, String name, String sex) {
            this.id = id;
            this.name = name;
            this.sex = sex;
    		this.talk();
        }
    
        public A(){
            
        }
    
    	void talk(){
        	System.out.println(id+name+sex);
        }
    
    }
    
    

    这个类,我们随便双击一个this.后面的那个看一看

    我们发现,这个this.name就是上面String 那么中的name 也是我们talk()里的name

    我给talk加了一个this.但都一样

    所以这里的this就是当前对象的意思。

    注意:

        1、我们方法里一般没写this.是因为这个可以省略,但在方法里直接写的name和this.name是一样的

        2、this()     this.name     this.talk()

    这三者的区别一目了然。一个是当前构造方法,一个是当前类的字段,一个是当前类的方法

        3、其他不急,先看super

    super:

        位置:构造器内、方法内

        作用:同this,不过表示的是父类的对象

    对比this和super

        1、this()和super()在位于构造方法内有效代码第一行

    由此可知,一个构造器只能有一个this()或super(),且this和super不能共在

    
    public class B extends A{
    
    	public B(){
    		super();	
    	}
    
    	public B(){
    		this();
    	}
    
    	//	  public B(){ 	
    	//	  	  super();
    	//	  	  this();	错误
    	//	  }
    
    	//	  public B(){
    	//	  	  this();
    	//	  	  this();	错误
    	//	  }
    
    }
    
    

        2、成员方法不能调用构造函数

        3、构造方法不能互相调用

    最后,我们要知道的是

    1.我们在类里方法内直接写属性一般是省略this.的

    2.对于我们父子类同名属性时,使用super.和this.可以将属性区分开,默认则是this。

    3.用super调用父类方法,用this调用本类方法,默认this

    4.使用super和this不牵扯任何实例化过程,也不加杂对象操作。因为this就代表的是当前对象,super没这个概念。

    其实,this和super这里我们一般确实关注不多,我们对它代表什么意义和怎么用了解就行,重要的则是后面的一些东西。

    返回 》
    接口抽象类

    下一篇


    final和static关键字


    面向对象——多态

    展开全文
  • this super 关键字

    2019-12-27 15:40:26
    运用super关键字实现子类调用父类的构造方法。 用this关键字实现当前类的对象调用成员变量或成员方法。 代码解释 class Point2{ protected int x,y; Point2 ( int a , int b){ setPoint(a,b); } public void ...

    运用super关键字实现子类调用父类的构造方法。
    用this关键字实现当前类的对象调用成员变量或成员方法。

    代码解释

    class Point2{
    	protected int x,y;
    	Point2 ( int a , int b){
    		setPoint(a,b);
    	}
    	public void setPoint (int a, int b){
    		x = a; y = b;
    	}
    }
    class Line2 extends Point2{
    	protected int x,y;
    	Line2 (int a, int b) { super(a,b); setLine(a,b);}
    	public void setLine(int x, int y){
    		this.x = x + x; this.y = y;
    	}
    	public double length(){
    	int x1 = super.x, y1 = super.y , x2 = this.x, y2 = this.y;   //可以看出这里的 x1 和 y1 是类Point2 的变量, 而 x2 和 y2 是类Line2 变量。
    	return Math.sqrt((x2-x1) * (x2-x1) + (y2 - y1) * (y2 - y1) ;
    	}
    	public String toString(){
    		return "直线端点:[" + super.x + ","super.y + "][" + x + "," + y + " ] 直线长度: " + this.length();
    	}
    }
    public class exp5_3 {
    	public static void main(String args[]){
    		Line2 line = new Line2(50,50);
    		System.out.println("/n" + line.toString());
    	}
    }
    
    1. this 可以代表当前类或对象本身。在一个类中, this 表示对当前类的引用,在使用类的成员是隐含着 this 引用。 尽管可以不明确地写出,当一个类被实例化为一个对象时,this 就是对象名的另一种表示。通过this可顺利的访问对象,凡是在需要使用对象的地方都可以用this 代替。
    2. super代表父类,如果子类的变量隐藏了父类的变量,使用不加引用的变量一定是子类的变量,如果使用父类的变量,就必须加上 super 引用。同样的道理,如果有方法覆盖的发生,调用父类的方法时也必须加上super引用。
    3. super()可用来调用父类的构造方法。

    让我想起了鸣人和自来也在一起的日子,不如把蛤蟆文太和蛤蟆吉看做父类和子类,鸣人刚和自来也历练的时候,常常召唤的是蛤蟆吉,这就是用子类对象的过程,this 是鸣人的另一种表示, 如果想要召唤文太,就要看 super 自来也的了,加上super引用,用的就是父类蛤蟆文太,自来也真的是亦师亦父,是鸣人的super。

    展开全文
  • this 和super关键字

    2018-12-08 17:12:00
    一、this 关键字 this关键字代表的就是函数所属的调用者。this关键字的作用: 1.如果存在同名的成员变量与局部变量时,在方法内部默认的时访问的时局部变量,可以通过this关键字调用成员变量 2.在一个构造方法中...

    一、this  关键字

       this关键字代表的就是函数所属的调用者。this关键字的作用:

           1.如果存在同名的成员变量与局部变量时,在方法内部默认的时访问的时局部变量,可以通过this关键字调用成员变量
           2.在一个构造方法中调用另一个构造方法来初始化对象
    this关键字要注意的事项
           1.存在同名的成员变量与局部变量时,在方法内部默认会调用局部变量
            2.如果在一个方法中访问一个变量,该变量存在成员遍历的情况下,,jav会默认在改变量前面添加this

    二、super:

        super 关键字主要是用于实现父类的成员变量,用于当前对象的父类的 应用。

         super关键字的主要作用是:

              1.当子类和父类存在同名的成员变量是,如果要访问的是父类的成员变量和构造方法是,需要super关键字来调。

             2.通过super关键字来调用父类的构造方法

    super关键字调用父类构造方法要注意的事项:
               1.如果在子类的构造方法上没有指定用父类的构造方法,那么java编译器会在子类的构造方法上面加上super()关键字。
               2.super关键字调用父类的构造函数时,该语句必须是子类构造函数中的第一个语句。
               3.super与this关键字不能同时出现在同一个构造函数中调用其他的构造函数。因为两个语句都要排在第一个语句

     代码如下:

       

    package com.homewor;
    class Students{
               private String name;
               private int age;
              private String address;
       public Students(String name, int age, String address) {
            super();
          this.name = name;
          this.age = age;
          this.address = address;
       }
          public Students() {
               super();
          // TODO Auto-generated constructor stub
              }
             public String getName() {
             return name;
             }
             public void setName(String name) {
              this.name = name;
            }
    public int getAge() {
    return age;
    }
    public void setAge(int age) {
    this.age = age;
    }
    public String getAddress() {
    return address;
    }
    public void setAddress(String address) {
    this.address = address;
    }
    @Override
    public String toString() {
    return "Students [name=" + name + ", age=" + age + ", address=" + address + "]";
    }
    public void Stdeny(){
    System.out.println("把自己的心静静下来,好啊好啊的的休息好好的学习,");
    }
    }
    public class StudentTest {

    public static void main(String[] args) {
    Students s=new Students();
    s.setName("nama ");
    s.setAge(100);
    s.setAddress("tainajin");
    s.Stdeny();
    }

    }

    转载于:https://www.cnblogs.com/yang-1yang/p/10088304.html

    展开全文
  • this super关键字

    2011-12-29 13:54:51
    this和super关键字,其用法非常的相似。super用来代表父类,而this用来代表本类。 this()用于调用本类的构造。 super()用来调用父类的构造,必须出现在构造当中的第一行。 this. 用来调用本类的属性方法,可以...

    this和super关键字,其用法非常的相似。super用来代表父类,而this用来代表本类。

    this()用于调用本类的构造。

    super()用来调用父类的构造,必须出现在构造当中的第一行。

    this. 用来调用本类的属性和方法,可以出现在在非static的部分。super.用来调用父类已经父类继承而来的的属性和方法,出现在非static部分。

    如果this.出现在构造当中,代表正在构造或者即将构造成功的对象;如果出现在方法当中,代表该方法的调用对象,在不重名的情况下,this可以省略。this()不能用来自己调用自己。

    public class Sub extends Super{
    	public Sub(){                          //3
    		super(3);                            //4
    		System.out.println("sub1");          //7
    	}
    	public Sub(int a){                     //2
    		this();                              //3
    		System.out.println("sub2");          //8
    	}
    	public Sub(int a, String b){           //1
    		this(a);                             //2
    		System.out.println("sub3");          //9
    	}
    	public static void main(String[] args){
    		new Sub(5,"aa");                   //1
    	}
    }
    public class Super {
    	private String b;
    	private int a;
    	public Super(){
    		this(10, "superman");
    		System.out.println("super1");
    	}
    	public Super(int a){                 //4
    		this(a,"");                        //5
    		System.out.println("super2");      //6
    	}                                    //6
    	public Super(int a, String b){       //5
    		//等同于写了super();由于其父类已经是object,所以没有执行什么动作
    		System.out.println("super3");//5
    		this.a = a;                 //5
    		this.b = b;                 //5
    	}
    }
    


     

    展开全文
  • This和Super关键字

    2017-03-10 14:11:55
    this关键字必须放在非静态方法里面 this关键字代表自身,在程序中主要的使用用途有以下几个方面: ? 使用this关键字引用成员变量 ? 使用this关键字在自身构造方法内部引用其它构造方法 ? 使用this关键字代表自身...
  • this和Super关键字this和Super关键字的对比Super关键字的用法如下:1. super关键字代表了父类空间的引用;2. super关键字的作用:3. super关键字调用父类构造方法要注意的事项:this关键字的用法如下:1.了解没有 ...
  • javathis和super用法 this和 super 关键字的区别
  • this和super关键字,final关键字,静态static关键字this和super关键字关键字final修饰属性修饰局部变量修饰方法总结静态static关键字静态属性静态方法静态块非静态块总结 this和super关键字,关键字final,静态...
  • Java中的this和super关键字 (1) this关键字 this关键字指代的是当前对象。即:哪个对象调用就表示那个对象。 this关键字只能用在类中方法里面,用于访问成员变量,方法中的成员变量前面都默认有一个this。注意:...
  • this super 关键字的作用   this 是对象内部指代自身的引用,同时也是解决成员变量局部变量同 名问题;this 可以调用成员变量,不能调用局部变量;this 也可以调用成员 方法,但是在普通方法中可以省略 this,在...
  • this和super关键字的作用区别 this:是对象对自身的引用,没有继承也可以使用,调用本类的构造 super:对父类对象的引用,只能在继承条件下使用,调用父类的构造 super注意点: super调用父类的构造方法,必须在...
  • java中的this和super关键字 对象实例化时,至少有一条从本类出发抵达Object的通路,而打通这条路的两个主要关键字就是this和super。但是this和super往往是默默无闻的,在很多情况下可以省略,比如: 本类方法调用...
  • this和super关键字的区别用法 this关键字的三种用法: this可以访问本类的成员变量: this.成员变量 一般用来区分同名的成员变量局部变量 this可以访问本类的成员访问: this.成员方法名(实参); this可以访问本类的...
  • this和super关键字 this是自身的一个对象,代表对象本身可以理解为指代当前的对象,它可以调用当前对象的属性、方法构造方法,一般情况下可以省略,必须使用this的地方是区分出现名字重复的参数属性 与this...
  • java中this和super关键字 初学java的同学都知道,this代表当前对象自身,可以看作是当前对象的虚拟地址(尽管不是,当前可以这么理解).后面再做详细讲解. 很多初学java的同学都习惯性的直译super关键字,认为super关键字...

空空如也

空空如也

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

this和super关键字