this关键字

this可以算是Java里面比较复杂的关键字,因为this的使用形式约定了它的灵活性,在程序里面,使用this可以实现以下三类结构的描述:

  • 当前类中的属性:this属性;
  • 当前类中的方法(普通方法、构造方法):this()、this.方法名称();
  • 描述当前对象;
class Person{
private int age;
private String name; public void intorduce() {
System.out.println("age= "+age+" name= "+name);
}
public Person(int a ,String n) {
age = a;
name = n;
}
}
public class xxx {
public static void main(String[] args) {
new Person().intorduce();
} }
>>>age= 12 name= sax

以前我们构造方法

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

a 和 n 目的是为了给age和name初始化赋值 但此时a和n参数名字不好

换相应名字之后

	public Person(int a ,String n) {
age = age;
name = name;
}
>>>age= 0 name= null

会发现 改为name和age后 属性无法正确地赋值

在Java程序之中"{}"是作为一个结构体地边界符,那么在程序里面进行变量(参数、属性都称为变量)使用的时候都会以"{}"作为一个查找边界

所以按照就近取用的原则,此时的构造方法并没有能够访问类中的属性,所以此时为了明确地标记出类中的属性与参数的区别,往往会在属性前面追加一个"this",表示本类属性。

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

在你以后所编写的程序代码之中,只要是访问本类中属性的时候,请一定要加上"this."实现访问。

比如:

public  void intorduce() {
System.out.println("age= "+this.age+" name= "+this.name);
}

Java面向对象编程 -3的更多相关文章

  1. Java面向对象编程基础

    一.Java面向对象编程基础 1.什么是对象?Object 什么都是对象! 只要是客观存在的具体事物,都是对象(汽车.小强.事件.任务.按钮.字体) 2.为什么需要面向对象? 面向对象能够像分析现实生 ...

  2. java 面向对象编程。。。。

    经过一周的学习(java),总结了许多,对java的理解,java的类型,运用,安装,基础语法,变量,常量,表达式,语句 java从C语言中继承了大量语言特性.java面向对象编程的基本特征,包括继承 ...

  3. 《Java面向对象编程》

    <Java面向对象编程> 第11章 对象的生命周期 11.1  创建对象的方式 用new语句创建对象 运用反射手段,调用java.lang.Class 或者 java.lang.Const ...

  4. JAVA面向对象编程课程设计——网络版单机斗地主

    一.团队介绍 成员姓名 任务分配 成员课程设计博客链接 兰泽祥(组长) 数据库,斗地主规则的实现,人机自动出牌的算法,实体类的设计 JAVA面向对象编程课程设计--web版斗地主 吴修恩 JSP界面的 ...

  5. JAVA面向对象编程课程设计——web版斗地主

    一.团队课程设计博客链接 JAVA面向对象编程课程设计--网络版单机斗地主 二.个人负责模块或任务说明 实体类的设计 斗地主规则的实现 人机自动出牌的算法 实现数据库的DAO模式 三.自己的代码提交记 ...

  6. java面向对象编程知识点总结

    一:今天完成 上午详细了解了java面向对象编程的一些细节,记录如下. 1)类 是一种引用类型,包含一个签名和一个主体,主体是放在花括号里面的成员,成员包括字段和方法,还有构造方法.初始化程序和嵌套类 ...

  7. Java面向对象编程(一)

    由于常常将Java和C++面向对象编程的原则搞乱,所以这次把相关要点分别总结一下,本文主要总结Java面向对象编程. 面向对象编程的三大特性是:继承性(inheritance), 多态性(polymo ...

  8. JAVA学习(五):Java面向对象编程基础

    Java面向对象编程基础 面向对象(Object oriented programming,OOP)技术是一种强有力的软件开发方法,它採用数据抽象与信息隐藏技术,来使软件开发简单化,以达到代码重用的目 ...

  9. (一)如何理解java面向对象编程

    哲学中,事物总是螺旋式上升,波浪式前进.因而编程也逐渐向人类更容易理解的方向前进,多年来人们苦苦追求的编程境界 : 高扩展性(extensibility),高复用性(reuseable).java语言 ...

  10. java面向对象编程--第九章 多态和抽象

    9.1多态 在生物学中,是指一个生物或物种可以有多种不同的形式或阶段: 在OOP中,多态是指一个对象有多种形式的能力. 多态可以说是面向对象编程的精髓所在.java中之所以引入多态的概念,原因之一是它 ...

随机推荐

  1. # E. Mahmoud and Ehab and the xor-MST dp/数学+找规律+xor

    E. Mahmoud and Ehab and the xor-MST dp/数学/找规律 题意 给出一个完全图的阶数n(1e18),点由0---n-1编号,边的权则为编号间的异或,问最小生成树是多少 ...

  2. 每天进步一点点------Nios II 的Run as hardware 中报错:Downloading ELF Process failed

    今天继续调试,又出现了新问题.在执行NIOS程序代码时,不能下载了:Pausing target processor: not responding. Resetting and trying aga ...

  3. 【做题笔记】洛谷P1464 Function

    我先谔谔一波 /kk 我谔谔 看题第一眼:欸这不就是按题意递归嘛,,直接搞不就好了 3 min 后,重新看题 然后自己手玩了几个样例,噢,递归太多了,铁定会 T 啊...... 然后,作为一个从没写过 ...

  4. SaltStack自动化软件简介及安装

    ==================================================================================================== ...

  5. xhr 的 onpregress 监听上传数据的 已上传 和 总大小

    var fd=new FormData(); $('.mwd_uppingzheng_btna_ok').on('click',function () { // 数组转 str var strarr= ...

  6. redis持久化优缺点

  7. 【做题笔记】P2871 [USACO07DEC]手链Charm Bracelet

    就是 01 背包.大意:给您 \(T\) 个空间大小的限制,有 \(M\) 个物品,第 \(i\) 件物品的重量为 \(c_i\) ,价值为 \(w_i\) .要求挑选一些物品,使得总空间不超过 \( ...

  8. 详解多线程MT和多线程MD的区别

    这段时间司在招实习生,而不管是远程的电话面试或者是实际现场面试中领导都喜欢问你这个问题,但是可惜的是能很好答上来的人很少.后来发现不管是应届的实习生,甚至有些实际参加工作几年的人也未必真的了解这个问题 ...

  9. linux安装tomcat步骤

    2.1 查看当前系统是否安装过该软件,如果安装过则下载 rpm –qa | grep –i tomcat rpm –e --nodeps 程序名称2.2上传2.3创建tomcat的安装路径 mkdir ...

  10. mpvue 小程序 使用wx.request请求数据

    1.创建src下创建utils/wx-request.js const host = 'http://10.0.0.6:8081' function request (url, method, dat ...