面向对象this关键字和概述和应用
面向对象this关键字和概述和应用
package thisdemo; /**
* 面向对象this关键字和概述和应用
*
*/ //定义老师类
class Teacher {
private String name;
private int age; //设置姓名值
public void setName(String n){
name = n;
} //获取姓名值
public String getName(){
return name;
} public void setAge(int a){
age = a;
} public int getAge(){
return age;
} } class Test{
public static void main(String[] args){
Teacher t = new Teacher();
//给成员变量赋值
t.setName("张三");
t.setAge(23);
//获取成员变量的值
System.out.println(t.getName() + "---" + t.getAge());
}
}
输出结果:
张三---23
修改以上案例,我们知道,给变量取名字讲究见名知意,但是对于public void setName(String n)和public void setAge(int a)中的参数a和n就没有做到见名知意,所以修改代码如下:
 public void setName(String name){
         name = name;
 }
 public void setAge(int age){
     age = age;
 }     
输出:
null---0
分析案例2的结果:
因为变量的使用遵循就近原则,所以name = name; 左边对应的是形式参数的name,右边对应的也是形式参数的name,这里的意思是将自己赋值给了自己,无意义。而此时,成员变量name和age中存储的还是默认值null和0
我们想使用的是:Student类.name = name;Java就为我们提供了一个关键字this,this代表当前类的对象引用,也就是代表当前类的一个对象。
案例三:
 public void setName(String name){
         this.name = name;
     }
     public void setAge(int age){
         this.age = age;
     }
输出:
张三---23
需要注意的是:
1. 方法被哪个对象调用,this就代表哪个对象
2. 什么时候使用this呢?
解决局部变量隐藏成员变量的问题
面向对象this关键字和概述和应用的更多相关文章
- 10 面向对象(package关键字的概述及作用)
		
10.01_面向对象(package关键字的概述及作用) A:为什么要有包 *开发时有很多类,如果放在一个文件夹中不方便管理,而且容易重复 将字节码(.class)进行分类存放 包其实就是文件夹 B: ...
 - 面向对象-this关键字的概述和应用
		
/* 我们曾经说过:定义名字要做到见名知意. this:是当前类的对象引用.简单的记,它就代表当前类的一个对象. 注意:谁调用这个方法,在该方法内部的this就代表谁. this的场景: 解决局部变量 ...
 - 面向对象-static关键字实战案例
		
面向对象-static关键字实战案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.static关键字概述 1>.static的功能 static关键字用于修饰成员变量和 ...
 - JAVA面向对象-----final关键字
		
JAVA面向对象-–final关键字 1:定义静态方法求圆的面积 2:定义静态方法求圆的周长 3:发现方法中有重复的代码,就是PI,圆周率. 1:如果需要提高计算精度,就需要修改每个方法中圆周率. 4 ...
 - JAVA面向对象-----super关键字
		
JAVA面向对象-–super关键字 1:定义Father(父类)类 1:成员变量int x=1; 2:构造方法无参的和有参的,有输出语句 2:定义Son类extends Father类 1:成员变量 ...
 - Java面向对象-static关键字、静态方法与普通方法、静态成员变量
		
Java面向对象-static关键字.静态方法与普通方法 static关键字的基本作用:方便在没有创建对象的情况下来进行调用(方法/变量). 很显然,被static关键字修饰的方法或者变量不需要依赖于 ...
 - Java基础语法(11)-面向对象之关键字
		
title: Java基础语法(11)-面向对象之关键字 blog: CSDN data: Java学习路线及视频 1.this this是什么 它在方法内部使用,即这个方法所属对象的引用: clas ...
 - 黑马程序员——【Java基础】——面向对象(一)概述、类与对象、继承、抽象类、接口、多态、内部类
		
---------- android培训.java培训.期待与您交流! ---------- 一.面向对象概述 1.面向对象:是一个很抽象的概念,它相对面向过程而言,是一种程序设计的思想. 2.面向对 ...
 - PHP中面向对象的关键字
		
php面向对象中常用的关键字有final.static.const (1)final: 1,final不能修饰成员属性 2,final只能修饰类和方法 作用: 使用final修饰的类不能被子类继承 使 ...
 
随机推荐
- JavaWeb项目:Shiro实现简单的权限控制(整合SSM)
			
该demo整合Shiro的相关配置参考开涛的博客 数据库表格相关设计 表格设计得比较简单,导航栏直接由角色表auth_role的角色描述vRoleDesc(父结点)和角色相关权限中的权限描述(标记为 ...
 - jmeter遍历时间戳
			
list如下 实现步骤 实现步骤其实很简单,只需要一个foreach控制器,和一段转换时间戳的代码 第一步把时间戳提取出来 第二步把提取的时间戳传入foreach控制器,然后在控制器下面遍历转换 im ...
 - VBA计算器的全部实现
			
我们将加入 除零逻辑 和 对话框提示. 后面 就很简单了~~~ 提供效果图跟 代码 代码示例 Sub 矩形1_Click() ' ' 矩形1_Click Macro ' 代码编辑 Dim number ...
 - Cocos2d-X网络编程(3) Cocos2d中的网络通信协议——WebSocket协议
			
WebSocket protocol 是HTML5一种新的协议.它实现了浏览器与服务器全双工通信.实现浏览器与服务器的即时通讯.即服务器也能主动向客户端发消息. WebSocket代理类和方法: co ...
 - 磁盘管理|df、du|分区 fdisk |格式化
			
3.磁盘管理 3.1命令df ·用于查看已挂载磁盘的总容量,使用容量,剩余容量等. -i:查看inodes的使用情况 -h:使用合适的单位显示 -k:以KB为单位显示 -m:以MB为单位显示 3.1. ...
 - python 并发编程 多进程 队列
			
队列介绍 进程彼此之间互相隔离,要实现进程间通信(IPC),multiprocessing模块支持两种形式:队列和管道,这两种方式都是使用消息传递的 创建队列的类(底层就是以管道和锁定的方式实现) 制 ...
 - laravel框架源码分析(一)自动加载
			
一.前言 使用php已有好几年,laravel的使用也是有好长时间,但是一直对于框架源码的理解不深,原因很多,归根到底还是php基础不扎实,所以源码看起来也比较吃力.最近有时间,所以开启第5.6遍的框 ...
 - mybatis源码级别深度剖析
			
mybatis 3.x源码深度解析与最佳实践 Mybatis源码解析优秀博文
 - 浅拷贝&深拷贝
			
浅拷贝新的对象指向原来对象的地址 深拷贝新的对象中,原来是可变对象,会新复制一份值指向新的地址[11,22,33]若原来的对象里含有可变对象,里面的这个可变对象也会指向新的地址['qwer', 123 ...
 - P1311选择客栈
			
这是2011年提高组D1T2,是一个绿色的模拟题,不出所料,没写出代码来. 首先输入n个客栈的颜色和最低消费,然后根据“同颜色但不是一个客栈”以及“两个客栈之间必须有一个的最低消费<=p&quo ...