手机随时阅读
开博首贴
Java语言中,类的构造方法是一种很特殊的方法。关于构造方法要记忆和理解的知识点其实挺多的,下面我们就来详细的讲讲构造方法,相信看过这篇文章之后,你会对构造方法有一个比较深刻的认识和理解。(预警:此文较长,请耐心看完!)首先来说说构造方法的五个特点:一、构造方法的名称必须与类的名称相同。比如类的名称叫A,那么它的构造方法必须也叫A。二、构造方法的前面不能声明返回值类型,即便是void也不行。
图书管理系统总共包含24个类,原本打算把这些类的源代码全部贴出,但无奈代码量太大导致超出系统允许范围,因此只能把代码打包上传了,下载地址是:Swing版图书管理系统源码以下是这些类的名称,首先是model包下的类BookType.javaPublisher.javaBook.javaReader.javaRecord.java以下是dao包下的类:BookTypeDao.javaPubli
本小节将讲解图书管理系统的代码设计思路及关键代码的实现过程。由于本章所介绍的图书管理系统与第24章所介绍的学生管理系统有很多相似之处,例如都定义了数据库工具类DBUtil完成获取连接的操作,因此两章相同之处本章不会重复讲解。25.2.1删除图书信息删除图书信息时,不仅仅要向用户确认是否要进行删除操作,还要先检查该图书是否有外借的情况,一旦该图书有外借并且未归还的情况就不能删除该图书。如果在未归还该
图书管理系统具有图书信息管理、读者信息管理和借阅信息管理三大功能模块,本小节将从软件功能、数据库系统设计和项目结构几个方面介绍该软件系统的设计方案。25.1.1系统功能简介图书管理系统第一大功能模块是图书信息管理,这个模块的软件界面如图25-1所示。图25-1图书信息管理界面从图25-1可以看出:图书信息管理模块能够完成图书的新增、修改、删除、借阅登记等常规的信息管理工作,并且还能以多
学生信息管理系统总共有6个类,这6个类的作用已在24.1.3小节中做过介绍,此处不再赘述,以下是这6个类的源代码,读者也能在本书提供的源代码文件夹中直接下载它们。Student.javapublic class Student { private String sid;//学号 private String name;//姓名 private String sex;//性别
本小节将讲解学生管理系统的代码设计思路及关键代码的实现过程。24.2.1数据库操作工具学生管理系统以JDBC为核心技术,因此系统中有多处对数据库的操作。为了更方便的操作数据库,本系统专门定义了操作数据库的工具类DBUtil,连接数据库的参数都以静态属性的形式定义到DBUtil类中,这些参数如下:static String driverName = "com.mysql.cj.jdbc.
学生信息管理系统用于管理学生基本信息,该系统除能够大大的帮助学籍管理人员提高工作效率。本小节将从软件功能、数据库系统设计和项目结构几个方面介绍该软件系统的设计方案。24.1.1系统功能简介学生信息管理系统集信息展示、查询、增删和修改多种功能为一体,该系统的主界面如图24-1所示。图24-1学生信息管理系统主界面从图24-1可以看出:学生信息管理系统具有数据分页浏览、查询、新增、删除、修
对于初学者来说,斗地主游戏是一个比较复杂的项目,它涉及的类很多,以下是这个项目所有类的源代码,源码中有两个Main.java文件,它们虽然文件名称相同,但位于不同的包下,读者在复制粘贴这两个文件时需要注意要把它们放在正确的位置。Message.javapackage client.model;import java.io.*;import java.util.*;public class Mess
地主游戏的功能模块非常多,本小节将介绍各功能模块的实现思路及基本源代码。23.2.1游戏服务器的启动在server包下有一个Main类,这个类中包含main()方法,main()方法中包含启动游戏服务器的语句,游戏服务器的启动必须先于客户端的启动,否则游戏无法运行。Main类中main()方法的代码如下:new MainServer();可以看出:main()方法中仅是创建了一个MainServe
斗地主游戏是一款3人参与的棋牌游戏,3方用一副牌(54张)展开游戏,其中一方为地主,其余两家为另一方,双方对战,先出完牌的一方获胜。用计算机程序实现的斗地主程序需要3个客户端,每个客户端都代表一个玩家,3个玩家聚齐后系统自动进入游戏进行状态。23.1.1斗地主游戏界面斗地主游戏有两个界面,一个是玩家登录界面,另一个是斗地主游戏主界面,玩家登录界面如图23-1所示。图23-1玩家登录界面
记事本项目总共有7个类,这7个类的作用已在22.1.2小节中做过介绍,此处不再赘述,以下是这7个类的源代码,读者也能在本书提供的源代码文件夹中直接下载它们。NoteBookFrame.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;impo
记事本有很多功能,本小节将讲解其中较为重要的功能的实现过程。22.2.1初始化菜单记事本界面上最多的就是菜单和菜单项。如果在窗体上添加菜单,先要添加一个菜单栏。在Swing体系中,用JMenuBar类表示菜单栏,创建菜单栏的语句如下:JMenuBar mainMenuBar=new JMenuBar();创建菜单栏、给菜单栏添加菜单、给菜单添加菜单项以及给菜单项添加监听器的操作全部集中在cr
记事本软件能够打开、编辑、保存各种类型的文本文档,也能在文本文档中查找特定的关键字,此外在还能设定文本文档的字体、字号以及风格等。22.1.1记事本功能简介记事本软件的运行结果如图22-1所示。图22-1记事本软件界面从图21-1可以看到:记事本程序运行开始后,在没有保存文档的情况下,标题栏自动显示“记事本--未命名”,这个标题表示了当前记事本的未命名状态。记事本有各种功能菜单,用户在记事本
万年历项目总共有3个类,这3个类的作用已在21.1.2小节中做过介绍,此处不再赘述,以下是这3个类的源代码,读者也能在本书提供的源代码文件夹中直接下载它们。CalendarFrame.javaimport javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionL
本小节将讲解万年历软件的代码设计思路及关键代码的实现过程。21.2.1初始化组件对于界面上大部分组件而言都使用常规的方式进行初始化,但对于选择年份的下拉框对象jcbYears而言,其中的选项是动态生成的。这些选项表示年份数值,它们并不是固定的选项,而是根据当前年份计算出来的前后各50年的年份值。例如,当前年如果是2022年,那么jcbYears下拉框中的第一个年份选项为“1972”,这是2022
万年历项目实现的是一款日历软件,它能够展示出任意年份的日历,除此之外,该软件还能以红色字体标出每个月的阳历节日。21.1.1万年历功能简介万年历软件的运行结果如图21-1所示。图21-1万年历软件界面为方便讲述,此处把这个万年历的界面分成了4个区域,每个区域当中都有很多个组件,源代码中也会以注释的形式指出各组件对象属于哪一个区域。从图21-1可以看到:区域1显示了当前日期时间。这个当前时间
在Swing体系中有文件选择器和颜色选择器,它们分别用来帮助用户选择文件和颜色,这些选择操作是可视化桌面应用程序常用的操作,本小节将详细讲解这两种选择器的使用方式。20.8.1文件选择器JFileChooser文件选择器用于选择文件或文件夹。当用户打开一个文件时需要用文件选择器选择一个文件,而保存文件时又需要用文件选择器去选择一个文件夹。Swing体系用JFileChooser类来表示文件选择器
对话框是桌面应用程序中一种很重要的组件,例如在删除一个文件的时候,系统就会用对话框的形式提醒用户是否确定要删除这个文件。Swing体系中有两类对话框:第一类是系统对话框,第二类是自定义对话框。系统对话框就是Swing体系已经定义好的对话框,它们的基本界面是Java基础类库已经设计好的,程序员只需要调用一个方法就能把这个对话框显示出来。而自定义对话框是指由程序员自己设计的对话框,这种对话框的界面完
所有可以添加组件的组件都可以被称为“容器”,在Swing体系中,窗体可以被称为顶级容器,在顶级容器中还可以创建中间容器并用它们来存放其他组件,程序员也可以对中间容器单独设置布局管理器。Swing体系中,中间容器包括JPanel、JScollPane、JtabbedPane、JToolBar等,本小节将详细讲解中间容器的使用。20.6.1面板JPanel在Swing体系中用JPanel类来表示面板
窗体上的按钮、标签、文本框等都被称为“窗体组件”,简称“组件”。大部分组件都是Jcomponent类的子类,而Jcomponent又是Container的子类、Container又是Component的子类。这3个类中所定义的方法都会都会被组件各种组件继承下来,因此大部分组件都有相同的方法,这些方法如表20-5所示。表20-5 Jcomponent常用方法方法功能void setSize(
当程序员向窗体上添加了按钮等组件之后就能够操作这些组件,但在20.3小节的各个案例中,虽然在窗体上添加了一些按钮,但点击这些按钮并没有任何反应,因此这些按钮也就成了毫无意义的“摆设”。如果希望按钮等组件能够在被操作时执行一段代码并产生一个动作,就必须为组件添加一个监听器并由监听器负责处理组件所产生的事件,本小节将详细讲解事件处理的相关原理。20.4.1事件处理基本原理组件被操作时会产生事件,在事
当把组件添加到窗体上时,并不是直接把组件添加到JFrame对象上的,而是需要先获得窗体的内容面板,然后把组件添加到内容面板上。获得内容面板的方式是调用窗体的getContentPane()方法,该方法的返回值是Container类对象,它就表示了窗体的内容面板。布局管理器能够设置内容面板上组件的排列方式,也就是说内容面板被设置了某种布局管理器之后就能实现组件按照特定规律排列。常用的布局管理有:流
Java Swing的各种组件都是由类来定义的,这些类大部分都位于javax.swing包下,也有小部分位于java.awt包下,因此在使用这些类的时候需要在程序中引入这个包下的类。在Java Swing技术中使用JFrame类表示窗体,JFrame提供了很多方法用来设置窗体的各种特征,如表20-1所示。表20-1 JFrame类的方法方法功能void setSize(int width,
Java语言最早开发图形界面的应用程序被称为“AWT”,AWT是“Abstract Window Toolkit”的简称,“Abstract Window Toolkit”意为“抽象窗体工具包”。AWT组件并不是纯Java实现的,因此对运行结果依赖本地GUI。而Swing 是由100%纯Java实现的,不再依赖于本地平台的GUI,因此可以在所有平台上都保持相同的界面外观。独立于本地平台的Swin
在8.10小节曾经简单的介绍过注解,但当时只是简单的介绍了3个注解的作用,本小节将详细讲解注解的相关知识。注解始于JDK1.5,在Java语言中以Annotation接口表示注解。注解其实是代码里的特殊标记,这些标记可以在编译、类加载、运行时被读取,并执行相应的处理。通过使用注解,程序员可以在不改变原有逻辑的情况下,在源文件中嵌入一些补充的信息。代码分析工具、开发工具和部署工具可以通过这些补充信
JAVA的反射机制是指在运行状态中,对于任意一个类都能够知道这个类的所有属性和方法,对于任意一个对象,都能够调用它的任意一个方法和属性。这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反射机制。反射是Java语言中非常重要机制,很多第三方框架都用到了反射,本小节将详细讲解反射机制的原理和作用。19.3.1获得Class类对象每个类被加载之后,虚拟机就会为该类生成一个对应的Clas
类加载器负责把.class文件加载到内存中并生成对应的Class类对象,本小节将讲解类加载器的种类、工作原理以及如何自定义类加载器。19.2.1类加载机制类加载器负责加载所有的类,系统为所有被载入内存中的类生成一个Class类的对象实例。一旦一个类被载入内存中,同个类就不会被再次载入了。那么,如何样才算“同一个类”呢?正如一个对象有一个唯一的标识一样,一个载入内存中的类也有一个唯一的标识。 在J
在6.1小节中曾经讲过:创建对象前会完成类加载的操作。实际上,如果在程序中使用new关键字来创建一个对象,虚拟机会在创建对象之前需要完成一系列准备工作,类的加载只是这些工作中的一步。具体来说,这一系列工作可以分为类的加载、连接和初始化三步。多数情况下虚拟机都是连续完成这些工作的,因此这三个步骤也可以统称为“类的加载”或“类的初始化”,本小节将详细讲解这些步骤的过程和原理。19.1.1类的加载在J
数据库连接的建立及关闭是极耗费系统资源的操作,在多层结构的应用环境中,这种资源的耗费对系统性能影响尤为明显。通过DriverManager获得的数据库连接,一个数据库连接对象均对应一个物理数据库连接,每次操作都打开一个物理连接,使用完后立即关闭连接。频繁地打开、关闭连接将造成系统性能低下。数据库连接池的解决方案是:当应用程序启动时,系统主动建立足够的数据库连接,并将这些连接组成一个连接池。每次应
Copyright © 2005-2023 51CTO.COM 版权所有 京ICP证060544号