oo.day05

xiaoxiao2021-02-28  10

Shoot射击游戏第一天: 1)设计Hero、Sky、Airplane、BigAirplane、Bee、Bullet对象类 2)设计World世界类,action()中: 创建对象并测试 Shoot射击游戏第二天: 1)设计Hero、Sky、Airplane、BigAirplane、Bee、Bullet的构造方法 2)在World类的action()中: 创建对象并测试 Shoot射击游戏第三天: 1)设计Airplane数组、BigAirplane数组、Bee数组、Bullet数组 2)创建FlyingObject超类,重构6个对象类(继承) 3)在超类FlyingObject中设计两个构造方法--------代码复用 4)在World类的action()中: 创建对象并测试 Shoot射击游戏第四天: 1)将Airplane数组、BigAirplane数组、Bee数组装到一个FlyingObject数组中 2)重写超类FlyingObject中的step()方法 3)画窗口 4)在World类的action()中: 创建对象并测试 Shoot射击游戏第五天: 1)将所有类的成员添加访问控制修饰符 2)设计对象的图片属性 3)在World类的action()中: 创建对象并测试 回顾: 1.向上造型:   1)超类型的引用指向派生类的对象   2)能点出来什么,看引用的类型 2.方法的重写(Override):   1)发生在父子类中,方法名相同,参数列表相同,方法体不同   2)重写方法被调用时,看对象的类型 3.重写与重载的区别:   1)重写:发生在父子类中,方法名相同,参数列表相同,方法体不同          "运行期"绑定,看对象   2)重载:发生在一个类中,方法名相同,参数列表不同,方法体不同          "编译期"绑定,看参数(引用) 笔记: 1.package:   1)作用:避免类名的冲突   2)包名常常是有层次结构的   3)类的全称: 包名.类名   4)建议:包名所有字母都小写   import:   1)同包中的类可以直接访问,     不同包中的类不能直接访问,想访问只有如下两种方式: 1.1)先import声明类再访问类------建议 1.2)类的全称---------------------太繁琐,不建议 2.访问控制修饰符:   1)public:公共的,任何类   2)private:私有的,本类   3)protected:受保护的,本类、子类、同包类   4)默认的:什么也不写,本类、同包类   类的访问控制修饰符,只能是public和默认的   类中成员的访问控制修饰符,如上4种都可以 3.final:最终的、不可改变的---------应用率低   1)修饰变量:变量不能被改变   2)修饰方法:方法不能被重写   3)修饰类:类不能被继承 4.static:静态的   1)静态变量:     1.1)由static修饰 1.2)属于类的,存在方法区中,只有一份 1.3)常常通过类名点来访问 1.4)何时用:所有对象所共享的数据(图片、音频、视频等)   2)静态方法:     2.1)由static修饰 2.2)属于类的,存在方法区中,只有一份 2.3)常常通过类名点来访问 2.4)静态方法没有隐式this传递,    所以在静态方法中不能直接访问实例成员 2.5)何时用:方法的操作仅与参数相关而与对象无关   3)静态块:     3.1)由static修饰 3.2)属于类的,在类被加载期间自动执行    因类只被加载一次,所以静态块也只执行一次 3.3)何时用:加载/初始化静态资源(图片、音频、视频等) 5.static final常量:明天讲 静态变量: 对象的图片属性 静态方法: 读取图片行为 静态块: 给对象的图片属性赋值 对文件操作,是特别容易出现异常的 --------------所以很多时候,java要求必须做异常处理 天空-----------1张图 子弹-----------1张图 英雄机---------6张图 小敌机---------5张图 大敌机---------5张图 小蜜蜂---------5张图 sayHi(),study(),teach()...... 小敌机-------step()行为 double b = Math.sqrt(25);----------静态方法 无论m1,m2,m3,...,m100中的哪一个对象   去sqrt(25),最终的结果都是一样的   说明sqrt()的操作仅与参数相关而与对象无关 假设sqrt()不是静态的:   Math m1 = new Math();   double a = m1.sqrt(25);   Math m2 = new Math();   double a = m2.sqrt(25);   Math m3 = new Math();   double a = m3.sqrt(25); Arrays.sort(arr);-----------静态方法 无论a1,a2,a3,...,a100中的哪一个对象 去sort(arr)的最终结果都是一样的 说明sort()的操作仅与参数相关而与对象无关 假设sort()不是静态的:   Arrays a1 = new Arrays();   a1.sort(arr);   Arrays a2 = new Arrays();   a2.sort(arr);   Arrays a3 = new Arrays();   a3.sort(arr); Arrays.sort(arr); int[] a1 = Arrays.copyOf(arr,6); double a = Math.random();  //静态方法 double b = Math.sqrt(25); Scanner scan = new Scanner(System.in); int b = scan.nextInt(); double c = scan.nextDouble(); //实例方法 实例变量多,还是,静态变量多----------实例变量多 实例方法多,还是,静态方法多----------实例方法多 很多个小敌机-------- 王者荣耀----------------map.jpg 静下来------------------a.mp4 吸血鬼日记第6季第1集----b.avi 成员变量分两种: 1)实例变量:没有static修饰,属于对象的,存在堆中,            有几个对象就有几份            通过对象名.来访问 2)静态变量:有static修饰,属于类的,存在方法区中,            只有一份   通过类名.来访问 堆:new出来的对象(包括实例变量) 栈:方法中的局部变量(包括参数) 方法区:.class字节码文件(包括方法、静态变量) class Aoo{   int a; //实例变量   static int b; //静态变量 } 方法------------public 变量------------private和protected   1)派生类的变量-------private   2)超类的变量---------protected java建议默认修饰吗?-----------------不建议 数据(变量)私有化(private),行为(方法)公开化(public) class Card{   private String cardId;   private String cardPwd;   private double balance;      public boolean payMoney(double money){     if(balance>=money){  balance-=money;  return true; }else{  return false; }   }   public boolean checkPwd(String pwd){     if(cardPwd.equals(pwd)){  return true; }else{  return false; }   } } package java.util; class Scanner{   Scanner(Stream s){   }   int nextInt(){   }   double nextDouble(){   }   String next(){   } } import java.util.Scanner; Scanner scan = new Scanner(System.in); int a = scan.nextInt(); double b = scan.nextDouble(); String c = scan.next(); A公司:   package cn.tedu.b.c;   class Aoo{   } B公司:   package com.taobao.b.c;   class Aoo{   } 建议:   域名反写   . 项目名称 . 模块名称     . 类名   cn.tedu    . aproject  . stumanager   . Student   cn.tedu    . aproject  . teachmanager . Teacher   cn.tedu    . bproject 可移植性   com.taobao . package a.b.c.d.e.f.g; class Aoo{ } package a; class Aoo{ //a.Aoo } package b; class Aoo{ //b.Aoo } 建项目-----------小区 建包-------------楼号+单元号 建类-------------房子 601 C语言: printf("%d",a); 讲一个小功能-----一个月时间 项目代码: 1.添加访问控制修饰符 2.准备图片
转载请注明原文地址: https://www.6miu.com/read-2149990.html

最新回复(0)