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

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. How to build a sortable table in native js?

    How to build a sortable table in native/vanilla js? H5 DnD https://developer.mozilla.org/zh-CN/docs/ ...

  2. HTML5 download 执行条件

    HTML5 download 执行条件 同一个域名下的资源 http only 绝对路径/相对路径 都可以 demo https://cdn.xgqfrms.xyz/ https://cdn.xgqf ...

  3. flutter & dart & vs code & bug

    flutter & dart & vs code & bug Waiting for another flutter command to release the startu ...

  4. Rust learning notes

    Rust learning notes Rust Version 1.42.0 $ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs ...

  5. alipay 小程序开发教程

    alipay 小程序开发教程 https://opendocs.alipay.com/mini/00ccmd 或访问开放平台:https://opendocs.alipay.com/mini/00cc ...

  6. 两百万SPC空投来袭,带动市场热情!

    NGK投放项目的时间节点总是以牛市为主,像是上一次的BGV项目投放就在2020年末的数字加密货币牛市,其结果想必各位生态建设者们都已经见到了,在登陆交易所首日便高收于近889美金,创下惊人的近一千七百 ...

  7. 创建一个springboot项目

    进入https://start.spring.io/ 再点击GENERATE,下载解压即可 注意配置好阿里云的仓库镜像,免得依赖无法下载 不下载最新版springboot是因为我在测试中遇到了问题,貌 ...

  8. sqlserver日期时间格式转换

    Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM Select CONVERT(varchar(100), GETDATE( ...

  9. plsql连接oracle出现问题总结

    https://blog.csdn.net/yali1990515/article/details/46874511

  10. COM技术中的VARIANT and VARIANTARG

    VARIANT and VARIANTARG Use VARIANTARG to describe arguments passed within DISPPARAMS, and VARIANT to ...