<--第一天 -->
列表
-
创建战舰类、侦察潜艇类、鱼雷潜艇类、水雷潜艇类、水雷类、深水炸弹类,设计类中的成员变量和move()方法
-
创建World类,在main中:创建1个战舰对象、至少2个侦察潜艇对象、2个鱼雷潜艇对象、2个水雷潜艇对象、2个水雷对象、2个深水炸弹对象,并给属性赋值,调用方法测试
参考
-
创建战舰类、侦察潜艇类、鱼雷潜艇类、水雷潜艇类、水雷类、深水炸弹类,设计类中的成员变量和move()方法
参考代码:
package day01;
//战舰
public class Battleship {
int width;
int height;
int x;
int y;
int speed;
int life;
void move(){
System.out.println("战舰移动");
}
}
package day01;
//侦察潜艇
public class ObserveSubmarine {
int width;
int height;
int x;
int y;
int speed;
void move(){
System.out.println("侦察潜艇x向右移动");
}
}
package day01;
//鱼雷潜艇
public class TorpedoSubmarine {
int width;
int height;
int x;
int y;
int speed;
void move(){
System.out.println("鱼雷潜艇x向右移动");
}
}
package day01;
//水雷潜艇
public class MineSubmarine {
int width;
int height;
int x;
int y;
int speed;
void move(){
System.out.println("水雷潜艇x向右移动");
}
}
package day01;
//水雷
public class Mine {
int width;
int height;
int x;
int y;
int speed;
void move(){
System.out.println("水雷y向上移动");
}
}
package day01;
//深水炸弹
public class Bomb {
int width;
int height;
int x;
int y;
int speed;
void move(){
System.out.println("深水炸弹y向下移动");
}
}
2.创建World类,在main中:创建1个战舰对象、至少2个侦察潜艇对象、2个鱼雷潜艇对象、2个水雷潜艇对象、2个水雷对象、2个深水炸弹对象,并给属性赋值,调用方法测试
参考代码:
package day01;
/** 整个游戏世界 */
public class World {
public static void main(String[] args) {
Battleship s = new Battleship();
s.width = 50;
s.height = 30;
s.x = 100;
s.y = 200;
s.speed = 20;
s.life = 5;
System.out.println(s.width+","+s.height+","+s.x+","+s.y+","+s.speed+","+s.life);
s.move();
ObserveSubmarine os1 = new ObserveSubmarine();
os1.width = 30;
os1.height = 40;
os1.x = 200;
os1.y = 400;
os1.speed = 3;
System.out.println(os1.width+","+os1.height+","+os1.x+","+os1.y+","+os1.speed);
os1.move();
ObserveSubmarine os2 = new ObserveSubmarine();
os2.width = 30;
os2.height = 40;
os2.x = 100;
os2.y = 450;
os2.speed = 3;
System.out.println(os2.width+","+os2.height+","+os2.x+","+os2.y+","+os2.speed);
os2.move();
TorpedoSubmarine ts1 = new TorpedoSubmarine();
TorpedoSubmarine ts2 = new TorpedoSubmarine();
MineSubmarine ms1 = new MineSubmarine();
MineSubmarine ms2 = new MineSubmarine();
Mine m1 = new Mine();
Mine m2 = new Mine();
Bomb b1 = new Bomb();
Bomb b2 = new Bomb();
}
}
<--第二天 -->
列表:
-
给战舰类、侦察潜艇类、鱼雷潜艇类、水雷潜艇类、水雷类、深水炸弹类添加构造方法
-
在main中:创建1个战舰对象、至少4个侦察潜艇对象、2个鱼雷潜艇对象、2个水雷潜艇对象、2个水雷对象、2个深水炸弹对象,测试
参考:
1.给战舰类、侦察潜艇类、鱼雷潜艇类、水雷潜艇类、水雷类、深水炸弹类,添加构造方法
参考代码:
package day02;
//战舰
public class Battleship {
int width;
int height;
int x;
int y;
int speed;
int life;
Battleship(){
width = 66;
height = 26;
x = 270;
y = 124;
speed = 2;
life = 5;
}
void move(){
System.out.println("战舰移动");
}
}
package day02;
import java.util.Random;
//侦察潜艇
public class ObserveSubmarine {
int width;
int height;
int x;
int y;
int speed;
ObserveSubmarine(){
width = 63;
height = 19;
x = -width;
Random rand = new Random();
y = rand.nextInt(479-height-150+1)+150;
speed = rand.nextInt(3)+1;
}
void move(){
System.out.println("侦察潜艇x向右移动");
}
}
package day02;
import java.util.Random;
//鱼雷潜艇
public class TorpedoSubmarine {
int width;
int height;
int x;
int y;
int speed;
TorpedoSubmarine(){
width = 64;
height = 20;
x = -width;
Random rand = new Random();
y = rand.nextInt(479-height-150+1)+150;
speed = rand.nextInt(3)+1;
}
void move(){
System.out.println("鱼雷潜艇x向右移动");
}
}
package day02;
import java.util.Random;
//水雷潜艇
public class MineSubmarine {
int width;
int height;
int x;
int y;
int speed;
MineSubmarine(){
width = 63;
height = 19;
x = -width;
Random rand = new Random();
y = rand.nextInt(479-height-150+1)+150;
speed = rand.nextInt(3)+1;
}
void move(){
System.out.println("水雷潜艇x向右移动");
}
}
package day02;
//水雷
public class Mine {
int width;
int height;
int x;
int y;
int speed;
Mine(int x,int y){
width = 11;
height = 11;
this.x = x;
this.y = y;
speed = 1;
}
void move(){
System.out.println("水雷y向上移动");
}
}
package day02;
//深水炸弹
public class Bomb {
int width;
int height;
int x;
int y;
int speed;
Bomb(int x,int y){
width = 9;
height = 12;
this.x = x;
this.y = y;
speed = 3;
}
void move(){
System.out.println("深水炸弹y向下移动");
}
}
//注:其余类没有变化,此处省略
2.在main中:创建1个战舰对象、至少4个侦察潜艇对象、2个鱼雷潜艇对象、2个水雷潜艇对象、2个水雷对象、2个深水炸弹对象,测试
package day02;
/** 整个游戏世界 */
public class World {
public static void main(String[] args) {
Battleship s = new Battleship();
ObserveSubmarine os1 = new ObserveSubmarine();
ObserveSubmarine os2 = new ObserveSubmarine();
ObserveSubmarine os3 = new ObserveSubmarine();
ObserveSubmarine os4 = new ObserveSubmarine();
TorpedoSubmarine ts1 = new TorpedoSubmarine();
TorpedoSubmarine ts2 = new TorpedoSubmarine();
MineSubmarine ms1 = new MineSubmarine();
MineSubmarine ms2 = new MineSubmarine();
Mine m1 = new Mine(123,345);
Mine m2 = new Mine(345,234);
Bomb b1 = new Bomb(200,300);
Bomb b2 = new Bomb(300,400);
//最少输出4个对象的数据(一定要包括2个侦察潜艇的数据)
System.out.println(s.width+","+s.height+","+s.x+","+s.y+","+s.speed+","+s.life);
System.out.println(os1.width+","+os1.height+","+os1.x+","+os1.y+","+os1.speed);
System.out.println(os2.width+","+os2.height+","+os2.x+","+os2.y+","+os2.speed);
System.out.println(os3.width+","+os3.height+","+os3.x+","+os3.y+","+os3.speed);
System.out.println(os4.width+","+os4.height+","+os4.x+","+os4.y+","+os4.speed);
}
}
//注:其余类没有变化,此处省略
<--第三天 -->
列表:
-
创建侦察艇数组、鱼雷艇数组、水雷艇数组、水雷数组、深水炸弹数组,并填充数据,遍历数组输出坐标并调用move()方法测试
-
创建SeaObject超类,设计6个类继承超类
-
在SeaObject中设计两个构造方法,一个是为三种潜艇提供的,一个是为战舰、水雷、深水炸弹提供的,6个类分别调用超类的构造方法
-
将侦察艇数组、鱼雷艇数组、水雷艇数组统一组合为SeaObject数组,给数组填充数据,遍历数组输出属性并调用move()方法
参考:
-
创建侦察艇数组、鱼雷艇数组、水雷艇数组、水雷数组、深水炸弹数组,并填充数据,遍历数组输出坐标并调用move()方法测试
参考代码:
package day03;
/** 整个游戏世界 */
public class World {
public static void main(String[] args) {
ObserveSubmarine[] oses = new ObserveSubmarine[3];
TorpedoSubmarine[] tses = new TorpedoSubmarine[2];
MineSubmarine[] mses = new MineSubmarine[3]; //水雷潜艇数组
mses[0] = new MineSubmarine();
mses[1] = new MineSubmarine();
mses[2] = new MineSubmarine();
for(int i=0;i<mses.length;i++){ //遍历所有水雷潜艇
System.out.println(mses[i].x+","+mses[i].y); //输出每个水雷潜艇的x和y坐标
mses[i].move(); //每个水雷潜艇移动
}
Mine[] ms = new Mine[2]; //水雷数组
ms[0] = new Mine(100,200);
ms[1] = new Mine(200,400);
for(int i=0;i<ms.length;i++){
System.out.println(ms[i].x+","+ms[i].y);
ms[i].move();
}
Bomb[] bs = new Bomb[2];
}
}
//注:其余类没有变化,此处省略
2.创建SeaObject超类,设计6个类继承超类
参考代码:
package day03;
import java.util.Random;
//海洋对象
public class SeaObject {
int width;
int height;
int x;
int y;
int speed;
void move(){
System.out.println("海洋对象移动");
}
}
package day03;
//战舰
public class Battleship extends SeaObject {
int life;
Battleship(){
width = 66;
height = 26;
x = 270;
y = 124;
speed = 20;
life = 5;
}
}
package day03;
import java.util.Random;
//侦察潜艇
public class ObserveSubmarine extends SeaObject {
ObserveSubmarine(){
width = 63;
height = 19;
x = -width;
Random rand = new Random();
y = rand.nextInt(479-height-150+1)+150;
speed = rand.nextInt(3)+1;
}
}
package day03;
import java.util.Random;
//鱼雷潜艇
public class TorpedoSubmarine extends SeaObject {
TorpedoSubmarine(){
width = 64;
height = 20;
x = -width;
Random rand = new Random();
y = rand.nextInt(479-height-150+1)+150;
speed = rand.nextInt(3)+1;
}
}
package day03;
import java.util.Random;
//水雷潜艇
public class MineSubmarine extends SeaObject {
MineSubmarine(){
width = 63;
height = 19;
x = -width;
Random rand = new Random();
y = rand.nextInt(479-height-150+1)+150;
speed = rand.nextInt(3)+1;
}
}
package day03;
//水雷
public class Mine extends SeaObject {
Mine(int x,int y){
width = 11;
height = 11;
this.x = x;
this.y = y;
speed = 1;
}
}
package day03;
//深水炸弹
public class Bomb extends SeaObject {
Bomb(int x,int y){
width = 9;
height = 12;
this.x = x;
this.y = y;
speed = 3;
}
}
//注:其余类没有变化,此处省略
3.在SeaObject中设计两个构造方法,一个是为三种潜艇提供的,一个是为战舰、水雷、深水炸弹提供的,6个类分别调用超类的构造方法
参考代码:
package day03;
import java.util.Random;
//海洋对象
public class SeaObject {
int width;
int height;
int x;
int y;
int speed;
/** 专门给三种潜艇提供的 */
SeaObject(int width,int height){
this.width = width;
this.height = height;
x = -width;
Random rand = new Random();
y = rand.nextInt(479-height-150+1)+150;
speed = rand.nextInt(3)+1;
}
/** 专门给战舰、水雷、深水炸弹提供的 */
SeaObject(int width,int height,int x,int y,int speed){
this.width = width;
this.height = height;
this.x = x;
this.y = y;
this.speed = speed;
}
void move(){
System.out.println("海洋对象移动");
}
}
package day03;
//侦察潜艇
public class ObserveSubmarine extends SeaObject {
ObserveSubmarine(){
super(63,19);
}
}
package day03;
//鱼雷潜艇
public class TorpedoSubmarine extends SeaObject {
TorpedoSubmarine(){
super(64,20);
}
}
package day03;
//水雷潜艇
public class MineSubmarine extends SeaObject {
MineSubmarine(){
super(63,19);
}
}
package day03;
//战舰
public class Battleship extends SeaObject {
int life;
Battleship(){
super(66,26,270,124,20);
life = 5;
}
}
package day03;
//水雷
public class Mine extends SeaObject {
Mine(int x,int y){
super(11,11,x,y,1);
}
}
package day03;
//深水炸弹
public class Bomb extends SeaObject {
Bomb(int x,int y){
super(9,12,x,y,3);
}
}
//注:其余类没有变化,此处省略
4.将侦察艇数组、鱼雷艇数组、水雷艇数组统一组合为SeaObject数组,给数组填充数据,遍历数组输出属性并调用move()方法
参考代码:
package day04;
//整个游戏世界
public class World {
public static void main(String[] args) {
SeaObject[] submarines = new SeaObject[5]; //潜艇(侦察潜艇、鱼雷潜艇、水雷潜艇)
submarines[0] = new ObserveSubmarine();
submarines[1] = new ObserveSubmarine();
submarines[2] = new TorpedoSubmarine();
submarines[3] = new TorpedoSubmarine();
submarines[4] = new MineSubmarine();
for(int i=0;i<submarines.length;i++){
SeaObject s = submarines[i];
System.out.println(s.x+","+s.y);
s.move();
}
Battleship s = new Battleship();
Mine[] mines = new Mine[2];
mines[0] = new Mine(100,200);
mines[1] = new Mine(200,400);
for(int i=0;i<mines.length;i++){
Mine m = mines[i];
System.out.println(m.x+","+m.y);
m.move();
}
Bomb[] bombs = new Bomb[2];
bombs[0] = new Bomb(100,200);
bombs[1] = new Bomb(200,400);
for(int i=0;i<bombs.length;i++){
Bomb b = bombs[i];
System.out.println(b.x+","+b.y);
b.move();
}
}
}
//注:其余类没有变化,此处省略
<--第四天-->
列表:
-
在6个类中重写move()移动方法,实现对象的具体移动,并测试
-
给所有类中的成员添加访问控制修饰符
-
设计Images图片类,设计战舰图片、侦察潜艇图片、鱼雷潜艇图片、水雷潜艇图片、水雷图片、深水炸弹图片、海洋图片、游戏结束图片,并在静态块中赋值,设计main方法测试图片是否读取成功
参考:
-
在6个类中重写move()移动方法,实现对象的具体移动,并测试
参考代码:
package day04;
//战舰
public class Battleship extends SeaObject {
int life;
Battleship(){
super(66,26,270,124,20);
life = 5;
}
void move(){
//暂时搁置
}
}
package day04;
//侦察潜艇
public class ObserveSubmarine extends SeaObject {
ObserveSubmarine(){
super(63,19);
}
void move(){
x+=speed;
}
}
package day04;
//鱼雷潜艇
public class TorpedoSubmarine extends SeaObject {
TorpedoSubmarine(){
super(64,20);
}
void move(){
x+=speed;
}
}
package day04;
//水雷潜艇
public class MineSubmarine extends SeaObject {
MineSubmarine(){
super(63,19);
}
void move(){
x+=speed;
}
}
package day04;
//水雷
public class Mine extends SeaObject {
Mine(int x,int y){
super(11,11,x,y,1);
}
void move(){
y-=speed;
}
}
package day04;
//深水炸弹
public class Bomb extends SeaObject {
Bomb(int x,int y){
super(9,12,x,y,3);
}
void move(){
y+=speed;
}
}
package day04;
/** 整个游戏窗口 */
public class World {
public static void main(String[] args) {
SeaObject[] submarines = new SeaObject[5]; //潜艇数组
submarines[0] = new ObserveSubmarine(); //向上造型
submarines[1] = new ObserveSubmarine();
submarines[2] = new TorpedoSubmarine();
submarines[3] = new TorpedoSubmarine();
submarines[4] = new MineSubmarine();
for(int i=0;i<submarines.length;i++){ //遍历所有潜艇
System.out.println("第"+(i+1)+"个潜艇:");
SeaObject s = submarines[i]; //获取每一个潜艇
System.out.println("初始的坐标:"+s.x+","+s.y);
s.move(); //移动
System.out.println("移动后坐标:"+s.x+","+s.y); //移动后坐标
}
Mine[] mines = new Mine[4];
mines[0] = new Mine(100,200);
mines[1] = new Mine(110,120);
mines[2] = new Mine(130,140);
mines[3] = new Mine(140,150);
for(int i=0;i<mines.length;i++){ //遍历所有水雷
System.out.println("第"+(i+1)+"个水雷:");
Mine m = mines[i]; //获取每一个水雷
System.out.println("初始的坐标:"+m.x+","+m.y);
m.move();
System.out.println("移动后坐标:"+m.x+","+m.y);
}
Bomb[] bombs = new Bomb[2];
bombs[0] = new Bomb(100,200);
bombs[1] = new Bomb(200,185);
for(int i=0;i<bombs.length;i++){
System.out.println("第"+(i+1)+"个深水炸弹:");
Bomb b = bombs[i];
System.out.println("初始的坐标:"+b.x+","+b.y);
b.move();
System.out.println("移动后坐标:"+b.x+","+b.y);
}
}
}
//注:其余类没有变化,此处省略
2.给所有类中的成员添加访问控制修饰符
参考代码:
package day05;
import java.util.Random;
//海洋对象
public class SeaObject {
protected int width;
protected int height;
protected int x;
protected int y;
protected int speed;
public SeaObject(int width,int height){
this.width = width;
this.height = height;
x = -width;
Random rand = new Random();
y = rand.nextInt(479-height-150+1)+150;
speed = rand.nextInt(3)+1;
}
public SeaObject(int width,int height,int x,int y,int speed){
this.width = width;
this.height = height;
this.x = x;
this.y = y;
this.speed = speed;
}
public void move(){
System.out.println("海洋对象移动");
}
}
package day05;
//战舰
public class Battleship extends SeaObject {
private int life;
public Battleship(){
super(66,26,270,124,20);
life = 5;
}
public void move(){
//暂时搁置
}
}
package day05;
//侦察潜艇
public class ObserveSubmarine extends SeaObject {
public ObserveSubmarine(){
super(63,19);
}
public void move(){
x+=speed;
}
}
package day05;
//鱼雷潜艇
public class TorpedoSubmarine extends SeaObject {
public TorpedoSubmarine(){
super(64,20);
}
public void move(){
x+=speed;
}
}
package day05;
//水雷潜艇
public class MineSubmarine extends SeaObject {
public MineSubmarine(){
super(63,19);
}
public void move(){
x+=speed;
}
}
package day05;
//水雷
public class Mine extends SeaObject {
public Mine(int x,int y){
super(11,11,x,y,1);
}
public void move()