this关键词

1,this调用本类属性

在程序里面是有this可以实现以下三类的结构的描述:

·当前类中的属性:this.属性;

·当前类中的方法(普通方法、构造方法):this()、this.方法名称();

·描述当前对象;【最为麻烦的一部分】

如果说现在构造方法中的参数名称修改为name、age,则发现无法进行属性的正确设置:

 public Person(String name,int age){
name=name;
age=age;
}

在以后程序开发过程中,只要是访问本类中的属性的时候,请一定要加上【this】实现访问。在Java程序之中【{}】是作为一个结构体的边界符,那么程序里面当进行变量(参数、属性都称为变量)使用的时候都会以【{}】作为一个查找边界,所以按照就近取用的原则,此时的构造方法并没能够访问类中的属性,所以此时为了明确标记出类中的属性与参数的区别,往往会在属性前追加一个【this】表示本类属性;

2,this调用本类方法

·构造方法调用【this()】:使用关键字new 实例化对象的时候才会调用构造方法;

·普通方法调用【this.方法名称()】:实例化对象产生之后就可以调用我们的普通方法。

·范例:this调用构造方法

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

·范例:this调用普通方法

 public Person() {
System.out.println("无参构造");
}
public Person(String name){
this();
System.out.println("单参构造");
this.setName(name);
}
public Person(String name,int age){
this(name);
System.out.println("两参构造");
this.setAge(age);
}

·构造方法互相调用时请保留有程序的出口,别形成死循环。会出现错误,方法的递归调用注意:·this()需要在构造方法的首行;

3,综合实战:简单Java类

就是一个类,有属性及其setter、getter方法,实例化构造方法,普通方法。

Java-this关键词的更多相关文章

  1. Java中关键词之this,super的使用

    一.this关键词介绍. 说明:该知识点仅仅限于本人对其了解的范围. package com.study.java.oop; /** * 核心点:"this是指向对象本身的一个指针" ...

  2. java基础-关键词super与this

    转发:itbooks this是调用自己本身的构造函数,而super是调用父类中的构造函数. 这两个关键词是用在构造函数中的,这两个关键词的设计也是对封装特性的一种考虑,避免编写不必要的重复代码. c ...

  3. java—— finall 关键词

    _ *{ margin: 0; padding: 0; } .on2{ margin: 10px 0; cursor: pointer; user-select: none; color: white ...

  4. java过滤关键词

    敏感词.文字过滤是一个网站必不可少的功能,如何设计一个好的.高效的过滤算法是非常有必要的.前段时间我一个朋友(马上毕业,接触编程不久)要我帮他看一个文字过滤的东西,它说检索效率非常慢.我把它程序拿过来 ...

  5. java gc --- 关键词解释

    分代gc java的堆内存主要分为young generation与old generation,这两块分开回收.这就是所谓的分代gc 其中young generation又分为一个eden spac ...

  6. Java final关键词

    final关键词的四种用法 * * final 关键字:最终的.不可改变的 * 1.可以用来修饰一个类 * 2.可以用来修饰一个方法 * 3.可以用来修饰一个局部变量 * 4.可以用来修饰一个成员变量 ...

  7. Java final 关键词修饰类、方法、变量

    1. final修饰类  被修饰的类不能被继承,也没有子类.假如随意创建这些类的子类,子类可能会错误的修改父类的实现细节.出于安全原因,类的实现细节不允许有任何改动.在创建对象模型的时候,确信这个类不 ...

  8. java final 关键词

    package day9; /** * Created by admin on 2018/11/17. * final可以修饰类,方法,变量 特点: final可以修饰类,该类不能被继承. final ...

  9. java常用关键词关键字,方法源码解析

    transient volatile native final Integer String Class &&Object newInstance Class.forName,Clas ...

  10. Java中实现多线程关键词整理

    Java中的Runable,Callable,Future,FutureTask,ExecutorService,Excetor,Excutors,ThreadPoolExcetor在这里对这些关键词 ...

随机推荐

  1. XXE_payload

    <?php $xmlfile = file_get_contents('php://input'); $creds=simplexml_load_string($xmlfile); echo $ ...

  2. 状压dp,松鼠从起点出发,拿到所有坚果,然后返回起点,求最短时间。

    UVA10944 松鼠从起点出发,拿到所有坚果,然后返回起点,求最短时间. #include<iostream> #include<cstdio> #include<al ...

  3. Python 寻找文件夹里以特定格式结尾的文件

    代码: import os, re, time name = 'linuxday01' flags = True# 文件夹bi_test中的文件列表 print os.listdir('E:\\bi_ ...

  4. PHP 二维数组去重方法

    php二维数组的去重策略,如果需要根据某字段去重(其他字段可能不一致),那么需要使用循环策略,如果去重的都是相同的(字段,值),那么可以用序列化方式. $allComments = array_map ...

  5. C++ STL——模板

    目录 一 函数模板的特性 二 模板的实现机制 三 类模板 四 类模板如何派生子类 五 普通类的.h和.cpp文件分离 六 类模板在类内类外的实现 七 模板的应用实例 注:原创不易,转载请务必注明原作者 ...

  6. zabbix server端与agent端源码安装 自定义监控项

    ZabbixServer的安装(只有源码装zabbix才能装支持java) 搭建自定义yum仓库并安装支持包 yum -y install createrepo #下载依赖关系命令 createrep ...

  7. python git 基础操作

    模块安装 pip install gitpython 基本用法 1. 初始化 from git import Repo Repo.init('/data/test2') # 创建一个git文件夹 # ...

  8. ftp服务器不能上传文件故障

    1.在客户端lftp命令无法put文件 原因:登陆用户无法读写 ftp服务器的文件夹,在服务器上增加权限  chmod 777  即可 还有一种方法:在 vsftp的配置文件里,设置可匿名读写

  9. 阿里云安装 fastdfs 总结

    还要开放 23000  22122,添加进安全组

  10. swoole详解

    1.swoole结构图 2.swoole流程图 3.详细流程图 3.1.Master:处理核心事件驱动(主进程)3.2.Reactor: 处理TCP连接,收发数据的线程.Swoole的主线程在Acce ...