黑马程序员技术交流社区
标题:
this关键字怎么用?
[打印本页]
作者:
怀瑾
时间:
2015-11-17 18:59
标题:
this关键字怎么用?
什么时候用this,解释this的用法?
作者:
Phy_zhang
时间:
2015-11-17 19:45
this最基本的用法就是区分局部变量与成员变量同名情况
例如:
class student
{
int age;
student(int age)
{
this.age = age ; //注意这里有两个age 前面是student的成员变量,后面是形参
}
}
this代表本类对象,代表它所在函数所属对象的引用
简单说:哪个对象在调用this所在的函数,this就代表哪个对象
另外,this语句用于构造函数之间进行相互调用
例如:
class Person
{
String name;
int age ;
Person(){}
Person(String name)
{
this.name = name ;
}
Person(String name, int age)
{
this(name);
this.age = age;
}
}
注意: this语句只能定义在构造函数的第一行,因为初始化要先执行
作者:
……_JKQqB
时间:
2015-11-17 21:05
有条就近原则!
作者:
一个人的朝圣
时间:
2015-11-17 21:24
不错 我刚这个问题有点晕乎
作者:
大耳冬
时间:
2015-11-17 21:55
本帖最后由 大耳冬 于 2015-11-17 21:59 编辑
1L正解,补充下,全局变量与局部变量同名的就近原则,
class Test
{
int i =0;
public show(){
int i=9;
spo(i);
}
}
全局变量和局部变量都有i 那么输出的i到底是多少?就近原则,所以输出的是9;
class student
{
private int age;
public setAge(int age)
{
this.age = age ; //注意这里有两个age 前面是student的成员变量,后面是形参
}
(1)如果你调用setAge方法对age赋值的话,setAge(22);
(2)这个22 传给方法声明中的参数变量age; 如果方法声明中没有this的话 方法体 就是age=age,声明中的age值传给等号右边age,(3)然后右边age值传给左边就近原则的局部变量name的值。相当于自己给自己赋值。对全局变量并没有影响。
所以这时 出现this 代表this.name是全局变量然后 第三步就代表给全局变量赋值了。
作者:
迷茫不堪的年纪
时间:
2015-11-17 22:49
this 一般用在构造函数里(有参和set get), 用来指的是当前引用对象.
作者:
zypt0218
时间:
2015-11-18 00:21
this指当前对象的引用, 就近原则, 记住这个就可以了
作者:
李永佳
时间:
2015-11-18 08:03
本类对象,指代当前对象
作者:
xiao15779706
时间:
2015-11-18 08:25
当前对象的引用
this:用于区分局部变量和成员变量重名的情况;用于构造函数间调用的情况
this:代表本类的对象
this代表所在函数所属对象的引用
哪个对象调用this所在的函数,this就代表哪个对象
this的应用:当定义类中的功能时,该函数内部要用到调用该函数的对象时,这时用this来表示这个对象。
但凡本类功能内部使用本类对象,用this表示
构造函数之间进行调用时用this(XXX)语句;
this语句只能放在构造函数的第一行;因为初始化动作要先执行。
作者:
Rocky_zhang
时间:
2015-11-18 13:55
当前对象(方法)的引用
作者:
草上飞f
时间:
2015-11-18 14:42
哪个对象调用方法,该方法内部的this就代表哪个对象
作者:
小曼_r9qDE
时间:
2015-12-6 23:31
面向对象(this关键字的概述和应用)(掌握) * A:this关键字特点 * 代表当前对象的引用 * B:案例演示 * this的应用场景 * 用来区分成员变量和局部变量重名
作者:
小曼_r9qDE
时间:
2015-12-6 23:35
###06.15_面向对象(this关键字的概述和应用)(掌握) * A:this关键字特点 * 代表当前对象的引用 * B:案例演示 * this的应用场景 * 用来区分成员变量和局部变量重名 ###06.16_面向对象(手机类代码及其测试)(掌握) * A:学生练习 * 请把手机类写成一个标准类,然后创建对象测试功能。 class Demo2_Phone { public static void main(String[] args) { Phone p1 = new Phone(); p1.setBrand("三星"); p1.setPrice(5288); System.out.println(p1.getBrand() + "..." + p1.getPrice()); p1.call(); p1.sendMessage(); p1.playGame(); } } /* 手机类 属性:品牌brand,价格price 行为:打电话call,发短信sendMessage,玩游戏,playGame */ class Phone { //java bean private String brand; //品牌 private int price; //价格 public void setBrand(String brand) { //设置品牌 this.brand = brand; } public String getBrand() { //获取品牌 return this.brand; //this.可以省略,你不加系统会默认给你加 } public void setPrice(int price) { //设置价格 this.price = price; } public int getPrice() { //获取价格 return price; } public void call() { //打电话 System.out.println("打电话"); } public void sendMessage() { //发短信 System.out.println("发短信"); } public void playGame() { //玩游戏 System.out.println("玩游戏"); } }
作者:
小曼_r9qDE
时间:
2015-12-6 23:36
###06.15_面向对象(this关键字的概述和应用)(掌握)
* A:this关键字特点
* 代表当前对象的引用
* B:案例演示
* this的应用场景
* 用来区分成员变量和局部变量重名
###06.16_面向对象(手机类代码及其测试)(掌握)
* A:学生练习
* 请把手机类写成一个标准类,然后创建对象测试功能。
class Demo2_Phone {
public static void main(String[] args) {
Phone p1 = new Phone();
p1.setBrand("三星");
p1.setPrice(5288);
System.out.println(p1.getBrand() + "..." + p1.getPrice());
p1.call();
p1.sendMessage();
p1.playGame();
}
}
/*
手机类
属性:品牌brand,价格price
行为:打电话call,发短信sendMessage,玩游戏,playGame
*/
class Phone { //java bean
private String brand; //品牌
private int price; //价格
public void setBrand(String brand) { //设置品牌
this.brand = brand;
}
public String getBrand() { //获取品牌
return this.brand; //this.可以省略,你不加系统会默认给你加
}
public void setPrice(int price) { //设置价格
this.price = price;
}
public int getPrice() { //获取价格
return price;
}
public void call() { //打电话
System.out.println("打电话");
}
public void sendMessage() { //发短信
System.out.println("发短信");
}
public void playGame() { //玩游戏
System.out.println("玩游戏");
}
}
###06.17_day06总结
* 把今天的知识点总结一遍。
作者:
八宝
时间:
2015-12-6 23:54
嗯嗯,与之对应的super表示调用此类对象的超类,也是要用在构造函数的第一行
作者:
oneforone9
时间:
2016-9-7 10:12
this:当前对象的引用 this定义在方法中,当哪个对象调用这个方法,则this代表哪个对象。 用法: 使用this区分成员变量与局部变量 在方法内,使用this访问的为成员变量,不用this访问的默认为局部变量。 如果方法中访问了一个变量,而该方法中没有定义一个该名称的局部变量,则会继续从成员位置找该变量。
作者:
扶摇直上九万里
时间:
2016-9-7 12:03
1.代表当前对象的引用,谁来调用我 我就代表谁。
2.用来区分成员变量和局部变量。
作者:
毕加索
时间:
2016-9-16 23:36
最简单的记忆方法是 this用在本类中 结合父类的super记忆会更好
作者:
ts5210ts
时间:
2016-9-18 00:41
嗯 楼上已经很全面了
作者:
henryjavaee
时间:
2016-9-18 01:30
谁调用它,它就代表谁,一般是用在方法里
作者:
383412263
时间:
2016-9-28 16:28
Phy_zhang 发表于 2015-11-17 19:45
this最基本的用法就是区分局部变量与成员变量同名情况
例如:
class student
看看学习一下
作者:
chensc
时间:
2016-9-28 22:31
学习学习!
作者:
zhangyiling5
时间:
2016-9-28 23:52
this:本类对象的空间
访问本类对象成员变量 this.变量名
调用本类普通方法 this.方法名(参数)
本类构造方法调用本类其他构造本类构造方法第一行this(参数)
作者:
bluehat
时间:
2016-9-29 00:00
这个指定是调用当前的对象,有时也可调用超类的
作者:
九局下半
时间:
2016-9-29 00:27
局部变量和成员变量重名的情况下。
作者:
xianghui0521
时间:
2016-9-29 12:37
谁调用this this就代表谁
作者:
读书可以当饭吃
时间:
2016-10-5 10:11
this就是本类对象,在自己的类中用自己的变量或方法时使用,一般可以省略
作者:
哦啊啊
时间:
2016-10-5 22:44
代表当前对象的引用 就酱
作者:
hy000936
时间:
2016-10-5 23:19
谁调用this就指谁
作者:
x379769646
时间:
2016-10-6 00:25
1. this是指当前对象自己。
2. 把this作为参数传递
3. 注意匿名类和内部类中的中的this。
4.在构造函数中,通过this可以调用同一class中别的构造函数,如
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2