iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Java this关键字的使用详解
  • 877
分享到

Java this关键字的使用详解

2024-04-02 19:04:59 877人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录1. 先看一段代码,并分析问题2. 深入理解 this3. this 的注意事项和使用细节4. this 的案例1. 先看一段代码,并分析问题 public class

1. 先看一段代码,并分析问题

在这里插入图片描述

在这里插入图片描述


public class This01 {

    //编写一个main方法
    public static void main(String[] args) {

        Dog dog1 = new Dog("大壮", 3);
        //dog1调用了 info()方法
        dog1.info();

    }
}

class Dog{ //类

    String name;
    int age;
    // public Dog(String dName, int  dAge){//构造器
    // 	name = dName;
    // 	age = dAge;
    // }
    //如果我们构造器的形参,能够直接写成属性名,就更好了
    //但是出现了一个问题,根据变量的作用域原则
    //构造器的name 是局部变量,而不是属性
    //构造器的age  是局部变量,而不是属性
    //==> 引出this关键字来解决
    public Dog(String name, int  age){//构造器
        //this.name 就是当前对象的属性name
        this.name = name;
        //this.age 就是当前对象的属性age
        this.age = age;
    }

    public void info(){//成员方法,输出属性x信息
        System.out.println(name + "\t" + age + "\t");
    }
}

在这里插入图片描述

2. 深入理解 this

为了进一步理解 this,我们再看一个案例 (This01.java)

在这里插入图片描述

在这里插入图片描述

使用hashCode()看看对象的情况

在这里插入图片描述


public class This01 { 

	//编写一个main方法
	public static void main(String[] args) {

		Dog dog1 = new Dog("大壮", 3);
		System.out.println("dog1的hashcode=" + dog1.hashCode());
		//dog1调用了 info()方法
		dog1.info(); 

		System.out.println("============");
		Dog dog2 = new Dog("大黄", 2);
		System.out.println("dog2的hashcode=" + dog2.hashCode());
		dog2.info();
	}
}

class Dog{ //类

	String name;
	int age;

	public Dog(String name, int  age){//构造器
		//this.name 就是当前对象的属性name
		this.name = name;
		//this.age 就是当前对象的属性age
		this.age = age;
		System.out.println("this.hashCode=" + this.hashCode());
	}

	public void info(){//成员方法,输出属性x信息
		System.out.println("this.hashCode=" + this.hashCode());
		System.out.println(name + "\t" + age + "\t");
	}
}

在这里插入图片描述

3. this 的注意事项和使用细节

ThisDetail.java

  • this 关键字可以用来访问本类的属性、方法、构造器
  • this 用于区分当前类的属性和局部变量

public class ThisDetail {
    public static void main(String[] args) {
        T t = new T();
        t.f3();
    }
}

class T{

	String name = "兮动人";
    int num = 10;
    
	//this关键字可以用来访问本类的属性
	public void f3(){
	      String name = "smith";
	      //传统方式
	      System.out.println("name=" + name + " num=" + num);//smith  100
	      //也可以使用this访问属性
	      System.out.println("name=" + this.name + " num=" + this.num);//jack 100
	}
}	    

在这里插入图片描述

访问成员方法的语法:this.方法名(参数列表);


public class ThisDetail {
    public static void main(String[] args) {
        T t1 = new T();
        t.f2();
    }
}

class T	{
    public void f1(){
        System.out.println("f1()方法...");
    }
    public void f2(){
        System.out.println("f2()方法...");
        //调用本类的 f1
        //第一种方式
        f1();
        //第二种方式
        this.f1();
    }
}

在这里插入图片描述

访问构造器语法:this(参数列表); 注意只能在构造器中使用(即只能在构造器中访问另外一个构造器, 必须放在第一条语句)


public class ThisDetail {
    public static void main(String[] args) {

        T t2 = new T();
    }
}

class T{
    
    public T(){
        //这里去访问 T(String name,int age)构造器,必须放在第一行
        this("Jack", 23);
        System.out.println("T()构造器");

    }

    public T(String name,int age){
        System.out.println("T(String name,int age)构造器");
    }

}

在这里插入图片描述

this 不能在类定义的外部使用,只能在类定义的方法中使用。

4. this 的案例

TestPerson.java

定义 Person 类,里面有 name、age 属性,并提供 compareTo 比较方法,用于判断是否和另一个人相等,提供测试类 TestPerson 用于测试, 名字和年龄完全一样,就返回 true, 否则返回 false


public class TestPerson { 

	//编写一个main方法
	public static void main(String[] args) {

		Person p1 = new Person("mary", 20);
		Person p2 = new Person("mary", 20);

		System.out.println("p1和p2比较的结果=" + p1.compareTo(p2));
	}
}


class Person {
	String name;
	int age;
	//构造器
	public Person(String name, int age) {
		this.name = name;
		this.age = age;
	}
	//compareTo比较方法
	public boolean compareTo(Person p) {
		//名字和年龄完全一样
		// if(this.name.equals(p.name) && this.age == p.age) {
		// 	return true;
		// } else {
		// 	return false;
		// }
		return this.name.equals(p.name) && this.age == p.age;
	}
}

在这里插入图片描述

把名字或年龄改成其他不同数据

在这里插入图片描述

到此这篇关于Java this关键字的使用详解的文章就介绍到这了,更多相关Java this内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Java this关键字的使用详解

