面向对象this关键字和概述和应用

面向对象this关键字和概述和应用
 1 package thisdemo;
 2
 3 /**
 4  * 面向对象this关键字和概述和应用
 5  *
 6  */
 7
 8 //定义老师类
 9 class Teacher {
10     private String name;
11     private int age;
12
13     //设置姓名值
14     public void setName(String n){
15         name = n;
16     }
17
18     //获取姓名值
19     public String getName(){
20         return name;
21     }
22
23     public void setAge(int a){
24         age = a;
25     }
26
27     public int getAge(){
28         return age;
29     }
30
31 }
32
33 class Test{
34     public static void main(String[] args){
35         Teacher t = new Teacher();
36         //给成员变量赋值
37         t.setName("张三");
38         t.setAge(23);
39         //获取成员变量的值
40         System.out.println(t.getName() + "---" + t.getAge());
41     }
42 }

输出结果:

张三---23

修改以上案例,我们知道,给变量取名字讲究见名知意,但是对于public void setName(String n)和public void setAge(int a)中的参数a和n就没有做到见名知意,所以修改代码如下:

1 public void setName(String name){
2         name = name;
3 }
4
5 public void setAge(int age){
6     age = age;
7 }     

输出:

1 null---0

分析案例2的结果:

因为变量的使用遵循就近原则,所以name = name; 左边对应的是形式参数的name,右边对应的也是形式参数的name,这里的意思是将自己赋值给了自己,无意义。而此时,成员变量name和age中存储的还是默认值null和0

我们想使用的是:Student类.name = name;Java就为我们提供了一个关键字this,this代表当前类的对象引用,也就是代表当前类的一个对象。

案例三:

1 public void setName(String name){
2         this.name = name;
3     }
4     public void setAge(int age){
5         this.age = age;
6     }

输出:

1 张三---23

需要注意的是:

1. 方法被哪个对象调用,this就代表哪个对象

2. 什么时候使用this呢?

  解决局部变量隐藏成员变量的问题

				
时间: 2024-08-07 08:20:00

面向对象this关键字和概述和应用的相关文章

10 面向对象(package关键字的概述及作用)

10.01_面向对象(package关键字的概述及作用) A:为什么要有包 *开发时有很多类,如果放在一个文件夹中不方便管理,而且容易重复 将字节码(.class)进行分类存放 包其实就是文件夹 B:包的概述 举例: 学生:增加,删除,修改,查询 老师:增加,删除,修改,查询 - 方案1:按照功能分 com.heima.add AddStudent AddTeacher com.heima.delete DeleteStudent DeleteTeacher com.heima.update U

48 面向对象private关键字的概述和特点

1 class Demo2_Phone{ 2 3 4 public static void main(String[] args) { 5 6 7 Phone p1 = new Phone(); 8 p1.setPrice(10); 9 System.out.println(p1.getPrice()); 10 } 11 } 12 13 class Phone{ 14 String brand; 15 private int price; 16 17 public void call(){ 18

JAVA面向对象-----super关键字

JAVA面向对象-–super关键字 1:定义Father(父类)类 1:成员变量int x=1; 2:构造方法无参的和有参的,有输出语句 2:定义Son类extends Father类 1:成员变量int y=1; 2:构造方法无参和有参的.有输出语句this.y=y+x; 3:创建Son类对象 Son son=new Son(3); System.out.println(son.y); //4 class Father { int x = 1; Father() { System.out.p

关键字的概述和使用

01.01关键字的概述和使用 l  关键字概述 被Java语言赋予特定含义的单词 l  关键字特点 组成关键字的字母全部小写 l  关键字注意事项 goto和const作为保留字存在,目前并不使用 类似Notepad++这样的高级记事本,针对关键字有特殊的颜色标记,非常直观 KeyWordDemo /* 关键字:被java语言赋予特定含义的单词. 特点:组成关键字单词的字母全部小写. 注意: A:goto和const是保留字 B:类似于Notepad++这样的高级记事本,针对关键字都有特殊的颜色

3.03_面向对象(static关键字及内存图)

* A:案例演示     * 通过一个案例引入static关键字.     * 人类:Person.每个人都有国籍,中国. * B:画图演示     * 带有static的内存图 lass Demo1_Static { public static void main(String[] args) { /*Person p1 = new Person();  //创建对象 p1.name = "苍老师";                   //调用姓名属性并赋值 p1.country

黑马程序员——面向对象(一)概述、类与对象、继承、抽象类、接口、多态、内部类

一.面向对象概述 1.面向对象:是一个很抽象的概念,它相对面向过程而言,是一种程序设计的思想. 2.面向对象的特点: * 符合人们思考习惯的思想 * 可以将复杂的事情简单化 * 将程序员从执行者转换成了指挥者 * 完成需求时:只需要寻找具备所需功能的对象或者创建所需功能的对象即可,简化开发效率并提高对象的复用性. 3.面向对象的三个特征:封装(Encapsulation).继承(Inheritance).多态(Polymorphism). 二.类与对象 (一)类与对象之间的关系 1.类的定义:类

java面向对象:面向对象的思想和概述

1:面向对象思想 面向对象是基于面向过程的编程思想. 面向过程:强调的是每一个功能的步骤 面向对象:强调的是对象,然后由对象去调用功能 2:面向对象的思想特点 A:是一种更符合我们思想习惯的思想 B:可以将复杂的事情简单化 C:将我们从执行者变成了指挥者 开发,设计,特征 面向对象开发 就是不断的创建对象,使用对象,指挥对象做事情. 面向对象设计 其实就是在管理和维护对象之间的关系. 面向对象特征 封装(encapsulation) 继承(inheritance) 多态(polymorphism

JavaScript面向对象轻松入门之概述(demo by ES5、ES6、TypeScript)

写在前面的话 这是一个JavaScript面向对象系列的文章,本篇文章主要讲概述,介绍面向对象,后面计划还会有5篇文章,讲抽象.封装.继承.多态,最后再来一个综合. 说实话,写JavaScript面向对象的文章实在是太多了,网上一搜一大堆,很多书里面也介绍的很详细.但作者当初在学习面向对象的时候还是非常困难,特别是在习惯了面向过程编程的情况下,不知道大家有没有这个感受. 作者分析了一下其中的原因,恐怕是因为里面涉及的概念太多:原型.原型链.继承.this.constructor.call等等,这

07 JAVA语言基础关键字的概述和使用

关键字概述 被java语言赋予特定含义的单词 关键字特点 组成关键字的字母全部小写 关键字注意事事项 goto和const作为保留字存在,目前并不使用 关键字图表