一、方法的签名:方法名+参数列表
方法的签名包括方法名和参数列表两部分,举例如下:
(1).方法名:study,参数列表为()括号,里面什么也没有也可以
(2).方法名:sayHi,参数列表为()括号,里面什么也没有也可以
二、方法的重载(Overload):
(1)发生在同一类中,方法名称相同,参数列表不同,方法体不同
(2)编译器在编译时会根据方法的签名自动绑定方法
代码如下(示例):
void Student(){
}
void Student(int a){
}
void Student(double b){
}
void Student(boolean b){
}
void Student(char c){
}
void Student(String s){
}
以上方法都是方法名相同,参数列表不同,这就是方法的重载
三、构造方法:----------------代码复用
(1)给成员变量赋初值
(2)与类同名,没有返回值类型(连void没有)
(3)在创建(new)对象时被自动调用
(4)若自己不写构造方法,则编译器默认提供一个无参的构造方法,
若自己写了构造方法,则不再默认提供
(5)构造方法可以重载
.
构造方法的演示如下
代码如下(示例):
三、this的用法:
this:指代当前对象,哪个对象调用方法它指的就是哪个对象
只能用在方法中,方法中访问成员变量之前默认有个this.
(1)this.成员变量名-----------访问成员变量
(2)this.方法名()-------------调用方法(一般不用)
(3)this()--------------------调用构造方法(应用率低)
java规定:
1.成员变量和局部变量是可以同名的
----使用变量的时候,采用的是就近原则
----此时若想访问成员变量,则this不能省略
2.当成员变量与局部变量同名时,访问成员变量前的this不能省略
当成员变量与局部变量不同名时,this可以省略
代码如下(示例):
三、什么是NullPointerException
内存管理:由JVM来管理的
(1)堆:存储new出来的对象(包括成员变量)
(2)栈:存储局部变量
(3)null:表示空,没有指向任何对象
若引用的值为null,则该引用不能再进行任何点操作了
若点操作则发生NullPointerException空指针异常
这两句话是什么意思呢?我画个图给大家展示一下
Student zs = new Student();
如果创建了学生对象的话不给成员变量赋值的情况解析:
我们在new一个学生对象的时候,只要new了,new出来的对象就会储存在堆中,那么如果我们不给类中的成员变量赋值的时候,那么new出来的对象他的一些属性就会默认为默认值,通常情况下:
byte,short,int,long,char-----------默认为0
float,double--------------------------默认为0.0
boolean-------------------------------默认为false
引用类型------------------------------默认为null
引用类型变量是可以赋值为null的,当我们new了一个学生对象zs,只要new了,堆中就会存放这个学生对象,zs是局部变量是存放在栈中,zs后边有一个内存地址,这个地址与堆中的地址相对应,只要在访问的时候我们就可以听过栈中的内存地址找到堆中的对象
当new了一个学生对象zs的时候,给zs这个变量赋值为null的时候,那么这个时候zs在栈中就没有内存地址了,没有就表示空,就没有任何指向了,这个时候如果想将堆中的年龄25改为36,就会发生NullPointerException空指针异常,报错