package test;
public class ThisTest {
private int i=0;
//第一个构造器:有一个int型形参
ThisTest(int i){
this.i=i+1;//此时this表示引用成员变量i,而非函数参数i
System.out.println("Int constructor i——this.i: "+i+"——"+this.i);
System.out.println("i-1:"+(i-1)+"this.i+1:"+(this.i+1));
//从两个输出结果充分证明了i和this.i是不一样的!
}
// 第二个构造器:有一个String型形参
ThisTest(String s){
System.out.println("String constructor: "+s);
}
// 第三个构造器:有一个int型形参和一个String型形参
ThisTest(int i,String s){
this(s);//this调用第二个构造器
//this(i);
/*此处不能用,因为其他任何方法都不能调用构造器,只有构造方法能调用他。
但是必须注意:就算是构造方法调用构造器,也必须为于其第一行,构造方法也只能调
用一个且仅一次构造器!*/
this.i=i++;//this以引用该类的成员变量
System.out.println("Int constructor: "+i+" "+"String constructor: "+s);
}
public ThisTest increment(){
this.i++;
return this;//返回的是当前的对象,该对象属于(ThisTest)
}
public static void main(String[] args){
ThisTest tt0=new ThisTest(10);
ThisTest tt1=new ThisTest("ok");
ThisTest tt2=new ThisTest(20,"ok again!");
System.out.println(tt0.increment().increment().increment().i);
//tt0.increment()返回一个在tt0基础上i++的ThisTest对象,
//接着又返回在上面返回的对象基础上i++的ThisTest对象!
}
}
运行结果:
Int constructor i——this.i: 10——11
String constructor: ok
String constructor: ok again!
Int constructor: 21
String constructor: ok again!
14
注意:this不能用在static方法中!所以甚至有人给static方法的定义就是:没有this的方法!虽然夸张,但是却充分说明this不能在static方法中使用!
//1.super运用在构造函数中
class test1 extend test{
public test1()...{
super();//调用父类的构造函数
}
public test1(int x){
super(x);//调用父类的构造函数,因为带形参所以super 也要带行参
}
}
//2.调用父类中的成员
class test1 extend test{
public test1(){}
public f(){//假如父类里有一个成员叫g();
super.g();//super引用当前对象的直接父类中的成员
}
}
分享到:
相关推荐
super,this的区别super,this的区别
javathis和super用法 this和 super 关键字的区别
知道this有集中用法吗?this和super的区别呢?每个理论对应这实例。。可以边看边操作。。加油吧。。
静态方法,也就是类方法中不能有this和super关键字 1. 子类的构造函数如果要引用super的话,必须把super放在函数的首位. 复制代码 class Base { Base() { System.out.println("Base"); } } public ...
this:当前对象(new的对象|调用成员方法的对象) 1.调用本类中的其他构造器 this(参数列表) 2.区分局部和成员之间的问题 super:指代父类对象 1.调用父类的构造器 super() 如果没有显示定义...
java中this 与super的详解
对于java中this、super进行详细的解释
Java中的this和super的用法
static、this、super、final的JAVA用法
Java中的两个特殊变量this和super
Java中this和super的用法。本文很详尽的描述了两者的区别。并用代码例证。
详细描述了this和super的区别,看完必懂
java中this与super用法
Java中static、this、super、final用法.doc
this和super ,这两个变量在使用前都是不需要声明的.this变量使用在一个成员函数的内部,指向当前对象,当前对象指的是调用当前正在执行方法的那个对象.super变量是直接指向超类的构造函数,用来引用超类中的变量和方法....
初学java时对this和super的理解不是很容易
本篇旨在帮助准备学习Java以及刚接触Java的朋友认识、掌握和使用static、this、super、final这几个关键字的使用。Java博大精深,我也是一位正在学习和使用Java的爱好者,文中难免有不妥之处,欢迎指正。
Java中super的几种用法并与this的区别,有案例分析,可以拷贝到myeclipce中运行。
day09_12_super与this关键字图解
09.【继承、super、this、抽象类】;09.【继承、super、this、抽象类】;09.【继承、super、this、抽象类】;09.【继承、super、this、抽象类】