1)发生在同一个类中,方法名称相同,参数列表不同,方法体不同
2)编译器在编译时会根据方法的签名自动绑定调用的方法
2)重载与返回值类型/参数名称无关
3)方法的签名--名字+参数列表,如sum(int num1,int num2)
pay(double money){...}
pay(String cardId,String cardPwd){...}
pay(String compayName,double money){...}
1)同一个文件中,可以包含多个类
2)public修饰的类,只能有一个
3)public修饰的类必须与文件名相同
1)专门给成员变量赋初值
2)方法名与类同名,没有返回值类型(没有void)
3)在创建(new)对象时被自动调用
4)若自己不写构造方法,则编译器默认一个无参构造方法,
若自己写了构造方法,则不再默认提供
5)构造方法可以重载
只能用在方法体中,方法中访问成员变量之前默认有个this.
this的用法:
1)this.成员变量名-------访问成员变量
2)this.方法名()---------调用方法(一般不用)
3)this()-------------调用构造方法
class Foo{
int a=5;
}
class Koo extends Foo{
int a=6;
public void test(int a){
System.out.println(a+","+this.a+","+super.a);//a为参数a,this.a为6,super.a为5
}
}
在main方法中:
Koo k=new koo();
k.test(8);
例如:
Student zs=new Student();
zs.age=25;
zs=null;//引用的值为空,没有指向任何对象
zs.age=28;//则发生空指针异常NullPointerException
1)堆:new出来的对象(包括成员变量)
2)栈:局部变量
3)方法区:.class字节码文件(包括方法)
1)指向同一个对象
2)通过一个引用对数据的修改会影响另一个引用对数据的访问
eg: 房子钥匙
1)赋值
2)对一个变量的修改不会影响另一个变量的访问
eg:身份证复印件