java---day01
Shoot射击游戏第一天:
1.创建6个对象类,创建World类测试
正课:
1.什么是类?什么是对象?
1)现实世界是由很多对象组成的
基于对象抽出类
2)对象:真实存在的单个的个体
类:类型/类别,代表一类个体
3)类中可以包含:
3.1)所有对象所共有的属性/特征----------------成员变量
3.2)所有对象所共有的行为---------------------方法
4)一个类可以创建多个对象,
同一类型的多个对象,结构相同,数据不同
5)类是对象的模板,对象是类的具体的实例
2.如何创建类?如何创建对象?如何访问成员?
需求:
1)共3种敌人(小敌机、大敌机、小蜜蜂)
英雄机可以发射子弹,子弹可以打敌人:
1.1)打掉小敌机-----------玩家得1分
1.2)打掉大敌机-----------玩家得3分
1.3)打掉小蜜蜂-----------英雄机得奖励(1条命、40火力值)
2)英雄机默认3条命,默认火力值为0(单倍火力)
当火力值大于0时,为双倍火力,发一次双倍火力,则火力值减2
3)敌人可以和英雄机撞,与英雄机撞上之后:
3.1)英雄机减1条命,并且,火力值归零
当英雄机命数为0时,游戏结束
4)所有飞行的对象都是在天空上飞的
1)找对象:英雄机、子弹、小敌机、大敌机、小蜜蜂、天空
2)抽类:Hero、Bullet、Airplane、BigAirplane、Bee、Sky
3)设计类中的成员变量和方法:
4)创建对象并测试:
class Hero{ //英雄机
x,y,width,height,life,doubleFire
void step(){ //切换图片
hero0和hero1切换
}
void moveTo(int x,int y){ //英雄机随着鼠标动
}
}
MyShoot
cn.tedu.shoot
Hero
Airplane
BigAirplane
Bullet
Bee
Sky
class Airplane{
width,height,x,y,speed
void step(){
}
}
Hero:
width,height,x,y,life,doubleFire,step(),moveTo(int x,int y)
Airplane:
width,height,x,y,speed,step()
BigAirplane:
width,height,x,y,speed,step()
Bee:
width,height,x,y,xSpeed,ySpeed,awardType,step()
Bullet:
width,height,x,y,speed,step()
Sky:
width,height,x,y,speed,y1,step()
World:
class BigAirplane{
}
class Bee{
}
class Bullet{
}
class Sky{
}
Student zs = new Student();
引用
数据类型 引用类型变量 指向 对象
Student zs = new Student();
基本类型变量(变量)
int a;
zs.name = "zhangsan";
zs.age = 25;
null
Student
StudentTest
oo.day01
类 对象
月饼模子 月饼
Student zs = new Student();
zs.name = "zhangsan";
zs.age = 25;
zs.address = "河北廊坊";
zs.stuId = "111";
zs.eat();
zs.sleep();
zs.study();
zs.abc = 250; //编译错误,没有abc这个属性
Student ls = new Student();
ls.name = "lisi";
ls.age = 27;
ls.address = "黑龙江佳木斯";
ls.stuId = "222";
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();
Student zl = new Student();
class Teacher{
String name;
int age;
String address;
char gender;
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 老师
GJ
GT
张三 学生
李四
王五
小花 狗
小黑
小强
奥迪 汽车
奥拓
马六
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 ee = new Emp(); //创建了一个雇员对象
ee.name = "zhangsan";
ee.age = 25;
ee.salary = 5000.0;
ee.print();
}
}
基本数据类型----------------只能装一个数据
数组------------------------必须类型相同的数
自己造个数据类型------------想装什么就装什么
面向过程的弊端:
1)缺乏对数据的封装
2)数据和方法(操作数据)的分离
高质量的代码:
复用性好、扩展性好、维护性好、
可移植性好、健壮性好、可读性好、效率好...
清华思路-------------环保、GIS
开发-------40多人,项目多
设计者----------------抽了4个人(花费2个月时间做了一套框架)
福州夜间施工项目----------加功能
30万
我一个人,每天最多一个小时,5天搞定了
-------------------------------------------5个小时
某和----------OA办公系统(.net做的)
Java做的-------了解
A公司:改一点
B公司:改一点
C公司:改一点
产品-----------适应很多家公司的
项目-----------只能适应一家公司的
面向对象:OO
OOA:面向对象分析
OOD:面向对象设计
OOAD:面向对象分析与设计
OOP:面向对象编程------------------你们所参与的
晕乎乎的过来的--------------------正常的
不晕不正常:
1)什么也不会
2)自以为不晕-----------------很不错很不错的状态
语言基础:
1)固定的(画一个圆形)
2)去银行取钱
面向对象:难
1)抽象的(画一个图形)
2)向着社会主义社会发展
猜字符小游戏
射击游戏
面向过程编程
面向对象编程
贯穿项目------------理论+项目
面向对象10天