this 关键字 static关键字

关于java语言当中的this关键字:
1、this是一个关键字, 翻译为:这个
2、this是一个引用,this是一个变量, thi s变量中保存了内存地址指向了自身,this存储在JVM堆内存java对象内部。
3、创建100个iava对象,每一个对象都有this,也就说有100个不同的this
4、this可以出现在“实例方法"”当中,thi s指向当前正在执行这个动作的对象。( this代表当前对象)
5、this在多数情况下都是可以省略不写的
6、thi s不能使用在带有stati c的方法当中

在带有statio的方法当中不能"直接"访问实例变量和实例方法。
因为实例变量和实例方法都需要对象的存在。
而static的方法当中是没有thi s的。也就是说当前对象是不存在的。
自然也是无法访问当前对象的实例变量和实例方法。
"this. "什么时候不能省略?
用来区分局部变量和实例变量的时候,"this 。"不能省略
this可以用在哪里:
1、可以使用在实例方法当中,代表当前对象[语法格式: this.]
2、可以使用在构造方法当中,通过当前的构造方法调用其它的构造方法[语法格式: this (实参) ;]

什么时候程序在运行的时候出现空指针异常呢?
空引用访问实例相关的数据,因为实例相关的数据就是对象相关的数据,
这些数据在访问的时候,必须有对象的参与,当空引用的时候,对象不存在,
访问这些实例数据一-定会出现空指针异常。
实例相关的数据包括:
实例变量[对象需要存在]
实例方法[对象需要存在]
什么时候成员变量声明为实例变量呢?
一所有对象都有这个属性, 但是这个属性的值会随着对象的变化而变化[不同对象的这个属性具体的值不同]
什么时候成员变量声明为静态变量呢?
所有对象都有这个属性,并且所有对象的这个属性的值是一样的, 建议定义为静态变量,节省内存的开销。
静态变量在类加载的时候初始化,内存在方法区中开辟。访问的时候不需要创建对象,直接使用“类名.静态变量名”的方式访问。
实例语句块/代码块[了解内容,使用的非常少]
1.实例代码块可以编写多个,也是遵循自上而下的顺序依次执行
2、实例代码块在构造方法执行之前执行,构造方法执行依次,实例代码块对应执行一-次。
3、实例代码块也是java语言为程序员准备一个特殊的时机,这个特殊时机被称为:对象初始化时机。
public表示公开的,在任何位置都是可以访问的
static表示静态的,使用“类名. "的方式即可访问,不需要创建对象,就可以调用main方法
void表示main方法执行结束之后不返回任何值
main是ma in方法的方法名
(String[] args) 是main方法的形式参数列表
方法什么时候定义为静态的?
方法描述的是动作,当所有的对象执行这个动作的时候,最终产生影响是一样的,那么
这个动作已经不再属于某一个对象动作了 ,可以将这个动作提升为类级别的动作,模板
级别的动作。
静态方法中无法直接访问实例变量和实例方法。
大多数方法都定义为实例方法,-般一个行为或者一个动作在发生的时候,都需要对象的参与。
但是也有例外,例如:大多数“工具类"中的方法都是静态方法,因为工具类就是方便编程,为了
方便方法的调用,自然不需要new对象是最好的。

你可能感兴趣的:(关键字,java,java)