为了程序的可读性,通常将一个类中的表示同一属性的变量进行统一的命名。可是这样做又会导致成员变量与局部变量名字冲突导致无法訪问成员变量。为了解决问题,java中引入了this这个keyword!所以this 的作用就是用于在方法中訪问对象的其它成员!

thiskeyword有下面三种常见使用方法:

1)通过thiskeyword能够明白的訪问成员变量。解决与局部变量重名的矛盾!

(成员变量与局部变量冲突的时候)

class Student{
int id;
public Student(int id){
this.id=id;
}
public int getId(){
return this.id;
}
}

构造方法中的參数是id,它是一个局部变量与成员变量id重名。

通常在构造方法中使用this.id訪问成员变量,通过id訪问构造方法中的内部变量!

2)通过this keyword能够调用成员方法!

(多个成员方法的时候)

class Person{
public void eat{
...
}
public void behavior{
this.eat();
...
}
}

在一个类中有多个成员方法的时候,通过thiskeyword能够方便的实如今一个成员方法中调用还有一个成员方法!

3)构造方法是在实例化对象的时候被java虚拟机自己主动调用的。在程序中无法像调用一般成员方法一样调用构造方法。可是能够通过在一个构造方法中使用this(參数1。參数2,參数3。。。)的形式来调用其它的构造方法。(多个构造方法的时候)

class Student{
public Student(){
System.out.print("訪问了无參构造方法! ");
}
public Student(String id){
this();
System.out.println("訪问了有參构造方法。");
}
}
public class eg{ public static void main(String[] args){
Student s=new Student(3);//实例化对象的时候
}
}

可是使用第三种的时候须要注意一些问题:

<1> this()的调用必须放在第一行,并且仅仅能出现一次。

<2>this()的调用仅仅能是在构造方法中调用还有一个构造方法,不能再成员方法中调用构造方法。

<3>不能在一个类的两个构造方法中使用this互相调用!这样叫easy造成死循环!

java基础 this keyword!的更多相关文章

  1. 2 Java基础语法(keyword,标识符,凝视,常量,进制转换,变量,数据类型,数据类型转换)

    1:keyword(掌握) (1)被Java语言赋予特定含义的单词 (2)特点: 所有小写. (3)注意事项: A:goto和const作为保留字存在. B:类似于Notepad++这种高级记事本会对 ...

  2. java基础——static keyword小节

    static 用于修饰成员 修饰成员变量和成员函数 被修饰过的成员的特点:   1.随着类的载入而载入   2.优先于对象而存在   3.被全部对象所共享   4.能够直接被类名调用

  3. JavaSE入门学习5:Java基础语法之keyword,标识符,凝视,常量和变量

    一keyword keyword概述:Java语言中有一些具有特殊用途的词被称为keyword.keyword对Java的编译器有着特殊的意义.在程 序中应用时一定要谨慎. keyword特点:组成k ...

  4. JAVA 基础基本语法---常量与变量

    JAVA 基础基本语法---常量与变量 语法:计算机能够识别的语言的规则: 0. 基本语法 编写Java程序时,应注意以下几点: 大小写敏感:Java是大小写敏感的,这就意味着标识符Hello与hel ...

  5. JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)

    Java基础语法(变量.常量.数据类型.运算符与数据类型转换) 1.变量 Java中.用户能够通过指定数据类型和标识符来声明变量.其基本的语法为: DataType identifier; 或 Dat ...

  6. 02:Java基础语法(一)

    Java基础语法 Java的关键字及保留字 关键字(Keyword) 关键字的定义和特点定义:被Java语言赋予了特殊含义的单词特点:关键字中所有字母都为小写注意事项:1)true.false.nul ...

  7. Java基础语法(1)-关键字与保留字

    title: Java基础语法(1)-关键字与保留字 blog: CSDN data: Java学习路线及视频 1.关键字 关键字(keyword)的定义和特点 定义:被Java语言赋予了特殊含义,用 ...

  8. Java基础知识(壹)

    写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...

  9. [Java面经]干货整理, Java面试题(覆盖Java基础,Java高级,JavaEE,数据库,设计模式等)

    如若转载请注明出处: http://www.cnblogs.com/wang-meng/p/5898837.html   谢谢.上一篇发了一个找工作的面经, 找工作不宜, 希望这一篇的内容能够帮助到大 ...

随机推荐

  1. ubuntu 装tensorflow出现 conda install ERROR missing write permission错误

    通过搜索tensorflow然后运行,例如:$ conda install --channel https://conda.anaconda.org/jjh_cio_testing tensorflo ...

  2. 入门python:《Python编程快速上手让繁琐工作自动化》中英文PDF+代码

    入门推荐学习<python编程快速上手>前6章是python的基础知识,通俗易懂地讲解基础,初学者容易犯错的地方,都会指出来.从第三章开始,每章都有一个实践项目,用来巩固前面所学的知识. ...

  3. camke 参数

    cmake -DCMAKE_INSTALL_PREFIX=/application/mysql-5.5.32 \   -DMYSQL_DATADIR=/application/mysql-5.5.32 ...

  4. React 中组件间通信的几种方式

    在使用 React 的过程中,不可避免的需要组件间进行消息传递(通信),组件间通信大体有下面几种情况: 父组件向子组件通信 子组件向父组件通信 非嵌套组件间通信 跨级组件之间通信 1.父组件向子组件通 ...

  5. docker安装MySQL8,目录挂载、配置用户名密码、忽略表名大小写、连接数、特殊字符、时区

    原文:docker安装MySQL8,目录挂载.配置用户名密码.忽略表名大小写.连接数.特殊字符.时区 一.环境配置 1.系统:centos7.3 2.docker版本:Docker version 1 ...

  6. Jedis无法连接centOS7上的redis

    通过查看资料无法连接基本是两个原因: 1)redis.conf中的bind配置,bind的默认是 127.0.0.1 只可本机访问,我们改为 bind 0.0.0.0 即所有地址均可访问. 2)cen ...

  7. COGS——T 1578. 次小生成树初级练习题

    http://www.cogs.pro/cogs/problem/problem.php?pid=1578 ☆   输入文件:mst2.in   输出文件:mst2.out   简单对比时间限制:1 ...

  8. 最强最全干货分享:Android开发书籍、教程、工具等

    最全干货分享,本文收集整理了Android开发所需的书籍.教程.工具.资讯和周刊各种资源,它们能让你在Android开发之旅的各个阶段都受益. 入门<Learning Android(中文版)& ...

  9. 改动Android设备信息,如改动手机型号为iPhone7黄金土豪版!

    首先你的手机必需要有ROOT权限,误操作有风险需慎重 请先开启手机的USB调试,防止手机改动后无法启动时导致的无法修复 1.假设你是在手机上改动,直接使用RE文件管理器,编辑/system/build ...

  10. [poj 3904] sky code 解题报告(组合计算+容斥原理)

    题目链接:http://poj.org/problem?id=3904 题目大意: 给出一个数列,询问从中取4个元素满足最大公约数为1的方案数 题解: 很显然,ans=总的方案数-最大公约数大于1的4 ...