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/1905234
以上是关于this 和super 的用法的主要内容,如果未能解决你的问题,请参考以下文章