JAVA开发思想与实例--模块化编程

“面向对象”编程思想Java 续命20+年 此后Java开启了霸榜之旅,C,C++,并称为“编程语言三剑客”。C,C++,Java 三大编程语言的兴衰交替史,也是一个完整的“编程思想”的演化史。 阅读详情

模块化编程,不能再在main函数中一锅端。


xml文件:

<?xml version="1.0" encoding="UTF-8" standalone="no"?><exam>
    <student examid="222" idcard="111">
        <name>张三</name>
        <location>沈阳</location>
        <grade>89</grade>
    </student>

    <student examid="444" idcard="333">
        <name>李四</name>
        <location>大连</location>
        <grade>97</grade>
    </student>
</exam>




最先进行编写的模块是   Javabean

不同模块的程序写在不同的包里面

封装数据的实体一般为domain  域对象

DAO层一般有接口和该接口的实现类! 接口用于规范实现类! 实现类一般用于用于操作数据库! 一般操作修改,添加,删除数据库操作的步骤很相似,就写了一个公共类DAO类 ,修改,添加,删除数据库操作时 直接调用公共类DAO类!

dao(Data access object 数据访问对象)用于操作xml文档,StudentDao。  Javabean student封装Java数据。Main与用户打交道。

DAO共同的代码要抽取出来形成工具类。工具类所有的方法都是静态的。


utils则是提供工具方法,一般为静态,防止调用麻烦。


任何东西加字符串都是字符串   double+""

SHIFT+F6  重构-重命名 


intellij的输出:

System.out.println;  //输出后光标位于下一行
System.out.print;    //输出光标位于本行

输入流:

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String type = br.readLine();

type.equalsIgnoreCase("a")   //不区分大小写的比较


xml的添加:

