Java
文章平均质量分 57
__2018__
2018年开始迈进互联网行业,接触编程的世界,2018年夏天毕业
展开
-
在eclipse中使用javadoc提取文档
下面是一个使用javadoc编写文档的简单例子,里面使用了关键字@author,@version,@para,@return。其中@para后面需要紧跟方法中的参数名称,javadoc才能正确识别。package chapter4;/** * * @author duan * @version 1.0 * 这个类用来测试javadoc * 在这个地方编写类说明 * */pub...原创 2018-06-06 23:51:33 · 981 阅读 · 0 评论 -
java项目实战-超市管理系统(六)实体源码与分析
package duan.entity;/** * goods 商品实体类 * @author duan */public final class Goods{ //数据库Goods表主鍵 private static int count=0; private int gid; private String gname; private double gprice; pr...原创 2018-03-26 21:18:39 · 12171 阅读 · 14 评论 -
java项目实战-超市管理系统(五)数据库源码与分析
第一个包是page包,已经在page源码这里分享过了,现在来分享db包的源码package duan.db;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Connection;/** * 连接mysql数据库 * @author duan */public final clas...原创 2018-03-26 21:07:33 · 8361 阅读 · 0 评论 -
java项目实战-超市管理系统(四)页面设计源码分析
页面设计源码上一篇博文写了页面设计的源码,这一篇来分析一下这个源码。一、MainPage()1.首先启动程序,进入MainPage()里面,会跳出这样的界面。public final class MainPage extends ScannerChoice发现主函数是继承自ScanneerChoise类,这个类主要有收集键盘上不同字符的方法,具体源码后面博文说,为了重用这一部分代码,几个主要的页面...原创 2018-03-26 20:48:48 · 6875 阅读 · 0 评论 -
java项目实战-超市管理系统(三)页面设计源码
一、duan.page.MainPagepackage duan.page;import java.util.ArrayList;import duan.dao.GoodsDao;import duan.dao.GsalesDao;import duan.dao.SalesManDao;import duan.entity.Goods;import duan.entity.Gsal...原创 2018-03-26 20:13:26 · 30631 阅读 · 69 评论 -
Think in java(五)RTTI的的三种形式、类型信息、class.forname与.class的区别
相关基础知识的博文:Java语言程序设计-进阶篇(二)泛型一、什么是RTTI,为什么需要RTTI RTTI全称为Run-Time Type Identification,运行阶段类型识别,含义就是在运行时,识别一个对象的类型。他使得从只能从编译期执行面向对象类型的操作的禁锢中解脱出来,并且可以使用某些非常强大的程序。RTTI有三种形式。传统的类型转换,由RTTI确保类型转换的正确性,如果执行...原创 2018-04-09 01:13:56 · 372 阅读 · 1 评论 -
Think in java(四)枚举类enum的基本特性、构造方法与方法覆盖、Switch语句中的enum运用
一、基本enum特性package test;enum Fruit{PEACH,LEMON,BANANA,Apple}public class EnumClasstest { public static void main(String[] args){ for(Fruit f:Fruit.values()){ System.out.println(f+" ordinal "+...原创 2018-04-08 21:02:18 · 266 阅读 · 0 评论 -
java项目实战-超市管理系统(一)需求概述与设计大纲
一、项目背景商超购物管理系统具有商品管理、前台收银、商品库存等功能,本项目使用java作为开发语言,java控制台显示界面,mysql数据库存储数据,可以有效地锻炼和运用java、mysql数据库及基本sql编程开发的能力。二、页面设计进入主菜单界面如下1、商品维护页面 (1)添加商品 (2)更改商品 (3)删除商品 (4)查询商品 (5)展示商品 2...原创 2018-03-26 14:26:25 · 20399 阅读 · 6 评论 -
java项目实战-超市管理系统(二)数据库设计
要做一个超市管理系统,首先最开始要进行的就是数据库设计。我的mysql数据库设计如下:一、商品表GOODS二、售货员表三、销售表附带销售表建立的sql语句create table gsales(gsid int(10) not null,gid int(10) not null,sid int(10) not null,sdate date,snum int(10),primary k...原创 2018-03-26 14:06:38 · 17983 阅读 · 4 评论 -
Think in java(三)再论抽象类,接口
之前由文章介绍过抽象类与接口,今天在深入一点Java语言程序设计-基础篇(十)抽象类,接口与包装类1.抽象类包含抽象方法的类称为抽象类,抽象类不可创建对象,如果某个抽象类的子类想要实例化对象,必须实现抽象父类中所有方法的定义。创建抽象类和抽象方法可以使类的抽象明确起来。2.接口结构允许创建者确定方法名,参数列表和返回类型,但是没有任何方法体,允许类继承多个接口,实现类似多冲继承的功能。接口也可以包...原创 2018-03-23 17:44:39 · 169 阅读 · 0 评论 -
Java语言程序设计-基础篇(十五)数据库基础
import java.sql.*; //导入java.sql包public class Conn { // 创建类Conn Connection con; // 声明Connection对象 public Connection getConnection() { // 建立返回值为Connection的方法 try { // 加载数据库驱动类 Class.f...原创 2018-03-06 17:56:11 · 234 阅读 · 0 评论 -
Think in java(二)类的组合与继承,super、protected、final关键字
1.toString()是什么。当编译器需要一个String而你只有一个对象时,这个方法会自动被调用,需要自己重写这个方法。2.一个包不同类可以使用多个main方法吗?可以,一个类可以调用另外一个类的main方法,语句是 类名.main(args)。3.super关键字是什么,有哪些用法?super关键字是子类调用父类方法的关键字,主要有两种用法,一种是调用父类的方法,用法是super.dosth...原创 2018-03-19 18:57:14 · 196 阅读 · 0 评论 -
java项目实战-超市管理系统(七)如何导入数据到数据库?Dao包源码与分析
package duan.dao;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import duan.db.DbClose;import d...原创 2018-03-26 21:38:04 · 6499 阅读 · 2 评论 -
Java设计模式(一)工厂模式:简单工厂模式与工厂方法模式
在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的。但是在一些情况下, new操作符直接生成对象会带来一些问题。举例来说, 许多类型对象的创造需要一系列的步骤: 你可能需要计算或取得对象的初始设置; 选择生成哪个子对象实例; 或在生成你需要的对象之前必须先生成一些辅助功能的对象。 在这些情况,新对象的建立就是一个 “过程”,不仅是一...原创 2018-04-10 14:58:09 · 203 阅读 · 0 评论 -
Java设计模式(二)抽象工厂模式:实例、与工厂方法模式的区别
上一篇博文我们说到了工厂模式:https://blog.csdn.net/duan_2018/article/details/79880643一、与工厂方法模式的区别工厂方法模式:一个抽象产品类,可以派生出多个具体产品类。 一个抽象工厂类,可以派生出多个具体工厂类。 每个具体工厂类只能创建一个具体产品类的实例。抽象工厂模式:多个抽象产品类,每个抽象产品类可以派生出多个具体产品类。 一个...原创 2018-04-10 15:45:52 · 743 阅读 · 0 评论 -
java核心技术卷一(五)静态方法和非静态方法访问方式的区别及静态数据域和非静态数据域访问的区别
1.对于导入的包来说,调用静态方法应该有用 类名.方法名,调用非静态方法,应该用 类名.class.newInstance().方法名调用2.使用类名.class.newInstance()真的会创建一个对象,如果该类有静态的id值,创建一个新对象增加这个值,那么通过这个方法创建的对象会增加这个id值。3.一个类中可以有其他的类,其他类也可以和主类一样有main方法,常被用来做单元测试。4.静态数...原创 2018-06-06 03:11:06 · 456 阅读 · 0 评论 -
java核心技术卷一(四)通过访问器返回私有可变数据域,破坏封装性的解决方案
对象的数据域的值,为了保证封装性,一般设置为私有的数据域,然后通过共有的访问器和更改器进行更改。然而,当一个访问器返回引用可变对象,就会出现错误,破坏其封装性。举例子如下package chapter4;import java.util.Date;public class TestEmployee { public static void main(String[] args) { ...原创 2018-06-06 02:13:36 · 1058 阅读 · 0 评论 -
java核心技术卷一(三)对象引用与创建,LocalDate的用法
Date now = new Date();当我们使用上面这个语法之时,实际上是实现了两个过程,第一个是使用new关键字创建了一个对象,另外一个过程是将这个创建的对象与变量now关联到了一起。在java中任何变量的值都是对存储在另一个地方的一个对象的引用,这一点很关键。System.out.println(new Date());当我们在使用上面一个语法之时,其实也创建了一个对象,这不过没有给这个...原创 2018-06-06 01:13:44 · 2271 阅读 · 0 评论 -
windows下通过file.setReadable(false)设置文档不可读属性失灵问题及其解决方案
在windows下,正常创建一个文件方法如下 File file1 = new File("C:\\Users\\Administrator\\Desktop\\test1.txt"); file1.createNewFile(); System.out.println("test1"); System.out.println(file1.canWrite()); System....原创 2018-06-04 01:06:23 · 2885 阅读 · 1 评论 -
使用接口Comparable<T>实现对象排序与调用
使用接口Serializable实现对象的IO保存与提取本文的代码是在上文的代码上做了一点修改实现的。接口Comparable<T>可以实现对象的排序,这样在使用时就可以对对象进行排序使用了,另外代码中体现了使用列表来在内存中保存对象,并对其进行排序的方法。其中实现该接口需要重写cimpareTo这个方法。直接上代码:package chapter1;import java.io.S...原创 2018-06-03 20:10:48 · 963 阅读 · 0 评论 -
使用接口Serializable实现对象的IO保存与提取
序列化:对象的寿命通常随着生成该对象的程序的终止而终止,有时候需要把在内存中的各种对象的状态(也就是实例变量,不是方法)保存下来,并且可以在需要时再将对象恢复。虽然你可以用你自己的各种各样的方法来保存对象的状态,但是Java给你提供一种应该比你自己的好的保存对象状态的机制,那就是序列化。实现序列化的目的是想把的内存中的对象状态保存到一个文件中或者数据库中时候。废话不多说,上代码:package c...原创 2018-06-03 19:40:56 · 357 阅读 · 0 评论 -
java核心技术卷一(二)Java语言基本语法:数据类型,变量,运算符,字符串
Java语言程序设计-基础篇(一)基础知识这是最开始学习是写的博文,其中主体结构,常量与变量,运算符,基本数据类型,注释规范及数据类型的转换都写的很清楚,这里不再重复,写一些之前没有发现的新知识。1.关于数据类型中NANNAN表示not a number,所有所有的NAN都值,大都是认为不一样的。故if(X == Double.NAN)永远都是false(之前做一个项目,有一步是清洗数据,里面很多...原创 2018-06-03 01:34:08 · 251 阅读 · 0 评论 -
java核心技术卷一(一)Java语言概述
整个五月都在进行撰写毕业论文,进行答辩相关的准备,编程方面的知识几乎没有学习。不过论文里面用到编程语言的是python,是因为做金融数据研究当时找到的数据接口是python的,所以就用了它,也用的不太好,代码虽然写了很多,但是非常的丑陋,就不放到博客上来了。现在答辩完了,距离离校还有一个多月时间,在离校前还有一段比较长的时间,准备利用这一段时间在系统的巩固一下变成知识,七月来个毕业旅游,下旬就可以...原创 2018-06-02 23:10:37 · 430 阅读 · 0 评论 -
Java设计模式(五)原型模式
一、定义 原型模式属于对象创建模式, GOF 给它的定义为:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 在 Java 中提供了 clone()方法来实现对象的克隆,所以 Prototype 模式实现变得简单许多。 注: clone()方法的使用,请参考《Thinking in Java》或者《Effective Java》,对于许多原型模式中讲到的...原创 2018-04-11 19:24:46 · 193 阅读 · 0 评论 -
Java设计模式(四)建造者模式
定义:建造者模式:将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。角色:在这样的设计模式中,有以下几个角色:Builder:为创建一个产品对象的各个部件指定抽象接口。ConcreteBuilder:实现Builder的接口以构造和装配该产品的各个部件,定义并明确它所创建的表示,并提供一个检索产品的接口。Director:构造一个使用Builder接口的对象,指导构建过程...原创 2018-04-11 18:09:09 · 186 阅读 · 0 评论 -
Java设计模式(三)单例模式:懒汉式与饿汉式
单例模式又叫做单态模式或者单件模式。在 GOF 书中给出的定义为:保证一个类仅有一个实例,并提供一个访问它的全局访问点。单例模式中的“单例”通常用来代表那些本质上具有唯一性的系统组件(或者叫做资源)。比如文件系统、资源管理器等等。 一、懒汉式package singlepattern;public class LazySingle { private static LazySin...原创 2018-04-11 16:35:26 · 240 阅读 · 0 评论 -
Think in java(一)域的初始化问题与static声明
1.初始化数据域有哪些方法?数据域是全局变量存放的地方。初始化数据域有三种方法,分别为在声明中赋值,在构造器中赋值与初始化块进行赋值。2.声明中是否可以不赋值?在没有显式的赋值时,域会被自动赋予初始值,而方法中的变量也就是局部变量必须赋予初始的值,并且注意局部变量不能声明静态变量。静态变量只能在域中用static声明,并且在类中加载一次。一般尽量给变量赋予初始值会使代码可读性更高。3.变量在初始化...原创 2018-03-19 14:54:24 · 301 阅读 · 0 评论 -
Java语言程序设计-进阶篇(十二)数据库程序设计
1.超键,外键,主键,候选键的区别:超键(super key):在关系中能唯一标识元组的属性集称为关系模式的超键 候选键(candidate key):不含有多余属性的超键称为候选键 主键(primary key):用户选作元组标识的一个候选键程序主键外键:外键主要是用来描述两个表的关系。是另一个表的主键。2.关系型数据库的三大要素:结构,完整性,SQL语言相关知识我见我之前写过的文章数据库基础M...原创 2018-03-16 17:40:37 · 305 阅读 · 0 评论 -
Java语言程序设计-进阶篇(十一)客户端/服务器程序实例
package lianxi;import java.io.*;import javafx.application.Application;import javafx.application.Platform;import javafx.geometry.Insets;import javafx.geometry.Pos;import javafx.scene.*;import ...原创 2018-03-16 14:58:52 · 455 阅读 · 1 评论 -
Java语言程序设计-进阶篇(一)递归
1.直接递归,计算N的阶乘package practice;public class myfactorial{ public static void main(String args[]){ System.out.println("5的阶乘是: " + factorial(5)); System.out.println("5的阶乘是: " + factorial(10原创 2018-02-03 13:22:31 · 331 阅读 · 0 评论 -
Java语言程序设计-基础篇(十四)UI组件与多媒体
原创 2018-02-03 00:20:23 · 217 阅读 · 0 评论 -
Java语言程序设计-基础篇(十三)事件驱动与动画
1.要对事件源进行注册事件,然后处理事件,才能对事件做出相应的反应。下面程序写出来通过按钮使圆形扩大或者缩小。package practice;import javafx.application.*;import javafx.scene.*;import javafx.stage.*;import javafx.scene.control.Button;import javaf原创 2018-02-02 18:08:28 · 949 阅读 · 0 评论 -
Java语言程序设计-基础篇(十二)JavaFX
1.JavaFX的基本结构最大的称为舞台stage,舞台需要实现start(Stage primaryStage)方法而不需要实现mian方法。类必须继承Applecition类。舞台中要放入场景scene,使用stage.setScene(scene)方法设置,使用stage.show();显示舞台,另外可以用stage.setTitile(str)设置舞台标题。场景里面可以容纳节点。用sc原创 2018-02-01 23:11:01 · 927 阅读 · 0 评论 -
Java语言程序设计-进阶篇(二)泛型
泛型类是JDK1.5之后增加的特性,可以使程序更加可靠1.定义泛型定义泛型类时,放在类名之后。定义泛型方法时,放在返回值之前。2.原始类型与泛型消除Comparable a = new Comparable();是原始类型,相当于Comparable a = new Comparable();泛型在JVM中实际上是转换成原始类型来处理的,目的是为了向后兼容,这种转换就称为泛型消除。原创 2018-02-01 12:19:47 · 255 阅读 · 0 评论 -
Java语言程序设计-基础篇(十一)二进制I/O
1.inputStream/outputStream类主要方法有read(),read(byte[] b),skip(long n),close()。其中read(byte[] b)是将读取b中的字节。outputStream的主要方法有weite(int b),write(byte[] b),flush(),close()。这两个类的构造方法是2.FileOutputStream/Fil原创 2018-01-31 21:28:21 · 224 阅读 · 0 评论 -
Java语言程序设计-基础篇(七)文本I/O
这篇博文准备写基础的IO,重点放在file类,printwriter类和scanner类上。1.file类可以用构造方法为文件创造一个file类,然后通过该类的方法获取文档的信息,包括是否存在,可读可写,文件长度,绝对路径等等。创建file类并不会真的创建一个文件。2.printwriter类构造方法就是printwriter(file),该file就是上面提到的file类,可以用原创 2018-01-31 12:34:04 · 193 阅读 · 0 评论 -
Java语言程序设计-基础篇(十)抽象类,接口与包装类
1.为什么使用抽象类抽象类不能实例化,只能通过子类继承。抽象类中的抽象方法子类必须全部实现,这样相当于抽象类中也有了方法的声明,所以调用时不需要向下转型。2.抽象类与接口抽象类与接口非常相似,都是用来抽象不同类共同的特点的。一般来说,有父子关系的用抽象类,而不相关类最好用接口,接口相对来说更灵活一些。3.包装类数值型的都继承自number类,number类,charac原创 2018-01-31 18:13:30 · 274 阅读 · 0 评论 -
Java语言程序设计-基础篇(九)异常处理
自定义异常与异常用法举例:package hello;public class Computer { public static int count(int m,int n) throws MyException{ if(m<0||n<0){ throw new MyException("不能输入负整数!");原创 2018-01-31 17:05:58 · 201 阅读 · 0 评论 -
Java语言程序设计-基础篇(八)继承和多态
1.super,extends关键字。super关键字用来引用父类的构造方法,同时可以调用父类的成员方法。extends用来说明类的继承关系,java中不允许一个类继承多个类,在未声明时所有的类都继承object类。2.object类object类是所有类的父类,有些常用方法。其中equals()用来看两个类地址是否一样,若要看内容是否一样需要覆盖该方法。toString()方法用来描原创 2018-01-31 16:19:18 · 493 阅读 · 0 评论 -
Java语言程序设计-基础篇(五)字符串
1.字符串这里方法非常多,每个方法具体用法可以查询API,从构造方法来说,String s = "something"等价于 String s = new String("something");这样就理解了为什么说把字符串看成一个类型。字符串是不可以改变的,虽然很像数组,但是不能通过s[2]来访问字符串的第三个字符(好像python可以?),需要通过方法charat(index)来访问。连接字符原创 2018-01-30 17:36:50 · 253 阅读 · 0 评论