首页 > 其他分享 >this关键字

this关键字

时间:2024-08-15 18:50:47浏览次数:10  
标签:调用 对象 value Example 关键字 7.4 public

7.4 this关键字


目录

this 关键字在Java中有多种用法,主要用来引用当前对象。以下是this关键字的五种常见用法:

7.4.1 引用当前对象的实例变量:

当方法的参数名与实例变量名相同时,可以使用this关键字来区分它们。this引用当前对象的实例变量。

public class Example {
    private int value;

    public Example(int value) {
        this.value = value; // this.value refers to the instance variable
    }
}

7.4.2 调用当前对象的方法:

可以使用this关键字来调用当前对象的另一个方法。

public class Example {
    public void method1() {
        System.out.println("Method1");
    }

    public void method2() {
        this.method1(); // calls method1 of the current object
    }
}

7.4.3 调用当前对象的构造方法:

在一个构造方法中可以使用this关键字调用同一个类中的另一个构造方法。这通常用于构造方法重载中以避免代码重复。

public class Example {
    private int value;
    private String text;

    public Example(int value) {
        this(value, "default"); // calls the other constructor
    }

    public Example(int value, String text) {
        this.value = value;
        this.text = text;
    }
}

7.4.4 返回当前对象:

this关键字可以用来返回当前对象的引用,通常用于方法链(method chaining)。

public class Example {
    private int value;

    public Example setValue(int value) {
        this.value = value;
        return this; // returns the current object
    }
}

public static void main(String[] args) {
    Example example = new Example().setValue(5);
}

7.4.5 作为参数传递当前对象:

可以将当前对象作为参数传递给其他方法或构造函数。

public class Example {
    public void display() {
        System.out.println("Display method");
    }
}

public class AnotherClass {
    public void execute(Example example) {
        example.display(); // calls the display method of the passed Example object
    }

    public static void main(String[] args) {
        Example example = new Example();
        new AnotherClass().execute(example); // passing current object as parameter
    }
}

通过这些用法,this关键字在Java中提供了一种方便的方式来引用当前对象,并处理实例变量、方法调用、构造方法重载等情况。

7.4.6 this实现链式调用

链式调用(Method Chaining)是一种编程风格,允许在单个语句中连续调用多个方法。通过使用this关键字返回当前对象的引用,可以实现链式调用。这种风格使代码更简洁、更易读。

以下是一个实现链式调用的示例:

public class Person {
    private String name;
    private int age;
    private String address;

    public Person setName(String name) {
        this.name = name;
        return this; // 返回当前对象以便进行链式调用
    }

    public Person setAge(int age) {
        this.age = age;
        return this; // 返回当前对象以便进行链式调用
    }

    public Person setAddress(String address) {
        this.address = address;
        return this; // 返回当前对象以便进行链式调用
    }

    @Override
    public String toString() {
        return "Person{name='" + name + "', age=" + age + ", address='" + address + "'}";
    }

    public static void main(String[] args) {
        Person person = new Person()
            .setName("John Doe")
            .setAge(30)
            .setAddress("123 Main St");

        System.out.println(person); // 输出:Person{name='John Doe', age=30, address='123 Main St'}
    }
}

在这个示例中,Person类有三个方法:setNamesetAgesetAddress。每个方法都返回this,即当前对象的引用,从而允许在方法调用后继续调用其他方法。这种方式称为链式调用,可以使代码更加简洁和连贯。

执行结果将是:

Person{name='John Doe', age=30, address='123 Main St'}

通过链式调用,可以在一行代码中连续设置多个属性,避免了多行代码的冗余。这在构建器模式(Builder Pattern)中也非常常见,用于创建复杂对象时简化代码。

标签:调用,对象,value,Example,关键字,7.4,public
From: https://www.cnblogs.com/hweiling/p/18361594

