`
huiqinbo
  • 浏览: 344776 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

super和this比较[回钦波]

F# 
阅读更多

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引用当前对象的直接父类中的成员
    }
}

 

分享到:
评论

相关推荐

    javathis和super用法 this和 super 关键字的区别

    在Java编程语言中,`this`和`super`是两个非常重要的关键字,它们在面向对象编程中扮演着不可或缺的角色。正确理解和使用这两个关键字对于编写高质量、易于维护的Java代码至关重要。 #### 二、`this`关键字详解 ##...

    Java中的this和super的用法 

    Java 中的 this 和 super 的用法 Java 中的 this 和 super 是两个非常重要的关键字,它们都是用来访问对象的成员变量和方法的。下面我们将详细地讨论这两个关键字的用法和区别。 一、基础知识 1. super(参数):...

    this和super的异同点

    知道this有集中用法吗?this和super的区别呢?每个理论对应这实例。。可以边看边操作。。加油吧。。

    Java中this与super的用法

    Java 中的 this 和 super 是两个非常重要的关键字,它们都是用来访问对象或父类的成员变量或方法的。下面我们将详细地讲解它们的用法和区别。 首先,让我们来看一下 this 关键字。this 关键字是用来访问当前对象的...

    Java中this与super的区别

    静态方法,也就是类方法中不能有this和super关键字 1. 子类的构造函数如果要引用super的话,必须把super放在函数的首位. 复制代码 class Base { Base() { System.out.println("Base"); } } public ...

    Java中两个非常特殊的变量:this和super

    在Java编程语言中,`this`和`super`是两个非常关键的特殊变量,它们提供了在类和对象间导航的能力。这两个关键字无需提前声明,它们各自有着特定的用途。 首先,`this`关键字用于引用当前对象。在成员函数内部,`...

    super和this之间的区别.docx

    在Java编程语言中,`super` 和 `this` 是两个非常重要的关键字,它们分别用于处理对象间的关联和访问。理解这两个关键字的区别对于编写高效的代码至关重要。 `this` 关键字代表当前对象,它指的是创建或正在执行...

    java中this 与super的详解

    java中this 与super的详解

    java中this与super用法

    在 Java 中,this 和 super 是两个重要的关键字,它们都是用于访问当前对象或父类中的成员变量或方法的。 this 用法 this 的用法在 Java 中大体可以分为三种: 1. 普通的直接引用 在类的成员方法中,可以使用 ...

    static、this、super、final的JAVA用法

    Java 中 static、this、super、final 的用法 静态方法(static method)是一种特殊的方法,它可以在不需要创建对象的情况下被调用。Java 中的静态方法使用 static 关键字来修饰,例如 public static void main...

    Java中static、this、super、final用法

    在Java编程语言中,`static`, `this`, `super`, 和 `final` 是四个非常重要的关键字,它们分别代表不同的概念并具有特殊的用法。 一、`static` `static` 关键字用于声明类级别的成员(变量或方法),这意味着它们...

    Java中static、this、super、final用法简谈

    Java中的`static`、`this`、`super`和`final`是四个非常重要的关键字,它们在编程中扮演着至关重要的角色。这篇文章将简要介绍这些关键字的基本用法及其应用场景。 1. **static** `static`关键字用于声明类级别的...

    java中的this和super

    ### Java中的this和super #### 一、引言 在Java编程中,`this` 和 `super` 是两个非常重要的关键字,它们可以帮助我们更清晰地处理类中的成员变量和方法,尤其是在面向对象编程中,正确理解和使用这两个关键字对于...

    Java中super的几种用法并与this的区别

    在Java编程语言中,`super`关键字用于引用当前对象的父类实例,它主要用于访问父类的成员变量和方法。本文将深入探讨`super`的几种用法,并对比`this`...`super`和`this`的区别在于前者指向父类,后者指向当前类实例。

    Java_this_super.zip_super

    在Java编程语言中,`this`和`super`是两个非常关键的关键词,它们在类的继承机制中扮演着至关重要的角色。`this`关键字主要用于当前对象的引用,而`super`关键字则用于访问父类的成员。让我们深入探讨这两个概念以及...

    this和super

    在 Java 编程语言中,`this` 和 `super` 是两个非常重要的关键字,它们都是特殊的引用变量,用于处理对象间的关系。下面我们将详细讲解这两个关键字的用途、使用场景以及如何在实际编程中有效地利用它们。 一、`...

    this 和 super

    在Java编程语言中,“this”和“super”是两个非常重要的关键字,它们在面向对象编程中扮演着核心角色。本文将深入探讨这两个关键字的概念及其应用场景,帮助读者更好地理解并运用它们。 #### 二、“this”关键字...

Global site tag (gtag.js) - Google Analytics