public void add(Student student){
        try {
            Document document = XmlUtilsByJaxp.getDocument();

            Element student_node = document.createElement("student");
            student_node.setAttribute("examid", student.getExamid());
            student_node.setAttribute("idcard", student.getIdcard());

            Element name = document.createElement("name");
            name.setTextContent(student.getName());

            Element location = document.createElement("location");
            location.setTextContent(student.getLocation());

            Element grade = document.createElement("grade");
            grade.setTextContent(student.getGrade()+"");

            student_node.appendChild(name);
            student_node.appendChild(location);
            student_node.appendChild(grade);

            document.getElementsByTagName("exam").item(0).appendChild(student_node);
            XmlUtilsByJaxp.write2Xml(document);

        } catch (Exception e) {
           throw new RuntimeException(e);
        }



从下往上的设计思想。


xml的查找:

通过准考证号(examid)来进行学生信息的查找。   examid是student的一个属性,通过匹配来进行查找。

 public Student find(String examid){
        try {
            Document document = XmlUtilsByJaxp.getDocument();

            Student student = new Student();

            NodeList list = document.getElementsByTagName("student");
            for (int i=0;i<list.getLength();i++){
                Element student_node = (Element) list.item(i);
                String s_examid = student_node.getAttribute("examid");
                if (s_examid.equals(examid)){
                    //get
                    student.setExamid(student_node.getAttribute("examid"));
                    student.setIdcard(student_node.getAttribute("idcard"));

                    student.setName(student_node.getElementsByTagName("name").item(0).getTextContent());
                    student.setLocation(student_node.getElementsByTagName("location").item(0).getTextContent());
                    student.setGrade(Double.parseDouble(student_node.getElementsByTagName("grade").item(0).getTextContent()));

                    return student;
                }
            }
            return null;
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }

 找到返回该对象(student),没找到返回NULL。


xml的删除:

通过姓名来删除。
dao中的删除:

public void delete(String name){
        try {
            Document document = XmlUtilsByJaxp.getDocument();

            NodeList list = document.getElementsByTagName("name");
            for (int i=0; i < list.getLength(); i++){
                Node item = list.item(i);
                if (item.getTextContent().equals(name)){
                    item.getParentNode().getParentNode().removeChild(item.getParentNode());
                    XmlUtilsByJaxp.write2Xml(document);
                    return;
                }
            }
            throw new RuntimeException("对不起,您要删除的学生不存在");

        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }


main中的删除:

删除学生
            try {
                System.out.print("请输入删除的学生姓名:");

                String name = br.readLine();

                StudentDaoByDom4j dao = new StudentDaoByDom4j();
                dao.delete(name);
                System.out.println("恭喜你,删除成功");

            } catch (Exception e) {
                System.out.println(e.getMessage());
            }



有时在开发时不允许改变,团队开发,只能实现方法,不能改变方法声明,异常也是一种返回。






AI 编程新范式:一文彻底搞懂 LLM、Agent、MCP、Skill 是怎么协作的 本文用通俗易懂的方式解析了AI编程新架构的核心概念。通过"三国演义"类比,文章将复杂的技术架构拆解为:Agent(军师/大脑)负责思考和决策,Skill(招式/手脚)执行具体操作,MCP(令箭/协议)作为通信标准,MCP Server(将军/身体)承载多个Skill。这套分工架构使AI从单纯聊天进化成能完成实际编程任务的全能助手,实现了关注点分离——Agent专注智能提升,Skill专注功能实现,MCP确保稳定连接。这正是Cursor、Claude等新一代AI开发工具采用的核心架构,标志 阅读详情

相关推荐

生物分子仿真软件:AMBER_(17).AMBER在核酸研究中的应用

在使用AMBER进行核酸分子动力学模拟之前,需要对核酸系统进行详细的准备。这包括构建初始结构、添加溶剂分子、中和电荷等步骤。以下将详细介绍这些步骤。

kkchenjj的博客 483

Java 基础篇】Java 模块化详解

Java 模块化是自 Java 9 版本开始引入的一项重要特性,它将应用程序划分为一组模块,提供了更好的组织和管理代码的方式。通过明确的模块边界和依赖关系,我们能够更好地组织大型项目、提供更好的封装和可重用性,并提升应用程序的性能和安全性。在开发大型 Java 项目时,使用模块化是一个值得考虑的选择。希望本文对你理解和使用 Java 模块化提供了帮助。如果你对 Java 模块化还有其他疑问,欢迎留言讨论。

繁依Fanyi的博客 4367

Java编程思想:从基础到高级特性的全面指南

Java作为一门成熟的编程语言,以其“一次编写,到处运行”的跨平台能力,成为了IT行业的主流开发语言之一。本章将对Java编程的核心思想进行概述,为后续深入学习Java基础语法和面向对象编程理念打下基础。方法是Java编程中实现功能封装的基本单元。在面向对象编程中,方法通常属于某个类或对象,并且用于描述该类或对象能执行什么行为。方法的声明包括了访问修饰符、返回类型、方法名、参数列表以及可选的抛出异常列表。在上述示例中,方法名为sum,它带有两个int类型的参数a和b。

weixin_36064575的博客 704

Java高级——模块化系统

在JDK 9以后,若启用了模块化封装,模块可声明对其他模块的显式依赖,JVM在启动时验证依赖关系,若缺失则启动失败,从而避免部分由于依赖而引发的运行时异常。JDK 9之前基于类路径(ClassPath)来查找依赖,若缺失,则等程序运行到该类型的加载、链接时才会报出运行时异常。所以也不支持多版本模块并存、运行时热替换、热部署模块的能力,仍须通过类加载器去实现(将OSGi和JPMS混合使用)为了保证使用传统类路径依赖的Java程序可以不经修改地直接运行在JDK 9及以后的版本,制定以下规则。

松仔Log的博客 1796

Java 模块化

Java 模块化的设计目标是提供一种更好的项目组织和管理方式,解决依赖管理、可重用性、可扩展性和安全性等方面的问题,使得开发者能够更有效地构建和维护大型和复杂的 Java 应用程序。其实 Java 官方发布这个特性至今为止很少有人用到 Java 原生的模块系统,取而代之的是各种包管理工具提供的类似的特性。例如 Maven、Ant 或者 Gradle 这些包管理器都提供了类似的概念,而且到 Java 17 为止这个特性确实没有很出色的表现(至少作者没有看到)。但既然作为新特性,我们仍然有学习的必要。

a1518967800的博客 1014

带你了解“Java新特性——模块化

Java平台从Java 8向Java 9及更高版本的进化,其中引入了一个重要的新特性——模块系统(Project Jigsaw)。模块系统的目的是解决大型应用的依赖管理问题,提升性能,简化JRE,增强兼容性和安全性,并提高开发效率。通过模块化Java能够更好地支持微服务架构,提供更细粒度的封装和控制,以及更清晰的依赖关系。文章详细介绍了模块系统的概念,如MODULE DESCRIPTOR、主要参...

淘系技术 2716

Java对象

当学生从面向过程编程思维转向面向对象编程(OOP)思维时,“类”“对象”是两个最核心、最基础也是最重要的概念。它们是理解Java乃至整个OOP范式的基石。“类”(Class)可以被形象地理解为一个“蓝图”或“模板”。它定义了某一类事物的共同属性(数据成员,通常称为字段或属性)和共同行为(成员方法)。在Java中,类是创建对象的蓝图。例如,我们可以定义一个Student类,它可能包含属性如name(姓名)、id(学号)、grade(成绩),以及方法如study()(学习)、showInfo()(显示信息)。

2501_91007243的博客 245

Java面向对象设计编程思想(Essential Object Oriented Software Construction)的本质----百家争鸣 陈光剑...

/** * */ package iSword; /** * @author chenguangjian/iSword 2013-3-30 * */ import iSword.data_basics; public class calcu_base { /** * @param args */ public static void main(String[...

iteye_7332的博客 154

Java 模块化开发

Java模块化开发

功不唐捐,玉汝于成 2858

【软件工程】模块化思想概述

本文介绍了模块化思想的定义、特点以及应用领域

Tealc 2967

Java 9 模块化开发:核心原则实践

内容简介 Java 9 向 Java 平台引入了模块系统,这是一个非常重要的飞跃,标志着模块化 Java 软件开发的新纪元。当需要创建灵活且易于维护的代码时,模块化是一个关键的架构设计原则。本书给出了 Java 模块系统的明确概述,并演示了如何通过创建模块化应用程序来帮助管理以及降低复杂性。 作者引导我们了解了模块系统中的相关概念以及工具,介绍了可以将现有代码迁移到模块中的模式并以模块的方式构建...

GitChat 1万+

Java:从编程语言到编程思想

Java编程语言到编程思想》学习笔记 一、Java语言的变化 (1)1.2 集合框架Collection Framework Java Beans (2)1.3 略 (3)1.4 assert (4)1.5 工厂方法,返回一个数组 package com.demo; public class Java5Demo { public static void main(String[] args) { // String[] values = new String[]{"pig",

彭世瑜的博客 1180

Java模块化编程的艺术:揭开模块化世界的面纱

模块化编程,简单来说,就是将代码拆分成独立、松耦合的模块,每个模块独立负责特定的功能。就像《金庸小说》中的各大门派,各自有独特的武功秘籍,但又能互相配合,共同对抗外敌。在 Java 中,模块化编程的核心在于 JDK 9 引入的模块系统(Java Platform Module System, JPMS)。这个系统的引入,可以说是 Java 语言发展史上的一个重要里程碑。Java模块化编程为我们提供了强大的工具,可以更好地组织和管理代码。

weixin_46372265的博客 911

Java模块化(详解)

Java 9引入的JPMS模块化系统是Java平台自泛型以来最重要的架构变革。该系统通过模块(Module)重构了Java平台,解决了类路径依赖混乱、JDK内部API滥用等问题。

weixin_62307424的博客 2497

Java模块化详解

Java模块化是一项强大的特性,它为Java开发者提供了更好的封装性、更清晰的项目结构和更强大的依赖管理功能。通过模块化开发者可以构建更加结构化和维护性更强的应用程序,提高系统的可重用性和可扩展性。同时,模块化还有助于解决“JAR地狱”问题、优化系统性能和提高安全性。在实际项目中应用模块化需要仔细分析应用程序结构、创建模块目录和文件、编写模块描述符、实现模块功能、编译和测试模块、部署和运行模块化应用程序以及持续优化和维护。通过这些步骤,开发者可以充分利用模块化的优势来构建高质量的Java应用程序。

一个老Java开发的自白 1621

【潜意识Java】探秘Java模块化系统

为了解决这些问题,Java 9 引入了 Java 平台模块化系统(Java Platform Module System,简称 JPMS),这是 Java 语言发展史上的一个重大变革,它为 Java 代码的架构设计带来了全新的理念和方法。模块的访问控制机制可以限制模块之间的访问权限,避免了不必要的类和资源被外部模块访问,增强了系统的安全性。例如,一些敏感的包可以不导出,从而防止外部模块的非法访问。模块是 JPMS 的核心概念,它是代码的一个封装单元,包含了一组相关的包和资源,并且有自己的模块描述文件。

潜意识Java的博客 1090

Java模块化

文章目录1、模块化概述2、模块的基本使用 1、模块化概述 Java语言伴随这些年的发展,越来越庞大,逐渐发发展成为一门“臃肿”的语言。无论是运行一个大型折软件系统,还是运行一个小的程序,即使程序只需要使用Java的部分核心功能,JVM也要加载整个JRE环境。 为了给Java瘦身,让Java实现轻量化,Java9正式的推出了模块化系统。Java被拆分为N多个模块,并允许Java程序可以根据需要选择加载程序必须的Java模块,这样就可以让Java轻量化的方式运行。 其实,Java7的时候已经提出了模块化的概念

4282

Java模块化

Java语言伴随这些年的发展,越来越庞大,逐渐发发展成为一门“臃肿”的语言。无论是运行一个大型折软件系统,还是运行一个小的程序,即使程序只需要使用Java的部分核心功能,JVM也要加载整个JRE环境。为了给Java瘦身,让Java实现轻量化,Java9正式的推出了模块化系统。Java被拆分为N多个模块,并允许Java程序可以根据需要选择加载程序必须的Java模块,这样就可以让Java轻量化的方式运行。

Code Writers 376

Java模块化系统

Java 9引入的模块化系统(JPMS)通过将JDK重构为独立模块,解决了传统类路径管理的局限性。核心改进包括:1)将单一rt.jar拆分为功能模块,实现按需加载;2)通过module-info.java强制声明依赖和导出规则,增强代码封装性;3)支持模块化编译和运行。对后端开发而言,模块化提升了系统安全性(内部API隔离)、可维护性(显式依赖)和性能(减少内存占用)。虽然日常开发仍以JAR为主,但在构建复杂系统时,模块化能有效管理依赖关系,避免冲突,特别适合微服务架构下的组件化开发

weixin_62307424的博客 1356

开源BI数据分析平台源码|基于Web的报表大屏可视化多维分析项目

1.项目功能:本项目是轻量化Web端BI数据分析引擎,支持数据源接入、SQL自助查询、多维数据统计、自定义报表、拖拽式大屏可视化图表生成,适配企业数据统计、运营看板开发;2.压缩包内容:完整前后端源码、数据库初始化脚本、示例数据源、部署文档;3.适用人群:大数据开发、后端工程师、BI报表二次开发、毕业设计学习参考;4.运行环境:Java+MySQL,附带环境搭建启动步骤。

上一篇: XML语言学习CRUD3----方立勋JAXP
下一篇: XML语言学习4--SAX解析
danny1991
博客等级 码龄14年 6粉丝 39原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值