Java-this关键词
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关键词的更多相关文章
- Java中关键词之this,super的使用
一.this关键词介绍. 说明:该知识点仅仅限于本人对其了解的范围. package com.study.java.oop; /** * 核心点:"this是指向对象本身的一个指针" ...
- java基础-关键词super与this
转发:itbooks this是调用自己本身的构造函数,而super是调用父类中的构造函数. 这两个关键词是用在构造函数中的,这两个关键词的设计也是对封装特性的一种考虑,避免编写不必要的重复代码. c ...
- java—— finall 关键词
_ *{ margin: 0; padding: 0; } .on2{ margin: 10px 0; cursor: pointer; user-select: none; color: white ...
- java过滤关键词
敏感词.文字过滤是一个网站必不可少的功能,如何设计一个好的.高效的过滤算法是非常有必要的.前段时间我一个朋友(马上毕业,接触编程不久)要我帮他看一个文字过滤的东西,它说检索效率非常慢.我把它程序拿过来 ...
- java gc --- 关键词解释
分代gc java的堆内存主要分为young generation与old generation,这两块分开回收.这就是所谓的分代gc 其中young generation又分为一个eden spac ...
- Java final关键词
final关键词的四种用法 * * final 关键字:最终的.不可改变的 * 1.可以用来修饰一个类 * 2.可以用来修饰一个方法 * 3.可以用来修饰一个局部变量 * 4.可以用来修饰一个成员变量 ...
- Java final 关键词修饰类、方法、变量
1. final修饰类 被修饰的类不能被继承,也没有子类.假如随意创建这些类的子类,子类可能会错误的修改父类的实现细节.出于安全原因,类的实现细节不允许有任何改动.在创建对象模型的时候,确信这个类不 ...
- java final 关键词
package day9; /** * Created by admin on 2018/11/17. * final可以修饰类,方法,变量 特点: final可以修饰类,该类不能被继承. final ...
- java常用关键词关键字,方法源码解析
transient volatile native final Integer String Class &&Object newInstance Class.forName,Clas ...
- Java中实现多线程关键词整理
Java中的Runable,Callable,Future,FutureTask,ExecutorService,Excetor,Excutors,ThreadPoolExcetor在这里对这些关键词 ...
随机推荐
- Mac下mysql服务端密码重置及环境配置
一 停止mysql服务 关闭MySQL服务的操作: 苹果->系统偏好设置->最下边点MySQL 在弹出页面中 关闭mysql服务(点击stop mysql server) 二 进入终端,命 ...
- WPF学习笔记 - 数据绑定(在代码中)
在程序代码里,有两种设置绑定的方法,一种是调用FrameworkElement或FrameContentElement对象的SetBinding实例方法. 例如: Public MainWindow( ...
- 一百二十一:CMS系统之注册后跳转到上一个页面
实现功能,访问测试页面的时候,跳转到注册页面,注册成功后跳转到测试页面 使用参数:若是从其他地址跳转过来时,头部信息中会携带参数referrer,此参数为从从哪个地址跳转到当前地址的,若是直接从浏览器 ...
- c++ STL之map
map内部自建一颗红黑树(一 种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,map中的元素是自动按Key升序排序,所以不能对map用sort函数: ...
- 【JVM学习笔记】字节码文件结构
https://www.cnblogs.com/heben/p/11468285.html 比这篇笔记更好一点 新建一个Java类 package com.learn.jvm; public cla ...
- 欢迎关注微信公众号codefans一起交流技术
- USACO 1.3 Name That Number【暴搜】
裸的穷举搜索. 研究了好久怎么输入$dict.txt$,$USACO$好像对$freopen$的顺序还有要求? /* ID: Starry21 LANG: C++ TASK: namenum */ # ...
- 用maven建立一个工程
建立java工程 mvn archetype:generate -DgroupId=cn.maxhou.demo -DartifactId=myapp -DarchetypeArtifactId=ma ...
- Centos7 安装python3.8和pip
安装python3 yum -y install yum-utilsyum-builddep pythoncurl -O https://www.python.org/ftp/python/3.8.0 ...
- 虚树+【BZOJ2286】【SDOI2011】消耗战(虚树)(DP)
先看一道题: [BZOJ2286][SDOI2011]消耗战 Description 在一场战争中,战场由n个岛屿和n−1个桥梁组成,保证每两个岛屿间有且仅有一条路径可达.现在,我军已经侦查到敌军的总 ...