Java面向对象中 this关键字的详解

简介: Java面向对象中 this关键字的详解

一、this关键字的使用:

  1. this可以用来修饰:属性,方法,构造器
  2. this修饰属性和方法:
    this理解为:当前对象 或当前正在创建的对象

2.1在类的方法中,我们可以使用“this.属性”或者“this.方法”的方式,调用当前对象属性或者方法,但是通常情况下,我们都选择省略“this.”。特殊情况下,如果方法的形参和类的属性同名时,我们必须显示的使用"this.变量"的方式,表示此变量是属性,而非形参。

2.1在类的构造器中,我们可以使用“this.属性”或者“this.方法”的方式,调用当前正在创建的对象属性或者方法,但是通常情况下,我们都选择省略“this.”。特殊情况下,如果方法的形参和类的属性同名时,我们必须显示的使用"this.变量"的方式,表示此变量是属性,而非形参。

具体代码如下:

public class ThisDetail {
    public static void main(String[] args) {
        T t = new T();
        t.f2();
        t.f3();
    }
}
class T {
    String name = "smith";
    int num = 100;
    /**
     * 注意:访问构造器:this(参数列表);必须放置到第一个语句
     */
    public T() {
        this("jack", 18);
        System.out.println("T()构造器被调用...");
    }
    public T(String name, int age) {
        System.out.println("T(String name,int age) 构造器");
    }
    //this关键字可以用来访问本类的属性
    public void f3() {
        String name = "jack";
        //传统方式
        System.out.println("name=" + name + " num=" + num); //jack 100
        //也可以使用this访问属性
        System.out.println("name=" + this.name + " num=" + this.num);//smith 100
    }
    public void f1() {
        System.out.println("f1()方法...");
    }
    public void f2() {
        System.out.println("f2()方法...");
        //调用本类的f1
        //第一种方式
        f1();
        //第二种方式
        this.f1();
    }
}

输出结果如下:

T(String name,int age) 构造器
T()构造器被调用...
f2()方法...
f1()方法...
f1()方法...
name=jack num=100
name=smith num=100


目录
相关文章
|
4天前
|
Java 编译器
封装,继承,多态【Java面向对象知识回顾①】
本文回顾了Java面向对象编程的三大特性:封装、继承和多态。封装通过将数据和方法结合在类中并隐藏实现细节来保护对象状态,继承允许新类扩展现有类的功能,而多态则允许对象在不同情况下表现出不同的行为,这些特性共同提高了代码的复用性、扩展性和灵活性。
封装,继承,多态【Java面向对象知识回顾①】
|
2天前
|
Java
java中面向过程和面向对象区别?
java中面向过程和面向对象区别?
11 4
|
4天前
|
Java
接口和抽象类【Java面向对象知识回顾②】
本文讨论了Java中抽象类和接口的概念与区别。抽象类是不能被实例化的类,可以包含抽象和非抽象方法,常用作其他类的基类。接口是一种纯抽象类型,只包含抽象方法和常量,不能被实例化,且实现接口的类必须实现接口中定义的所有方法。文章还比较了抽象类和接口在实现方式、方法类型、成员变量、构造方法和访问修饰符等方面的不同,并探讨了它们的使用场景。
接口和抽象类【Java面向对象知识回顾②】
|
19天前
|
安全 Java Go
面向对象程序设计语言:Java
Java语言语法和C语言和C++语言很接近,很容易学习和使用,Java丢弃了C++中很少使用的、很难理解的、令人迷惑的特性,Java语言不使用指针,而是引用,并提供了自动分配和回收内存空间,使得程序员不必为内存管理而担忧
34 2
|
7天前
|
Java 开发者
Java 面向对象
Java 是一种面向对象的编程语言,通过对象与类的概念组织代码和数据。面向对象编程的核心包括类、对象、继承、多态、封装和抽象。类是对象的蓝图,定义了属性和行为;对象则是类的实例。继承允许子类继承父类的属性和方法,增强代码复用性;多态则支持通过相同接口调用不同类型对象的行为,包括方法重载和重写。封装通过公共方法隐藏对象细节,提高安全性;抽象则对对象特征进行提炼,通过抽象类和接口实现。理解这些概念有助于设计高效、可维护的 Java 应用程序。
|
15天前
|
Java 开发者
Java编程之旅:探索面向对象的力量
【9月更文挑战第16天】在编程的世界中,Java以其强大的面向对象编程特性而闻名。本文将带你走进Java的世界,一起探索类与对象的奥秘,学习如何通过封装、继承和多态性构建健壮的软件系统。无论你是初学者还是有经验的开发者,本文都旨在提供实用的代码示例,帮助你提升Java技能。准备好开始这段旅程了吗?让我们启程吧!
|
2月前
|
存储 Java 数据库连接
Java编程之旅:从基础到高级,探索面向对象的力量
【8月更文挑战第31天】本文是一篇深入浅出的Java编程指南,旨在通过生动的例子和实际代码演示,带领读者从Java的基础语法起步,逐步深入到面向对象的核心概念,最后探讨如何在实际项目中应用这些知识。无论你是编程新手还是有一定经验的开发者,这篇文章都将为你提供有价值的见解和实用的技巧。
|
5月前
|
Java
Java中的this关键字
Java中的this关键字
45 1
|
5月前
|
Java
Java的this关键字的使用
Java的this关键字的使用
|
5月前
|
Java API
深入理解Java中的this关键字
深入理解Java中的this关键字
42 0