本文链接: https://www.lsjlt.com/news/156512.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java this关键字的使用详解
    目录1. 先看一段代码,并分析问题2. 深入理解 this3. this 的注意事项和使用细节4. this 的案例1. 先看一段代码,并分析问题 public class ...
    99+
    2022-11-12
  • Java this关键字的使用案例详解
    目录Boy类Girl类BoyGirlTest类总结通过一个小案例来学习、理解一下this关键字的使用~~~ Boy类 package myjava1; public class B...
    99+
    2022-11-12
  • Java关键字之this用法详解
    目录一. this关键字1. 简介2. 作用二. 代码案例1. 代表当前类对象2. 调用类中的属性3. 调用类中的方法4. 调用类的构造方法三. 结语一. this关键字 1. 简介...
    99+
    2023-05-19
    Java this关键字 Java关键字 Java this
  • Java中this和super关键字的使用详解
    目录父类空间优先于子类对象产生super和this的含义super和this的用法继承的特点父类空间优先于子类对象产生 在每次创建子类对象时,先初始化父类空间,再创建其子类对象本身。...
    99+
    2022-11-13
    Java this super关键字 Java this关键字 Java super关键字
  • Java关键字this与super详解用法
    目录一、this 关键字的使用1. 概述2. 作用3. 使用3.1 修饰属性和方法3.2 调用构造器3.3 返回当前对象二、super关键字的使用1. 概述2. 使用3. 使用3.1...
    99+
    2022-11-13
  • Java中super和this关键字详解
    目录父类空间优先于子类对象产生super和this的含义super和this的用法继承的特点父类空间优先于子类对象产生 在每次创建子类对象时,先初始化父类空间,再创建其子类对象本身。...
    99+
    2022-11-13
  • js中的this关键字详解
    this是Javascript语言的一个关键字。 它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用。比如, 复制代码 代码如下:   function test(){  ...
    99+
    2022-11-15
    js this关键字
  • java中this关键字的详细使用介绍
    this 的使用:修饰属性和方法,也可以理解为当前对象 this 调用构造器: 1.我们在类的构造器里,可以使用,调用本类中指定的其他构造器 2.构造器中不能通过”thi...
    99+
    2022-11-12
  • Java关键字详解之final static this super的用法
    目录1. final 关键字:2. static 关键字:3. this 关键字:4. super 关键字:final,static,this,super 关键字总结 正文开始@A...
    99+
    2022-11-12
  • JavaScript中的this关键字用法详解
    目录this的绑定call与apply当方法失去主语的时候,this不再有?不可见的调用总结先举一个生活例子: 小明正在跑步,他看起来很开心 这里的小明是主语,如果没有这个主语,那么...
    99+
    2023-05-19
    JavaScript this关键字 JavaScript 关键字 JavaScript this
  • Java的this关键字用法
    本篇内容主要讲解“Java的this关键字用法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java的this关键字用法”吧!一、this关键字的作用this关键字除了可以强调本类中的方法还具有...
    99+
    2023-06-20
  • Java类中this关键字与static关键字的用法解析
    目录前言1:修饰属性,表示调用类中的成员变量。2:this修饰方法3:this表示当前对象的引用前言 今天给大家总结介绍一下Java类中this关键字和static关键字的用法。 t...
    99+
    2022-11-13
  • Java中的this关键字
    介绍 this关键字用于引用当前实例,在Java语言中,当创建一个对象后,Java虚拟机就会为其分配一个指向对象本身的指针,这个指针就是“this”。 Java关键字this只能用于方法方法体内,在类...
    99+
    2023-10-20
    java 开发语言
  • Java基础之this关键字的使用
    一、this关键字的作用 this关键字除了可以强调本类中的方法还具有以下作用。 1.表示类中的属性 2.可以使用关键字调用本类中的构造方法 3.this表示当前对象 1.1表示类中...
    99+
    2022-11-12
  • java中this关键字怎么使用
    这篇文章主要介绍了java中this关键字怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇java中this关键字怎么使用文章都会有所收获,下面我们一起来看看吧。this 的使用:修饰属性和方法,也可以理...
    99+
    2023-06-26
  • Java super关键字的使用详解
    目录1.super介绍2.super的基本使用3.子类和父类方法的调用细节4.super和this的区别1.super介绍 我们可以通过super关键字来实现对父类成员的访问,用来引...
    99+
    2022-11-13
  • 【Java 基础】构造方法和 this 关键字详解
    《Java 零基础入门到精通》专栏持续更新中。通过本专栏你将学习到 Java 从入门到进阶再到实战的全套完整内容,所有内容均将集中于此专栏。无论是初学者还是有经验的开发人员,都可从本专栏获益。 订阅专栏后添加我微信或者进交流群,...
    99+
    2023-08-16
    java 开发语言 后端 jvm
  • java方法及this关键字原理分析详解
    目录步骤1 、给顾客增加一个吃饭的方法步骤 2 、 没有加static的属性和方法,一定需要先new对象步骤 3 、 用new出来的对象去执行eat方法步骤 4 、 怎么理解c.ea...
    99+
    2022-11-12
  • this关键字如何在Java中使用
    今天就跟大家聊聊有关this关键字如何在Java中使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。我们通常在用Java中的this关键字的时候,都知道this是代表正在调用这个类的...
    99+
    2023-05-31
    java 关键字 this
  • Java this关键字的使用方法有哪些
    这篇文章主要介绍“Java this关键字的使用方法有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java this关键字的使用方法有哪些”文章能帮助大家解决问题。Boy类...
    99+
    2023-06-26
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作