•区分成员变量和局部变量

public class Person {

    String name;
int age; public void set(String name,int age) {
this.name = name;
this.age = age;
} }

  形参与成员名字重名,用 this 来区分;

•构造器与构造器之间的调用

  可以使用 this 关键字调用重载构造方法,避免相同的初始化代码;

  只能在构造方法中用,并且必须位于构造方法的第一句;

  除了构造器之外,编译器禁止在其他任何方法中调用构造器。

public class Person {

    String name;
int age; Person(){
System.out.println("无参构造函数");
} Person(String name){
this();
this.name = name;
System.out.println("含一个参数的构造函数");
} Person(String name,int age){
this(name);
this.age = age;
System.out.println("含两个参数的构造函数");
} public static void main(String[] args) { Person person = new Person("MElephant",18); }
}

运行效果

•在继承中使用 this

  新建一个 Person 类作为父类,Boy 类作为子类;

code

public class Person {

    int age;

    public void f() {

        System.out.println("age = "+this.age);
System.out.println(this.toString()); } public static void main(String[] args) { Boy boy = new Boy();
boy.f();
}
}
class Boy extends Person{ public void f() { age = 18;
super.f(); }
}

  在该代码中,Person 类包含一个成员变量 age 和一个 f() 方法,并在该方法中添加了两行打印语句;

  其子类 Boy 重写了  f() 方法,设置了  age = 18 ,同时通过  super.f(); 调用了其父类的  f() 方法;

  接下来新建一个 Test 类来测试输出结果;

Test.java

public class Test {

    public static void main(String[] args) {

        Boy boy = new Boy();
boy.f();
}
}

运行结果

  可以看到,通过  super.f() 打印的两条语句中的 this 指向的是 Boy 类;

•声明

参考资料

  【Java之路:this关键字的用法

Java学习之this关键字的使用的更多相关文章

  1. Java学习之finally关键字总结

    Java中的final关键字非常重要,它可以应用于类.方法以及变量.这篇文章中我将带你看看什么是final关键字?将变量,方法和类声明为final代表了什么?使用final的好处是什么?最后也有一些使 ...

  2. Java学习笔记18---final关键字修饰变量、方法及类

    英语里final这个单词大家都知道是"最终的"意思,其实还有一个意思是"不可更改的".在Java里,final关键字作"不可更改的"来解释更 ...

  3. [Java学习]面向对象-super关键字;final关键字

    super关键字 super代表的是当前子类对象中的父类型特征,可以看做是this的一部分.与this不同,不是引用,不存储对象内存地址. super可以用在什么位置 1 可以用在成员方法中.不能用在 ...

  4. Java学习笔记——static关键字与静态的使用方法

    static:可以修饰成员变量和成员方法. 当变量被static修饰后,则其可以直接被类名调用.类名.成员. static特点: 随着类的加载而加载: 优先于对象存在: 被所有的对象共享,节省空间,但 ...

  5. java学习笔记11-static关键字

    如果在类中使用static关键字创建方法,这种方法称为类方法,可以在这个类中直接引用.而不是用static创建的方法.这种方法称为对象方法(实例方法),需要创建对象后才能使用. package les ...

  6. Java学习:final关键字的使用与注意事项

    final 关键字代表最终.不可改变的. 常见的四种用法 可以用来修饰一个类 可以用来修饰一个方法 可以用来修饰一个局部变量 可以用来修饰一个成员变量 1.当final关键字用来修饰一个类的时候,格式 ...

  7. Java学习:static 关键字概述

    static 关键字概述 一旦用了static关键字,那么这样的内容不再属于对象自己.而是属于类的,所以凡是本类的对象,都共享同一份. 如果没有static关键字,那么必须首先创建对象,然后通过对象才 ...

  8. Java学习日记-5 关键字static和final 以及接口

    乱入:表达式中的自动类型转换 char,short,byte都升级为int类型进行运算,结果为int,但其原变量类型并不改变. 所以,byte b = 10;  b = b*b; 编译时会报错.但是写 ...

  9. java学习之super关键字

    对于具有public或者protected属性的父类,其子类若想继承父亲的属性或者方法,那么需要用到super 实例:

随机推荐

  1. Next.js 10

    Next.js 10 October 27th 2020 https://nextjs.org/blog/next-10 refs xgqfrms 2012-2020 www.cnblogs.com ...

  2. shit nuxt.js sensors-data

    shit nuxt.js sensors-data why I can not close it? https://github.com/nuxt/nuxt.js/issues?q=sensors+d ...

  3. how to auto open a url in the browser by using terminal

    how to auto open a url in the browser by using terminal Linux / MacOS # bash / zsh $ open http://loc ...

  4. taro table component

    taro table component https://juejin.im/post/5d901696f265da5b926bbcaa https://taro-ext.jd.com/search? ...

  5. 「NGK每日快讯」2021.2.2日NGK公链第91期官方快讯!

  6. Linux零拷贝技术

    本文转载自Linux零拷贝技术 导语 本文讲解 Linux 的零拷贝技术,云计算是一门很庞大的技术学科,融合了很多技术,Linux 算是比较基础的技术,所以,学好 Linux 对于云计算的学习会有比较 ...

  7. [Python学习笔记]正则表达式总结

    常用缩写字符及其含义表格查询 缩写字符分类 含义 \d 0-9的任意数字 \D 除0-9的数字以外的任何字符 \w 任何字母.数字或下划线字符(可以认为是匹配"单词"字符) \W ...

  8. java: 程序包javax.servlet.http不存在

    下载好apache tomcat,将lib目录下的servlet-api.jar导入idea即可

  9. 权限管理整合springsecurity代码执行过程

    (1)输入用户名密码. (2)进入认证过滤器中,执行attemptAuthentication方法, 通过该方法获取输入的用户名和密码. (3)执行实现了UserDetailsService接口的类中 ...

  10. 如何把数据放到C#的心里之 DB2实例

    平时偶尔因为工作需要得自己写一些小工具去操作数据库,因为只是需要实现一些小的功能,也不涉及多类型的数据库,也许就是一次性的使用.所以此时那些大而全的数据库操作框架,也就不再那么适合我了.而本篇博文主要 ...