this关键字知识总结

学习资源:B站韩顺平老师Java入门教学

代码示例1

public class This01 {
public static void main(String[] args) {
Dog d1 = new Dog("小黄", 3);
d1.info();
System.out.println("对象d1的hashcode=:" + d1.hashCode());
System.out.println("---------------");
Dog d2 = new Dog("小花", 2);
d2.info();
System.out.println("对象d2的hashcode=:" + d2.hashCode());
}
}
class Dog {
int age;
String name;
// 根据变量的作用域原则,方法中的name与age实际指的是局部变量而不是成员变量
// public Dog(String name, int age) {
// name = name;
// age = age;
// }
// java虚拟机会给每个对象分配this,代表当前对象
public Dog(String name, int age) {
this.name = name;
this.age = age;
System.out.println("构造器中:this.hashcode=:" + this.hashCode());
}
public void info() {
System.out.println("狗狗名字叫:" + this.name + "\n年龄:" + this.age);
System.out.println("成员方法中:this.hashcode=:" + this.hashCode());
}
}

代码示例2

public class ThisDetail {
public static void main(String[] args) {
T t1 = new T();
t1.f2();
System.out.println("---------------");
T t2 = new T(10);
System.out.println("---------------");
T t3 = new T("小明", 10);
System.out.println(t1.name + "==" + t1.age);
System.out.println(t2.name + "==" + t2.age);
System.out.println(t3.name + "==" + t3.age);
}
}
class T {
int age;
String name;
// 细节1:访问成员方法的语法:this.方法名(参数列表);
public void f1() {
System.out.println("f1()方法..");
}
public void f2() {
System.out.println("f2()方法..");
// 在f2()中调用f1()
// 第一种方法
f1();
// 第二种方法
this.f1();
}
// 细节2:调用构造器语法:this(参数列表); 只能在构造器中使用,只能放在构造器的首句
T() {
this.name = "小李";
this.age = 18;
System.out.println("调用构造器1");
}
T(int age) {
this();
this.age = age;
System.out.println("调用构造器2");
}
T(String name, int age) {
this(age);
this.name = name;
System.out.println("调用构造器3");
}
}

注意事项与使用细节

  1. this关键字可以用来访问本类的属性、方法、构造器;
  2. this用于区分当前类的属性和局部变量;
  3. 访问成员方法的语法:this.方法名(参数列表);
  4. 访问构造器语法:this(参数列表); 注意:只能在构造器中使用,且需要为构造器中的首行;
  5. this不能在类定义的外部使用,只能在类定义的方法中使用

20220722-Java中this关键字的更多相关文章

  1. Java中的关键字 transient

    先解释下Java中的对象序列化 在讨论transient之前,有必要先搞清楚Java中序列化的含义: Java中对象的序列化指的是将对象转换成以字节序列的形式来表示,这些字节序列包含了对象的数据和信息 ...

  2. 【转】java中volatile关键字的含义

    java中volatile关键字的含义   在java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉. Java语言 ...

  3. Java中native关键字

    Java中native关键字 标签: Java 2016-08-17 11:44 54551人阅读 评论(0) 顶(23453) 收藏(33546)   今日在hibernate源代码中遇到了nati ...

  4. Java复习笔记--java中this 关键字

    Java中this关键字,this可以调用类的成员变量和成员方法,this还可以调用类中的构造方法.使用这种方式值得注意的是, 只可以在无参构造方法中的第一句使用this关键字调用有参构造方法. pu ...

  5. Java中this关键字的使用

    本文介绍了在Java中this关键字的作用于使用方法 当局部变量和成员变量重名时,在方法中使用this时,表示的是该方法所在类中的成员变量.(this指的是当前对象自己) 如:public class ...

  6. Java中this关键字在构造方法中的使用

    1. Java中this关键字代表对象本身.用this关键字可以在类的内部调用属性和方法,这样代码的可读性比较高,因为它明确的指出了这个属性或方法的来源. 2. 同时在构造函数中也可以使用this关键 ...

  7. 慕课网-安卓工程师初养成-2-1 Java中的关键字

    来源:http://www.imooc.com/code/1176 Java 中常用关键字: 问:这么多,记不住啊......-_-|| 答:现在不需要你记住所有,混个眼熟即可,在学习的过程中,你会逐 ...

  8. 转:java中volatile关键字的含义

    转:java中volatile关键字的含义 在java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉. Java语言 ...

  9. java中static关键字的作用

    java中static关键字主要有两种作用: 第一:为某特定数据类型或对象分配单一的存储空间,而与创建对象的个数无关. 第二,实现某个方法或属性与类而不是对象关联在一起 简单来说,在Java语言中,s ...

  10. Java中final关键字修饰变量、方法、类的含义是什么

    Java中的关键字final修饰变量.方法.类分别表示什么含义? 先看一个简单的介绍 修饰对象 解释说明 备注 类 无子类,不可以被继承,更不可能被重写. final类中的方法默认是final的 方法 ...

随机推荐

  1. 为什么 io 包一般以 byte 数组做为处理单位?

    为什么 io 包一般以 byte 数组做为处理单位? 本文写于 2021 年 9 月 7 日 编程语言中时常会出现 []byte 作为类型的操作.特别是在网络传输或是 io 操作中,例如 socket ...

  2. 什么叫做 Docker

    什么叫做 Docker 本文写于 2020 年 11 月 5 日 没有人会喜欢环境配置 在去年的时候我开始学习 Python,并利用 Python 制作了一些小工具.但问题是我很难让别人去用我的软件, ...

  3. 1903021121—刘明伟—Java第四周作业—java分支语句学习

    项目 内容 课程班级博客链接 19信计班(本) 作业要求链接 第四周作业 要求 每道题要有题目,代码(使用插入代码,不会插入代码的自己查资料解决,不要直接截图代码!!),截图(只截运行结果). 扩展阅 ...

  4. 好客租房25-react中的事件处理(事件对象)

    3.2事件对象 可以通过事件处理程序的参数 React中的事件对象叫做:合成事件(对象) 合成事件:兼容所有浏览器 //导入react     import React from 'react'   ...

  5. 每天一个 HTTP 状态码 103

    103 Early Hints 103 Earyly Hints 是被用于在最终 HTTP 消息前返回一些响应头,常和 HTTP Header: Link 一起使用,让客户端在服务器还在准备(当前的这 ...

  6. Property or method "xxx" is not defined on the instance but referenced during render

    是xxx中的data写成date了,因此报错. 这个错误属于粗心

  7. IOI2020 国家集训队作业 泛做

    题号 题目名称 rating 算法 完成情况 CF504E Misha and LCP on Tree CF505E Mr.Kitayuta vs. Bamboos CF506E Mr.Kitayut ...

  8. Kubernetes Job Controller 原理和源码分析(二)

    概述程序入口Job controller 的创建Controller 对象NewController()podControlEventHandlerJob AddFunc DeleteFuncJob ...

  9. 5. Docker compose

    把上图添加路径后,改成下图: 上图之后需要source /etc/profile #此命令重新加载环境变量文件. 在任意目录下输入docker-compose测试下,docker-compose是否安 ...

  10. c++ 超大整数除法 高精度除法

    c++ 超大整数除法 高精度除法 解题思路 计算a/b,其中a为大整数,b为普通整数,商为c,余数为r. 根据手算除法的规则,上一步的余数记为r,则本次计算的被除数为t=r*10+被除数的本位数值a[ ...