1.this关键字的定义:
this关键字的作用:
如果不用this关键字的话:在name = name时,他是赋值给形参(就近赋值),这个时候加上this关键字,idea就知道你是赋值给当前对象的name
this出现在成员方法中的用法:
package com.itheima.thisdemo;
/*
目标:理解this
this表示当前对象的地址
*/
public class Test {
public static void main(String[] args) {
//创建汽车对象(先有类,然后有对象--new出来)
Car c = new Car();// com.itheima.thisdemo.Car@404b9385
c.run();// com.itheima.thisdemo.Car@404b9385
// 输出对象的地址com.itheima.thisdemo.Car@404b9385
System.out.println(c);
System.out.println("----------------");
Car c1 = new Car("奔驰",18.8);
System.out.println(c1.name);
System.out.println(c1.price);
c1.gowith("宝马");
}
}
// 这是一个新的的Car类
package com.itheima.thisdemo;
public class Car {
String name;
double price;
/*
无参构造器
*/
public Car(){
System.out.println("无参数构造器中的this:" + this);
}
/*
有参构造器
*/
// public Car(String n,double p) 像这种定义形参会被嫌弃(要做到见面知意)
public Car(String name,double price){
// 不写this会被赋值给形参(就近赋值)
this.name = name;
this.price = price; // 用this关键字可以让idea知道左边的price是当前对象成员的price
}
// this在对象方法的用法
public void gowith(String name){
// System.out.println(name + "正在和" + name + "一起比赛"); // 如果不写this都会输出传入值得name
System.out.println(this.name + "正在和" + name + "一起比赛");
}
public void run(){
System.out.println("方法中的this:" + this);
}
}