Java基础知识之this关键字知识讲解
this关键字
这里对java中this关键字的基础知识进行讲解,希望对热爱java的小伙伴有帮助!!
/*
this关键字代表了所属函数的调用者对象。 this关键字的作用:
1. 如果存在同名成员变量与局部变量时,在方法内部默认是访问局部变量的数据,可以通过this关键字指定访问成员变量的数据。
2. 在一个构造函数中可以调用另外一个构造函数初始化对象。 this关键字调用其他的构造函数要注意的事项:
1. this关键字调用其他的构造函数时,this关键字必须要位于构造函数中的第一个语句。
2. this关键字在构造函数中不能出现互相调用的情况,因为是一个死循环。 this关键字要注意的事项:
1. 存在同名的成员变量与局部变量时,在方法的内部访问的是局部变量(java采取的是“就近原则”的机制访问的)。
2. 如果在一个方法中访问了一个变量,该变量值存在成员变量的情况下,那么java编译器会在该变量的前面添加this关键字。 this关键字调用其他的构造函数要注意的事项:
1. this关键字调用其他的构造函数时,this关键字必须要位于构造函数中的第一个语句。
2. this关键字在构造函数中不能出现互相调用的情况,因为是一个死循环。
*/ //this关键字实例
class Student{
int id; //身份证
String name; //名字 //目前情况: 存在同名的成员变量与局部变量,在方法内部是使用局部变量的。
public Student(int id, String name) { //一个函数的形式参数也是属于局部变量。
//调用了本类的一个参数的构造方法
//this(name);//如果能在这里调用到下面一个参数的构造方法时,那就可以解决重复代码的问题。
this(); //调用了本类的无参的构造方法。
this.id = id; //this.id = id; 局部变量的id给成员变量的id赋值。
System.out.println("两个参数的构造方法调用了...");
} public Student() {
System.out.println("无参的构造方法被调用了...");
} public Student(String name) {
this.name = name;
//System.out.println("一个参数的构造方法被调用了...");
}
} public class Demo1 { public static void main(String[] args) {
Student s = new Student(110, "铁蛋");
System.out.println("编号: "+s.id+" 名字: "+s.name); Student s2 = new Student("金胖子");
System.out.println("名字: "+s2.name);
}
}
原文章:https://blog.csdn.net/qq_49529322/article/details/112085700
Java基础知识之this关键字知识讲解的更多相关文章
- java基础(2):注释、关键字、标识符、数据
1. 注释.关键字与标识符 大家可以安装一个文本编辑软件notepad++,有利于java代码的查看与编写. 1.1 程序注释 通常我们需要在源代码中添加文字用来对进行代码解释说明,但这些文字并不是J ...
- Java 基础(6)——关键字 & 标识符 & 转义字符
依然是基础的一天,看一看就好~ 关键字 之前就有说过关键字哦~ 注:关键字就是程序发明者规定的有特殊含义的单词. from Java基础(2) Java 中除了关键字以外还有暂时没有成为关键字的保留字 ...
- Java基础—private、this关键字及get/set方法
Java基础-private\this关键字以及get\set方法 1.private关键字 private关键字通常用来修饰成员变量用来保护原有数据的安全,比如在下面学生类中 然后在测试类中调用成员 ...
- java基础56 HTML5的标签知识(网页知识)
本文知识点(目录): 1.html常用标签 2.html实体标签 3.html媒体标签 4.html超链接标签 5.html图片标签 6.html标个标签 7.html框 ...
- Java基础笔记之String相关知识
(二)String Sring 被声明为 final ,因此不可被继承. String的不可变性: 看String的定义(java9版本): public final class String imp ...
- 重学JAVA基础(八):锁的基本知识
1.线程状态 如上图,当我们新建一个线程,并start后,其实不一定会马上执行,因为只有操作系统调度了我们的线程,才能真正进行执行,而操作系统也随时可以运行其他线程,这时线程又回到可运行状态.这个过程 ...
- Java基础——关于jar包的知识
在学习jar包之前,要先弄懂Java包,以及关于Java包的相关概念. 一.包 为了更好地组织类,Java提供了包机制.包是类的容器,用于分隔类名空间.如果没有指定包名,所有的示例都属于一个默认的无名 ...
- Java 基础:认识&理解关键字 native 实战篇
Writer:BYSocket(泥沙砖瓦浆木匠) 微博:BYSocket 豆瓣:BYSocket 泥瓦匠初次遇见 navicat 是在 java.lang.Object 源码中的一个hashCode方 ...
- Java基础_0309:this关键字
this简介 在Java中this可以完成三件事情:表示本类属性.表示本类方法.当前对象(只是先介绍概念) 调用本类属性 在一个类中定义的方法中可以直接访问类中的属性,但是很多时候有可能会出现方法参数 ...
随机推荐
- androguard安装和体验
安装步骤按照官方教程https://code.google.com/p/androguard/wiki/Installation,下面记录下无法在ubuntu下apt-get的模块: python模块 ...
- thinkphp 中区块block和模板继承extend用法举例
1.介绍 模板继承其实并不难理解,就好比类的继承一样,模板也可以定义一个基础模板(或者是布局),并且其中定义相关的区块(block),然后继承(extend)该基础模板的子模板中就可以对基础模板中定义 ...
- 【转】风控中的特征评价指标(二)——PSI
转自:https://zhuanlan.zhihu.com/p/79682292 风控业务背景 在风控中,稳定性压倒一切.原因在于,一套风控模型正式上线运行后往往需要很久(通常一年以上)才会被替换下线 ...
- VS2017报错 由#define后的分号引发的【“ 应输入“)】
其实并不是第十行分号出现了问题,而是由于在宏定义后面加了分号,修改成这样即可 一开始竟然没看出来--甚至以为是VS中出现"宏可以转换为constexpr"问题--下次要仔细--
- IOC随笔小记录
对IOC的一点学习笔记 IOC (Inversion of Control):控制反转 DI (Dependency Injection):依赖注入 1.在没有使用IOC的情况下是如何进行的 在Use ...
- Java安全之Filter权限绕过
Java安全之Filter权限绕过 0x00 前言 在一些需要挖掘一些无条件RCE中,大部分类似于一些系统大部分地方都做了权限控制的,而这时候想要利用权限绕过就显得格外重要.在此来学习一波权限绕过的思 ...
- 记一次golang内存泄露
记一次golang内存泄露 最近在QA环境上验证功能时,发现机器特别卡,查看系统内存,发现可用(available)内存仅剩200多M,通过对进程耗用内存进行排序,发现有一个名为application ...
- 通过Dapr实现一个简单的基于.net的微服务电商系统(十四)——开发环境容器调试小技巧
之前有很多同学提到如何做容器调试,特别是k8s环境下的容器调试,今天就讲讲我是如何调试的.大家都知道在vs自带的创建项目模板里勾选docker即可通过F5启动docker容器调试.但是对于启动在k8s ...
- centos7安装powershell和powercli
poershell github https://github.com/PowerShell/PowerShell/releases 本次采用github下载对应的rpm进行安装 windows下安装 ...
- QTableWidget - 基础讲解(2) 样式、右键菜单、表头塌陷、多选等
转载:https://www.cnblogs.com/zhoug2020/p/3789076.html 在Qt的开发过程中,时常会用到表单(QTableWidget)这个控件,网上的资料不少,但是都是 ...