第2天

1.方法的重载Overload

        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修饰的类必须与文件名相同

2.构造方法(专款专用):

    1)专门给成员变量赋初值
    2)方法名与类同名,没有返回值类型(没有void)
    3)在创建(new)对象时被自动调用
    4)若自己不写构造方法,则编译器默认一个无参构造方法,
       若自己写了构造方法,则不再默认提供
    5)构造方法可以重载

3.this:指代当前对象,哪个对象调用方法它指的就是哪个对象

只能用在方法体中,方法中访问成员变量之前默认有个this.

this的用法:

    1)this.成员变量名-------访问成员变量
    2)this.方法名()---------调用方法(一般不用)
    3)this()-------------调用构造方法

补充:

1)成员变量和局部变量可以同名(内存中没有装一块)

2)用的时候采取的是就近原则----super.也使用就近原则

 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);

3)当成员变量与局部变量同名时,this.不能省略

4.null:空,没有指向任何对象

若引用的值为null,则该引用不能再进行任何操作了(被垃圾回收机制回收了)

若操作则发生空指针异常

例如:
Student zs=new Student();
zs.age=25;
zs=null;//引用的值为空,没有指向任何对象
zs.age=28;//则发生空指针异常NullPointerException

* 补充:

内存管理:由JVM来管理的

1)堆:new出来的对象(包括成员变量)
2)栈:局部变量
3)方法区:.class字节码文件(包括方法)

5.引用类型之间画等号:

1)指向同一个对象
2)通过一个引用对数据的修改会影响另一个引用对数据的访问
  eg: 房子钥匙

6.基本类型之间画等号:

1)赋值
2)对一个变量的修改不会影响另一个变量的访问
  eg:身份证复印件

Shoot射击游戏第一天:

1.创建了6个对象类,并创建World类测试

Shoot射击游戏第二天:

1.给6个对象类添加构造方法,并测试