1、this调用构造方法

  (1)构造方法之间的调用,可以通过this关键字来完成;

  (2)构造方法调用格式

this(参数列表);

  (3)小案例

 1 class Person {
 2     // Person的成员属性
 3     private int age;
 4     private String name;
 5
 6     // 无参数的构造方法
 7     Person() {
 8     }
 9
10     // 给姓名初始化的构造方法
11     Person(String nm) {
12         name = nm;
13     }
14
15     // 给姓名和年龄初始化的构造方法
16     Person(String nm, int a) {
17         // 由于已经存在给姓名进行初始化的构造方法 name = nm;因此只需要调用即可
18         // 调用其他构造方法,需要通过this关键字来调用
19         this(nm);
20         // 给年龄初始化
21         age = a;
22     }
23 }

2、成员变量和局部变量同名问题

  当在方法中出现了局部变量和成员变量同名的时候,可以在成员变量名前面加上this.来区别成员变量和局部变量。

 1 class Person {
 2     private int age;
 3     private String name;
 4
 5     // 给姓名和年龄初始化的构造方法
 6     Person(String name, int age) {
 7         // 当需要访问成员变量是,只需要在成员变量前面加上this.即可
 8         this.name = name;
 9         this.age = age;
10     }
11
12     public void speak() {
13         System.out.println("name=" + this.name + ",age=" + this.age);
14     }
15 }
16
17 class PersonDemo {
18     public static void main(String[] args) {
19         Person p = new Person("张三", 23);
20         p.speak();
21     }
22 }

3、在Person类中定义功能,判断两个人是否是同龄人

 1 class Person {
 2     private int age;
 3     private String name;
 4
 5     // 给姓名和年龄初始化的构造方法
 6     Person(String name, int age) {
 7         // 当需要访问成员变量是,只需要在成员变量前面加上this.即可
 8         this.name = name;
 9         this.age = age;
10     }
11
12     public void speak() {
13         System.out.println("name=" + this.name + ",age=" + this.age);
14     }
15
16     // 判断是否为同龄人
17     public boolean equalsAge(Person p) {
18         // 使用当前调用该equalsAge方法对象的age和传递进来p的age进行比较
19         // 由于无法确定具体是哪一个对象调用equalsAge方法,这里就可以使用this来代替
20         /*
21          * if(this.age == p.age) { return true; } return false;
22          */
23         return this.age = p.age;
24     }
25 }

转载于:https://www.cnblogs.com/gzdlh/p/8082128.html

00048_this关键字相关推荐

  1. c语言中external,static关键字用法

    static用法: 在C中,static主要定义全局静态变量.定义局部静态变量.定义静态函数. 1.定义全局静态变量:在全局变量前面加上关键字static,该全局变量变成了全局静态变量.全局静态变量有 ...

  2. java中实现具有传递性吗_Java中volatile关键字详解,jvm内存模型,原子性、可见性、有序性...

    一.Java内存模型 想要理解volatile为什么能确保可见性,就要先理解Java中的内存模型是什么样的. Java内存模型规定了所有的变量都存储在主内存中.每条线程中还有自己的工作内存,线程的工作 ...

  3. volatile关键字之全面深度剖析

    引言 volatile这个关键字可能很多朋友都听说过,或许也都用过.在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果.在Java 5之后,volatile关键字 ...

  4. mysql屏蔽关键字实现方法_PHP屏蔽过滤指定关键字的方法

    本文实例讲述了PHP屏蔽过滤指定关键字的方法.分享给大家供大家参考.具体分析如下: 实现思路: 一.把关键字专门写在一个文本文件里,每行一个,数量不限,有多少写多少. 二.PHP读取关键字文本,存入一 ...

  5. Java 静态变量,静态方法,静态常量(java static 关键字)

    Java 静态变量,静态方法,静态常量  就是变量 ,方法,常量前面添加了static 关键字 为什么要使用静态的呢 有时候在处理问题时会需要两个类在同一个内存区域共享一个数据, 不如现在 Main ...

  6. Java this 关键字使用

    this 引用就是本类的一个对象 理解这句话看下面一段代码 package me; public class Me {String name; //成员变量int age;public Me(Stri ...

  7. java 关键字(面试题)

    学而时习之,温故而知新. 今天群里有人问java中true ,false 是关键字吗, 这里记录下,不是关键字,我还特意翻看之前的书看看 下面是 Java 语言保留使用的 50 个关键字: 关键字 g ...

  8. java中标识符,关键字,数据类型

    什么是标识符? 在java语言中用来给一个类,变量或方法命名的符号 标识符的命名规则 标识符可以由字母.数字.下划线(_).美元符($)组成,但不能包含 @.%.空格等其它特殊字符,不能以数字开头. ...

  9. iOS面试题整理---关键字!!!

    关键字整理 static 1.static全局变量与普通的全局变量有什么区别? 全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量.全局变量本身就是静态存储方式, 静态全局变量当 ...

  10. private关键字和构造方法

    1.private: A: 是一个修饰符 B:可以 修饰成员变量,也可以修饰成员方法 C:被private修饰的成员只能在本类中访问 D:针对private修饰的成员变量,可以用getXxx()和se ...

最新文章

  1. 优化XCode的编译速度
  2. ##管家婆项目(service层)
  3. 用启明云端基于ESP32模块的开发板来快速了解天猫精灵
  4. QT的QMutableLinkedListIterator类的使用
  5. cloub spring 拦截器_Spring Cloud Gateway之全局异常拦截器
  6. 掌握计算机底层原理,可以让工作事半功倍吗?
  7. Node.js实现一个HTTP服务器
  8. 【房价预测】基于matlab GUI BP神经网络房价预测【含Matlab源码 972期】
  9. 目前使用的python版本_Python版本到底有多少种?
  10. 无线收发模块——NRF24L01
  11. The server time zone value ‘?й???????‘ is unrecognized or represents more than one time zone.
  12. 无线射频专题《射频合规,2.4GHz WIFI频谱模板》
  13. U3D游戏开发工程师正确入行姿势指南
  14. android adb点击坐标,Android adb shell 获得点击屏幕的位置坐标
  15. Comware: Port Link-mode Bridge vs Port Link-mode Route
  16. 各大EMM厂商功能比较 第二部分 MAM Container比较
  17. 某电影网站信息的爬取【干货】
  18. Head First 设计模式总结(六) 命令模式
  19. 无惧管控放开,分享居家办公、远程办公项目经验
  20. 怎么用计算机连接ab plc,如何使用电脑连接ABPLC.pdf

热门文章

  1. 学历真的改变能命运? | 数据告诉你
  2. 沉寂了多年金价为何会连续上涨 专家指出真正原因
  3. HashMap 和 ConcurrentHashMap 的区别
  4. java集合和数组互转
  5. win10环境下MinGW和MSYS的安装与配置
  6. c++中的c_str()函数
  7. JavaScript 系列笔记(一)数据类型
  8. 再学C++之C++中的全部关键字
  9. [学习笔记] JQuery datepicker用法 [转]
  10. 在不用第三方参数的情况下,交换两个参数的值