相关文章

  • linux 同时tail 多个文件并过滤多个关键字
    多个文件  过滤多个关键字或的关系tail-fcdc-adapter/err_cdc-adapter.logcdc-admin/err_cdc-adapter.logcdc-dpm/err_cdc-dpm.logcdc-extractor/err_cdc-extractor.log|grep-E'.log|ERROR'==>cdc-adapter/err_cdc-adapter.log<==[2024-08-1514:59:25.905......
  • C++关键字static
    1.静态成员变量:当static关键字用于类的成员变量时,意味着这个变量是类的所有实例共享的。无论类实例有多少个,静态成员变量只有一个副本。静态成员变量经常用于存储类的公共数据,如配置选项或计数器。classMyClass{public:staticintcount;//静态成员变量};intMyCl......
  • MySQL——删除数据(三)使用关键字 TRUNCATE 删除表中数据
        在MySQL数据库中,还有一种方式可以用来删除表中所有的记录,这种方式需要用到一个关键字TRUNCATE,其语法格式如下:TEUNCATE[TABLE]表名        TRUNCATE的语法格式很简单,只需要通过“表名”指定要执行删除操作的表即可。下面通过一个案例来演示TRUN......
  • 11、java程序流程控制之三:循环结构(while循环)、循环结构(do-while循环)、break 与 co
    java程序流程控制之三:Ⅰ、循环结构:while循环1、while循环结构:其一、描述:其二、代码为:其三、截图为:Ⅱ、循环结构:do-while循环1、do-while循环结构:其一、描述:其二、代码为:其三、截图为:2、do-while循环结构的案例1:输出正数或负数的个数其一、描述:其二、代码为:其三、......
  • 企业网站选择关键字的妙招
    企业网站在一开始不要选择优化难度高的关键字。企业网站建设过程是一个循序渐进的过程。一般来说,企业网站刚开始建设的时候,关键字不要想着一步到位,而是要在网站运营过程中,结合优化策略慢慢调整和扩展。而且选择关键字的时候不要选择那些竞争程度比较高的关键字,因为那些关键字对网......
  • 帝国CMS列表页面调用关键字TAG的方法
    $nsmalltext=$r[smalltext];$ntext=strip_tags($nsmalltext);//去除内容简介里的HTML标签$newtext=esub($ntext,100,&#39;...&#39;);//限制100字$keyboard=$r[keyboard];$r_tag=explode(",",$keyboard);$tempid=1;//这里是搜索模板IDfor($i=0;$i<count($r_tag);$i++)......
  • C/C++ 知识点:using 关键字
    文章目录一、using关键字1、命名空间别名和成员访问2、类型别名3、继承中的`using`声明4、模板别名5、模板中的`using`声明6、总结前言:C++中的using关键字是一个功能丰富的工具,它主要用于命名空间、类型别名、继承以及模板编程中。下面将详细介绍using关键字的几......
  • synchronized 关键字
    1synchronized关键字的作用互斥访问:当一个线程获得了由synchronized修饰的方法或代码块的锁后,其他线程必须等待该锁被释放才能继续执行。这种机制保证了同一时间只有一个线程可以执行被synchronized修饰的代码段。可见性:synchronized关键字确保了当一个线程修改了......
  • C#多线程并发编程深度探索:解锁async、await、Task与lock等关键字的奥秘
    一、多线程介绍1.什么是多线程多线程是指在一个应用程序中同时执行多个线程的能力。每个线程都是独立运行的,拥有自己的执行路径和资源。多线程编程能够充分利用多核处理器的计算能力,提高应用程序的性能和响应性,特别是在处理耗时任务和并行计算时效果显著。在C#中,线程是程序......
  • Java进阶篇之super关键字
    引言在前面的文章中,我们介绍了继承的相关概念(Java进阶篇之继承的概念),在Java继承机制中,super关键字是一个重要的工具,用于访问父类的属性和方法,特别是在子类覆盖了父类的成员时。通过使用super,子类可以调用父类的构造方法,访问父类的成员变量和方法,这在继承层次中至关重要。本......