04.入门篇-Java程序结构

4 Java程序结构

以贪吃蛇游戏为例,一款游戏由多个小功能实现(例如:蛇移动、蛇吃苹果、蛇身变长、撞墙或撞身体死亡等)

4.1 项目框架

image

4.2 方法(method)

Snake.java
..........
    public void move(Point newHead, boolean grow) {
        body.addFirst(newHead);
        if (!grow) {
            body.removeLast();
        }
    }
..........

例如上面就是 Snake.java 文件下的其中一个方法(method)

4.3 类(class)

多个方法放到一起,有些是有关联的,例如:与蛇相关的,有些是没有关联的,例如:蛇和苹果

将不同的方法进行分类,类(class)用来管理功能相关联的方法

public class Snake {
    private final LinkedList<Point> body;
    private Direction direction;

    public Snake() {
        body = new LinkedList<>();
        // 初始长度为3
        body.add(new Point(10, 10));
        body.add(new Point(9, 10));
        body.add(new Point(8, 10));
        direction = Direction.RIGHT;
    }
..........
public class Point {
    public final int x;
    public final int y;

    public Point(int x, int y) {
        this.x = x;
        this.y = y;
    }

4.4 包(package)

类越来越多,不管理也会很混乱,将功能相似的类放到同一目录(包 package)下

image

例如:controller、model、util、view 包

4.5 项目(project)

将所有的包组合到一起,就组成了一个完整的程序(项目 project)

image

例如:snake

4.6 架构目录

工程/项目(project) -> 包(package) -> 文件  -> 类(class) -> 方法(method)

4.7 特殊方法

main 方法是任何程序都必备的,是整个程序项目的入口

调用 main 方法后,main 再去调用程序中其他的类和方法

SnakeGame.java
package com.itheima;

import javax.swing.*;

public class SnakeGame {
    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> {
            JFrame frame = new JFrame("像素贪吃蛇 - by Itheima");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setResizable(false);
            frame.add(new com.itheima.view.GamePanel());
            frame.pack();
            frame.setLocationRelativeTo(null);
            frame.setVisible(true);
        });
    }
}

 

———————————————————————————————————————————————————————————————————————————

                                                                                                                         无敌小马爱学习

posted on 2025-11-21 16:57  马俊南  阅读(7)  评论(0)    收藏  举报