第5天

1-1.package:

1)作用:避免类的命名冲突

2)包名可以有层次结构,同包中的类不能同名、

3)类的全称:包名.类名

4)建议:包名所有字母都小写----包的命名规则建议用:域名反写.项目名称.模块名称.类名

1-2.import:

1)同包中的类可以直接访问

    不同包中的类不能直接访问,想访问有如下两种方式:
      1.1)先import声明类再使用类-----建议
      1.2)类的全称-------------------太繁琐、不建议

2.访问控制修饰符----给成员添加访问控制修饰符号(变量private,方法public)

1)public:公开的-----任何类

2)private:私有的------本类

3)protected:受保护的------本类,派生类,同包类

4)默认的(什么也不写):-----本类,同包类

     说明:
        1)类的访问修饰符只能是public或默认的----同一个包中public修饰的类只能有一个
        2)类中成员的访问修饰符如上四种都可以

3.final:最终的、不可改变的----------应用率极低(为static final 常量)

1)修饰变量:变量不能被改变

2)修饰方法:方法不能被重写(可以防止不经意被重写)

3)修饰类:类不能被继承(可以保护类不被继承修改),但final修饰的类可以去继承别的类

4.static:静态的

1)静态变量:

            1.1)由static修饰的
            1.2)属于类的,存储在方法区中,只有一个-----一个类的static成员只由一个,无论创建了多少个对象
            1.3)常常通过类名.变量名来访问----实例变量必须通过对象.变量名访问
            1.4)何时用:所有对象所共享的数据(图片、音频、视频等)----所有人都可以共享的东西可以设置成静态的
                 注意:对象特有的东西不能用static

2)静态方法:

            2.1)由static修饰的
            2.2)属于类的,存储在方法区中,只有一个
            2.3)也是通过类名.方法名来访问----首字母大写的单词.方法名();
            2.4)静态方法名没有隐式的this传递----没有this意味着没有对象
                 静态方法中不能直接访问实例变量/方法(需要先创建对象----类名 对象名=new 类名();,然后通过----对象名.变量/方法去访问)
                 而静态方法可以在当前类中去直接访问静态变量/方法-----需要先创建对象再通过对象点访问的为实例方法
            2.5)何时用:方法的操作(方法体)仅与参数有关(返回值结果多少取决于传的参数多少)
                          而与对象无关(无论创建多少个对象,最终返回值结果都一样)
                  注意:对象的行为不一样不能用static

3)静态块:一般先声明静态变量,再写静态块static{语句块}

            3.1)属于类的,再类被加载期间自动执行,因为类只被加载一次,所以静态块只执行一次
            3.2)何时用:加载/初始化静态资源(图片、音频、视频等)---给静态变量赋初始值

数据(变量)私有化(private)

行为(方法)公开化(public)

例如:

  class Card{
     private String cardId;
     private String cardPwd;
     public boolean checkPwd(String pwd){//验证密码
        if(pwd.equals(cardPwd)){
            return true;
        }else{
            return false;
        }
    }
  }

* 继承、封装、多态

* 成员变量(类里面、方法外面)

  1)实例变量:没有static修饰的,属于对象的,存储在堆中
            有几个对象就有几个,通过对象点名来访问
  2)静态变量:由static修饰的,属于类的,存储在方法区中

* 补充

  1)堆:new出来的对象(包括实例变量)
  2)栈:方法里面的局部变量(包括参数)
  3)方法区:.class字节码文件(包括方法、静态变量)

项目:

  1)添加访问权限
  2)准备图片

Shoot射击游戏第一天:

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

Shoot射击游戏第二天:

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

Shoot射击游戏第三天:

  1.设计小敌机数组、大敌机数组、小蜜蜂数组、子弹数组,并测试
  2.设计FlyingObject超类,6个对象类继承超类
  3.在FlyingObject超类中设计构造方法

Shoot射击游戏第四天:

  1.将小敌机、大敌机、小蜜蜂数组合为FlyingObject数组,并测试
  2.在6个派生类重写FlyingObject类的step()
  3.画窗口

Shoot射击游戏第五天:

  1.给类中成员添加访问控制修饰符
  2.给6个对象类准备图片属性

给六个对象类中的成员(变量和方法)添加访问权限

  1)数据(成员变量)
        1.1)超类中的公有属性protected----只有子类可以访问,其它类访问不了
        1.2)派生类中的私有属性private----父类访问不了
  2)行为(方法)-----公开public

给六个对象类添加图片属性