引用传递
string 类型内容不可更改
创建 class Ref2
对Ref2 进行实例化操作,创建一个对象
通过对象来调用temp的执行
在tell方法中传递一个参数
用r2 调用temp,把temp的值再次修改
用tell(r1)调用temp的执行,同时传递一个r1,因为它们(r1,r2)是同一个对象
)
temp值被改成 jike,开辟了一个新的空间,储存 jike,指向断开,指向 jike
r2 开始也是指向 jike,然后 r2 改变了值,即重新开辟了空间存放了新的值,r1 和 r2 都会开辟新的空间去存,都会指向新的空间,最后 r2断开
this关键字
2、构造方法指的是 重载构造方法之间的调用关系
表示类中的属性和调用方法
this. getName() this表示当前调用的是本类当中的一个getName方法(如果当前类中只有一个getName其实不需要)
(name是同一个对象,People构造方法中的name,没有办法表示当前类中的这两个属性)
应 this.name = name (通过 this 表示本类中的属性,this.getName():通过this来调用当前类中的方法)
调用本类中的构造方法
this(); 调用了重载构造方法的执行,且this(); 必须放在构造方法的首行
表示当前对象
实例化操作并创建对象 p,和 在tell 方法中通过 this 得到的 People1对象,是同一个对象
可以通过这种方式来比较两个对象是否是同一个对象
static 关键字
(3、静态方法不能调用非静态的方法和属性)
1、static 声明全局属性
三次更改 country 属性
把相应的属性改为静态的,即声明为static类型
通过其中任何一个更改都全部更改
静态:公有的一个属性(全局属性)
静态属性(和静态方法)最好通过类名调用:p1.country → Person.country
2、static 声明方法
对于方法:
封装起来
static string country = "北京"; →
private static string country = "北京"; 并实现get() 和 set() 方法
声明为静态,是在对象实例化之前就被调用了(通过类名调用)
3、static静态方法只能调用静态方法和属性,不能调用非静态方法和属性