this 和super 的用法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了this 和super 的用法相关的知识,希望对你有一定的参考价值。

this:用在区分成员变量和局部变量的  

         这里我们主要是讲this this.属性|方法 和this()的用法

         下面是this的用法:

          当成员变量和局部变量命名冲突,而局部变量优先级又高于成员变量,但是我们又想用成员变量,这时候就需要用到this

 例如:

class user{
      String name="a";                         // 这里的name是一个成员变量
      public void m(String name){  // 这里的name就是一个局部变量
      System.out.println(this.name); // 这里调用的就是成员变量  输出的结果就是 a;
    }
}


我们经常写的实体用set方法中的this 就是这个道理

例如:

   

class user{
    private String name;
        public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
        System.out.println(name);
    }
}


this()用法:

    在构造方法内部访问同一类中的其他构造方法,应在方法的首行通过this()或this(实参)调用

 注意:this() 必须放在第一行 

  例如:

class user{
	private String name;
	public user() {
		System.out.println("1111111");
	}
	public user(String name) { 
		this();   // 这里通过this() 来调用 user()无参构造方法
		System.out.println("2222222");
		this.name = name;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
		System.out.println(name);
	}
}

super: 是指在继承关系中,子类想用父类方法或属性,可以通过关键字 super来实现

   这里介绍 super super.属性 super.方法 和 super()

 super 用法:

  

public class Overload {
	public static void main(String[] args) {
		son f = new son();
		System.out.println(f.m());   // 调用m()方法
		System.out.println(f.name);  
	}
}
class father{
	String name = "zhangsan";
        public void n(){
		System.out.println("调用了father的n()方法");
	} 
}
class son extends father{
	String name ="lisi";
	public String m(){
             super.n(); 
	     return super.name;
	     // 这里super 调用的就是父类的属性name如果不写super 则是自身的属性name
	}
}

结果是:   调用了father的n()方法

              zhangsan  

              lisi 

super() 用法:

         子类构造方法中 来调用父类的构造方法 

例如:

class father{
	String name = "zhangsan";
	public father() {
	}
	public father(String name) {
		super();
		this.name = name;
	}
	
}
class son extends father{
	public son(){
		super("hello");
	}
}

注意:这里 super() 或 super(参数)  只能在构造方法中,而且是第一行使用。

        super() 和this() 不能同时出现在一个构造方法中


不足之处,多多指导!

本文出自 “11134439” 博客,请务必保留此出处http://11144439.blog.51cto.com/11134439/1905235

以上是关于this 和super 的用法的主要内容,如果未能解决你的问题,请参考以下文章

java中this和super的用法怎么用?

this和super关键字的常见三种用法

this和super关键字的常见用法

this和super关键字的常见用法

this和super关键字的常见用法

java中 this 和super的用法