1、this关键字
1.1、点取属性、点取方法
this关键字用来指向当前对象。
Java编程语言自动将所有的实例变量和方法与this关键字联系在一起。
当成员变量与方法中的局部变量名称相同时,this.变量代表当前对象的成员变量(大括号外边的),不加this的变量代表局部变量(大括号里边的)。
当变量名称不冲突时,this可以省略。
1.2、this()调用构造函数
构造方法可以存在多个,区别在于构造方法的形式参数数量。
在构造方法中,this()代表当前类的构造方法。可以相互调用。但是必须出现在构造方法的第一句,且一个构造方法只能调用一个不同构造方法。
2、引用类型
2.1、什么是引用类型
除去8个基本数据类型,其他的都是引用数据类型,自己定义的class都是引用类型,可以像基本类型一样使用。
比如: MyPoint mp=new MyPoint(); mp就是一个引用类型的变量。
2.2、值传递和引用传递
值传递:按照参数的值传递,传递的是值的拷贝,传递后变量的变化不会相互影响。
如: int a=10; int b=a; a++; 打印的结果是a为11,b为10;
引用传递:按照参数的引用传递,传递的是引用的地址。传递前和传递后指向同一个地址(同一个内存空间),相互影响。
如: class A{ int x;}
A a1=new A(); A a2=a1; a1.x=10; 打印a1.x的结果为10,a2.x的结果也为10;
3、变量
3.1、实例变量和局部变量
~实例变量:声明在类中,永远有默认值。不赋值会有初值。放在堆内存中。
class A{
String name;
}
这个类中的name就是一个实例变量,如果没有初始值就为null。但必须实例A才可使用。
~局部变量:声明在方法中,没有初始默认值,在赋值前使用会导致编译错误。放在栈内存中。(所有方法中的变量都在栈内存中)
public void method(){
String name=“张三”; 无默认值,需要赋值
}
这个方法中,name就是一个局部变量。当方法执行结束后,变量所占用的内存空间就会销毁。
3.2、实例变量的初始化
任何变量都需要初始化后才可以使用,默认为指定的初始化值。如果初始化没有赋值则按下标赋值。
| 数据类型 | 初始值 |
| byte、short、int、long | 0(long为0L) |
| char / double / float | \u0000 / 0.0d / 0.0f |
| boolean/其他 | false/null |
注:空值不引用任何对象,否则会导致空指针一样。
本文详细介绍了Java编程中的`this`关键字,包括如何用于访问对象属性和调用构造函数。同时,解释了引用类型的概念,区分了值传递和引用传递的区别。此外,还探讨了实例变量和局部变量的特性,以及它们的初始化过程和默认值。通过这些内容,读者可以更好地理解Java中对象和变量的管理方式。
2023

被折叠的 条评论
为什么被折叠?



