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

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

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

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

  1. class Student{
  2. int id;
  3. public Student(int id){
  4. this.id=id;
  5. }
  6. public int getId(){
  7. return this.id;
  8. }
  9. }

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

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

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

(多个成员方法的时候)

  1. class Person{
  2. public void eat{
  3. ...
  4. }
  5. public void behavior{
  6. this.eat();
  7. ...
  8. }
  9. }

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

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

  1. class Student{
  2. public Student(){
  3. System.out.print("訪问了无參构造方法!
  4.  
  5. ");
  6. }
  7. public Student(String id){
  8. this();
  9. System.out.println("訪问了有參构造方法。");
  10. }
  11. }
  12. public class eg{
  13.  
  14. public static void main(String[] args){
  15. Student s=new Student(3);//实例化对象的时候
  16. }
  17. }

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

<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. caioj 1155 同余方程组(模版)

    第一步,和同余方程一样,转化一下 两式相减得 这就转化为了求不定方程,用exgcd 求出x,要化成最小正整数解,避免溢出 然后可以求出P出来. 这个时候要把前两个式子转化成一个式子 设求出来的是P' ...

  2. WPF Toolkit AutoCompleteBox 实体类绑定 关键字自定义关联搜索匹配

    原文:WPF Toolkit AutoCompleteBox 实体类绑定 关键字自定义关联搜索匹配 WPF Toolkit AutoCompleteBox 实体类绑定 关键字自定义关联搜索匹配 网上的 ...

  3. NYIST 531 太空飞行计划

    太空飞行计划 时间限制:1000 ms  |  内存限制:65535 KB 难度:4   描述        W 教授正在为国家航天中心计划一系列的太空飞行.每次太空飞行可进行一系列商业性实验而获取利 ...

  4. Java中四种复制数组的方法

    JAVA语言的下面几种数组复制方法中,哪个效率最高? B.效率:System.arraycopy > clone > Arrays.copyOf > for循环 1.System.a ...

  5. c++ string类的完整实现!!!

    本文实现了c++ STL中的basic_string模板类,当然.通过typedef也就实现了string类和wstring类.限于篇幅,实现代码中用到了标准库的char_traits模板类,本人自己 ...

  6. 一、奇妙插件Tampermonkey的简单安装教程

    奇妙插件Tampermonkey的简单安装教程 1.下载 对于浏览器而言,一般的功能并不能满足"特殊用户的需求".这时候就须要插件来帮忙了.那么讲到插件的支持多又常见的浏览器必定要 ...

  7. 每一个人都懂得敏捷开发 (软件project), 为何产品开发的效率与质量还是这么的烂?

    敏捷开发(软件project)是 "设计" 出来的.不是 "学" 来的-- 很多人都一直在质疑敏捷开发能否提高效率与质量? 更有不少人以嘲讽.不屑的口吻看待软件 ...

  8. Find or Query Data with C# Driver

    https://docs.mongodb.com/getting-started/csharp/query/ Overview You can use the Find and FindAsync m ...

  9. TurtleWorld Exercises

    1. Write a function called square that takes a parameter named t, which is a turtle. It should use t ...

  10. BZOJ 3503 高斯消元

    思路: 高斯消元就好啦 注意每个格子最多只能和4个相邻 所以是 n*m*n*m*5 的 并不会TLE //By SiriusRen #include <cstdio> #include & ...