java基础 this keyword!
为了程序的可读性,通常将一个类中的表示同一属性的变量进行统一的命名。可是这样做又会导致成员变量与局部变量名字冲突导致无法訪问成员变量。为了解决问题,java中引入了this这个keyword!所以this 的作用就是用于在方法中訪问对象的其它成员!
thiskeyword有下面三种常见使用方法:
1)通过thiskeyword能够明白的訪问成员变量。解决与局部变量重名的矛盾!
(成员变量与局部变量冲突的时候)
class Student{
int id;
public Student(int id){
this.id=id;
}
public int getId(){
return this.id;
}
}
构造方法中的參数是id,它是一个局部变量与成员变量id重名。
通常在构造方法中使用this.id訪问成员变量,通过id訪问构造方法中的内部变量!
2)通过this keyword能够调用成员方法!
(多个成员方法的时候)
class Person{
public void eat{
...
}
public void behavior{
this.eat();
...
}
}
在一个类中有多个成员方法的时候,通过thiskeyword能够方便的实如今一个成员方法中调用还有一个成员方法!
3)构造方法是在实例化对象的时候被java虚拟机自己主动调用的。在程序中无法像调用一般成员方法一样调用构造方法。可是能够通过在一个构造方法中使用this(參数1。參数2,參数3。。。)的形式来调用其它的构造方法。(多个构造方法的时候)
class Student{
public Student(){
System.out.print("訪问了无參构造方法!
");
}
public Student(String id){
this();
System.out.println("訪问了有參构造方法。");
}
}
public class eg{
public static void main(String[] args){
Student s=new Student(3);//实例化对象的时候
}
}
可是使用第三种的时候须要注意一些问题:
<1> this()的调用必须放在第一行,并且仅仅能出现一次。
<2>this()的调用仅仅能是在构造方法中调用还有一个构造方法,不能再成员方法中调用构造方法。
<3>不能在一个类的两个构造方法中使用this互相调用!这样叫easy造成死循环!
java基础 this keyword!的更多相关文章
- 2 Java基础语法(keyword,标识符,凝视,常量,进制转换,变量,数据类型,数据类型转换)
1:keyword(掌握) (1)被Java语言赋予特定含义的单词 (2)特点: 所有小写. (3)注意事项: A:goto和const作为保留字存在. B:类似于Notepad++这种高级记事本会对 ...
- java基础——static keyword小节
static 用于修饰成员 修饰成员变量和成员函数 被修饰过的成员的特点: 1.随着类的载入而载入 2.优先于对象而存在 3.被全部对象所共享 4.能够直接被类名调用
- JavaSE入门学习5:Java基础语法之keyword,标识符,凝视,常量和变量
一keyword keyword概述:Java语言中有一些具有特殊用途的词被称为keyword.keyword对Java的编译器有着特殊的意义.在程 序中应用时一定要谨慎. keyword特点:组成k ...
- JAVA 基础基本语法---常量与变量
JAVA 基础基本语法---常量与变量 语法:计算机能够识别的语言的规则: 0. 基本语法 编写Java程序时,应注意以下几点: 大小写敏感:Java是大小写敏感的,这就意味着标识符Hello与hel ...
- JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)
Java基础语法(变量.常量.数据类型.运算符与数据类型转换) 1.变量 Java中.用户能够通过指定数据类型和标识符来声明变量.其基本的语法为: DataType identifier; 或 Dat ...
- 02:Java基础语法(一)
Java基础语法 Java的关键字及保留字 关键字(Keyword) 关键字的定义和特点定义:被Java语言赋予了特殊含义的单词特点:关键字中所有字母都为小写注意事项:1)true.false.nul ...
- Java基础语法(1)-关键字与保留字
title: Java基础语法(1)-关键字与保留字 blog: CSDN data: Java学习路线及视频 1.关键字 关键字(keyword)的定义和特点 定义:被Java语言赋予了特殊含义,用 ...
- Java基础知识(壹)
写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...
- [Java面经]干货整理, Java面试题(覆盖Java基础,Java高级,JavaEE,数据库,设计模式等)
如若转载请注明出处: http://www.cnblogs.com/wang-meng/p/5898837.html 谢谢.上一篇发了一个找工作的面经, 找工作不宜, 希望这一篇的内容能够帮助到大 ...
随机推荐
- 登录生成令牌token存于redis
package com.medic.rest.province.base.home; import java.util.HashMap;import java.util.List;import jav ...
- li自定义图标
/*自定义list的图标*/ li{ list-style-image: url(../img/21.JPG); }
- PHP SOAP 教程
一.SoapServer 服务器 1.__construct 作用:创建 SoapServer 对象 用法:__construct ( mixed wsdl [, array options] ) 参 ...
- 第五周-磁盘分区GPT、shell脚本练习、lvm详解
1. 描述GPT是什么,应该怎么使用 Linux中磁盘分区分为MBR和GPT. MBR全称为Master Boot Record,为主引导记录,是传统的分区机制,应用于绝大多数使用的BIOS的PC设备 ...
- Union File System
目录 Union File System AUFS Docker是如何使用AUFS的 image layer 和 AUFS (docker版本不同可能会有区别,我的是在/var/lib/docker下 ...
- win10 64位下VirtualBox安装CentOS6.9
第一步:安装VritualBox 百度“VritualBox”下载安装即可: 第二步:下载Linux镜像系统并安装 这里写出我参照的博客,很详细,我就不累赘了! 原文地址:http://blog.cs ...
- 小A点菜 水题 dp 背包
基本上还是01背包,首先注意必须正好花光钱,所以初始化时除了dp[0]以外其他都要设置成inf,然后因为求方案数,所以基本方程为dp[i] = dp[i-x] + dp[i],再根据inf进行一些特殊 ...
- Redis加入Centos Linux开机启动
Redis加入Centos Linux开机启动 网上有很多redis在linux下自动启动的例子,实现的方式很多,很多都是参考一个老外流传出来启动的例子,其实直接使用是不行,而且有很多地方有一些语法错 ...
- php函数in_array奇怪现象
$k = 0; $fieldArr = array('tt', 'bb'); if ( in_array( $k, $fieldArr)) { echo '1'; } 按理来说,是不会输出1的,可是最 ...
- 用html语言写一个功课表
今天在网上看了一个关于html的教程,主要是讲表格,看完之后认为有必要上机试试.于是就写了以下的一段代码. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvb ...