oo.day01

Shoot射击游戏第一天:
1.创建了6个对象类,创建World测试


回顾:
1.猜字符小游戏:
  算法:
    1)generate()生成随机字符数组
    2)main()主流程


笔记:
1.什么是类?什么是对象?
  1)现实世界是由很多对象组成的
    基于对象抽出类
  2)对象:真实存在的单个的个体
    类:类型/类别,代表一类个体
  3)类中可以包含:
    3.1)所有对象所共有的属性/特征--------成员变量
    3.2)所有对象所共有的行为-------------方法
  4)一个类可以创建多个对象
    同一类型的多个对象,结构相同,数据不同
  5)类是对象的模板,对象是类的具体的实例
2.如何创建类?class如何创建对象?new 如何访问成员?this.
练习:
1)oo.day02包中----Student和StudentTest
2)将今天的代码重做两次

Shoot射击游戏需求:
1)角色:英雄机、小敌机、大敌机、小蜜蜂、子弹、天空
  关系:英雄机发射子弹
       子弹射击敌人(小敌机、大敌机、小蜜蜂)
       英雄机与敌人(小敌机、大敌机、小蜜蜂)碰撞
       所有对象都飞行在天空上
2)子弹射击敌人:
    子弹消失、敌人消失
    若被撞敌人是小敌机,则玩家增1分
                大敌机,则玩家增3分
        小蜜蜂,英雄机得奖励(1命、40火力值)
3)英雄机发射子弹,分单倍(1发子弹)和双倍(2发子弹)
  英雄机的火力值>0则双倍火力,否则单倍火力
  得火力奖励时,一次得40火力值,累加
  发射一次双倍火力,则火力值减2
4)英雄机与敌人碰撞:
    敌人消失
    英雄机减1命、清空火力值(直接归0)
  当英雄机的命数为0时,则游戏结束 

MyShoot
cn.tedu.shoot


角色:
  英雄机、小敌机、大敌机、小蜜蜂、子弹、天空

class Hero{ //英雄机
  life,doubleFire,width,height,x,y
  
  void shoot(){ //发射子弹
  }
  void moveTo(int x,int y){ //英雄机随着鼠标动
  }
  void step(){ //图片切换
  }
}


class Airplane{ //小敌机
  width,height,x,y,speed
  void step(){
    y
  }
}

Hero:
  width,height,x,y,life,doubleFire
  moveTo(int x,int y),step()
Airplane:
  width,height,x,y,speed,step()
BigAirplane:
  width,height,x,y,speed,step()
Bullet:
  width,height,x,y,speed,step()
Bee:
  width,height,x,y,xSpeed,ySpeed,awardType,step()
Sky:
  width,height,x,y,speed,y1,step()

class BigAirplane{ //大敌机
}
class Bee{ //小蜜蜂
}
class Bullet{ //子弹
}
class Sky{ //天空
}


new Student(); //创建学生对象

Student zs = new Student(); //创建学生对象
zs.name = "zhangsan";

             引用       指向       对象
数据类型  引用类型变量
Student       zs          =      new Student();

Student zs = new Student();

    基本类型变量(变量)
int    a;


byte,short,int,long,char----------0
float,double----------------------0.0
boolean---------------------------false
引用类型--------------------------null

类:引用类型
数组:引用类型


oo.day01
Student----------不包含main
StudentTest------包含main


  类             对象
月饼模子         月饼

Student zs = new Student();
zs.name = "zhangsan";
zs.age = 25;
zs.address = "河北廊坊";
zs.stuId = "001";
zs.eat();
zs.sleep();
zs.study();
zs.abc = 123; //编译错误,没有abc属性

Student ls = new Student();
ls.name = "lisi";
ls.age = 27;
ls.address = "黑龙江佳木斯";
ls.stuId = "002";
ls.eat();
ls.sleep();
ls.study();

class Student{
  String name;
  int age;
  String address;
  String stuId;
  void eat(){}
  void sleep(){}
  void study(){}
}


Student zs = new Student();
Student ls = new Student();
Student ww = new Student();


class Teacher{
  String name;
  int age;
  String address;
  double salary;
  void eat(){}
  void sleep(){}
  void teach(){}
}
class Dog{
  String type;
  String color;
  void 看门(){}
}
class Car{
  String type;
  String color;
  double price;
  void run(){}
  void back(){}
  void stop(){}
}


对象                类
WKJ                老师
LK
ZY

张三               学生
李四
王五

小黑               狗
小花
小强

马六               汽车               
奥迪
奥拓

面向过程的程序设计弊端:
1)缺乏对数据的封装
2)数据与方法(操作数据)的分离


class Emp{ //Emp就是我自己造的数据类型(引用类型)
  String name;
  int age;
  double salary;
  void print(){
    System.out.println("姓名:"+name);
    System.out.println("年龄:"+age);
    System.out.println("工资:"+salary);
  }
}

class Test{
  public static void main(String[] args){
    Emp e = new Emp(); //创建了一个Emp的对象
    e.name = "zhangsan";
    e.age = 25;
    e.salary = 5000.0;
    e.print();
  }
}

基本数据类型-----------只能装一个数据
数组-------------------数据类型必须相同
自己造个数据类型-------想装什么就装什么


OO:面向对象
OOA:面向对象分析
OOD:面向对象设计
OOAD:面向对象分析与设计
OOP:面向对象编程--------------你们的角色

语言基础:
1)固定(猜字符游戏)
2)去银行取钱

面向对象:难
1)抽象(射击游戏)
2)向着社会主义社会发展

晕乎乎的过来的-----------------正常的

不晕:
1)什么也不会-------------------下个月见
2)自以为不晕-------------------很不错很不错的了


高质量的代码:-----目标
  复用性好、扩展性好、维护性好、
  可移植性好、健壮性好、可读性好、效率好...

抽了4个人出来-----------花费2个月时间做一套框架
清华思路------环保、GIS、MIS
每个项目---------用户管理、角色管理

某和
OA办公系统------产品(.net)

java来实现

A公司:删除/修改/增加一些
B公司:删除/修改/增加一些
C公司:删除/修改/增加一些


产品:可以适应很多公司的
项目:只能适应一个公司的


语言基础---------我讲得多,你们练得少
面向对象---------我讲得少,你们练得多、想得多

public String repairApply(String orderId, String repairId, String lastTime) { LoginUser loginUser = SecurityUtils.getLoginUser(); Map<String, Object> map = repairResumeMapper.selectAllById(repairId); if(!"1".equals(map.get("repair_state"))) { return "申请已被处理"; } if(orderMapper.selectExclusive(orderId, lastTime) == 0) { return "订单发生变更,请刷新页面重新操作"; } Map<String, Object> orderInfo = orderMapper.selectOrderById(Long.parseLong(orderId)); String type = orderInfo.get("order_no_type").toString(); String fType = orderInfo.get("fabrics").toString(); String genNo = ""; if("SU".equals(type)) { genNo = "SU0"; } else { genNo = type + ("3".equals(fType) ? "6" : "8"); } String no = genNoService.genOrderNo(genNo); if(no == null) { return "订单编号超出最大数量限制"; } String day = DictUtils.getDictLabel("delivery_time", fType); Date d = DateUtils.addDays(DateUtils.getNowDate() , Integer.parseInt(day)); Date deTime = DateUtils.parseDate(DateUtils.dateTime(d)); OrderInfo param = new OrderInfo(); param.setOrderNo(no); param.setCreateBy(loginUser.getUsername()); param.setId(orderId); param.setDeliveryTime(deTime); repairResumeMapper.insertRepairOrder(param); OrderFileAsso of = new OrderFileAsso(); of.setOrderId(Long.parseLong(param.getUuid())); of.setFileId(Long.parseLong(map.get("file_id").toString())); of.setFileState("3"); of.setOrderState("2"); fileMapper.insertOrderFileAsso(of); OrderInfo oo = new OrderInfo(); oo.setUuid(orderId); oo.setRepairState("2"); oo.setUpdateBy(loginUser.getUsername()); orderMapper.updateOrder(oo); RepairResume repairResume = new RepairResume(); repairResume.setId(Long.parseLong(repairId)); repairResume.setRepairState("3"); repairResume.setUpdateBy(loginUser.getUsername()); repairResumeMapper.update(repairResume); return ""; }翻译这段代码
06-03
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值