网上找的代码一般很复杂,你要读不懂的话一点进步也没有
既然你选择java我可以给你简单介绍一下一般商业开发的流程
第一步建立对象模型比如你选择(1)商品进销存管理系统那么先抽象出所有的对象①商品代码管理②供应商管理③客户管理④进货⑤出库⑥查询与报表可以抽象出1、商品2、供应商3、客户4、仓库单5、系统管理员基本上这5个也就够了,毕竟只是toy程序然后分配属性商品商品ID商品名商品计量单位备注供应商供应商ID供应商名称供应商****客户客户ID客户名称客户****仓库单出入库ID出入库流向出入库数量出入库商品ID客户或供应商ID出入库单价(因为经常变动所以放在这里)系统管理员系统管理员ID系统管理员登录名系统管理员密码根据这些你就可以在数据库中建立相应的字段来保存数据,并且在java中建立这几个类来进行管理了第二,抽象出每个类的功能,基本上每个类都需要包括基本的四种 *** 作1、增加2、删除3、修改4、查看俗称增删改查下面只讨论可能存在的其他 *** 作④进货⑤出库⑥查询与报表这三条表示对于仓库单类来说只需要增和查两种 *** 作,删和改都不包括其中
管理员这里需要一个登陆功能(是查的变形)
普遍对于增删改查的英文缩写为crud即createreadupdatadelete(不按顺序翻译)一般商业做法为有几个类就建立几个管理类(最基础的做法,也很可能为了一个类建立很多接口或其他实现),于是我们需要下面几个类来进行实体类到数据库的转化
1、商品管理2、供应商管理3、客户管理4、仓库单管理5、系统管理员管理每个管理类的具体分析,括号内为参数,如果多于两个参数可以使用重写定义两个同名函数1、商品管理增加商品(商品)删除商品(商品或商品ID)修改商品(商品)查找商品(无或者商品ID)2、供应商管理增加供应商(供应商)删除供应商(供应商或供应商ID)修改供应商(供应商)查找供应商(无或供应商ID)3、客户管理增加客户(客户)删除客户(客户或者客户ID)修改客户(客户)查找客户(无或客户ID)4、仓库单管理增加仓库单(仓库单)查找仓库单(无或仓库单ID)5、系统管理员管理增加系统管理员(系统管理员)删除系统管理员(系统管理员或系统管理员ID)修改系统管理员(系统管理员)查找系统管理员(无或系统管理员ID)登陆(用户名,密码)相信里面的sql不用我来写了吧!^-^接下来你需要配置jdbc等和数据库连接的部分,这部分都是固定的,你可以上网搜索一下
举个管理类的例子,比如商品管理类的第一个方法增加商品,因为传过来的参数是商品类的对象所以我们可以这样来使用
(我没有写ID,建议你在数据库中直接配置成自动生成,因为在java中生成的话需要有很多考虑,比较繁琐)增加商品(商品1){String商品实例名=商品1
商品名;String商品实例计量单位=商品1
商品计量单位;String实例备注=商品1
备注;Stringsql=“insertintoXX表(商品名,商品计量单位,备注)values(商品实例名,商品实例计量单位,实例备注)”;执行sql语句(sql);}
类是Java程序中基本的结构单位。
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。
Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
扩展资料:
Java原来是用作编写消费类家用电子产品软件的语言,所以它是被设计成写高可靠和稳健软件的。Java消除了某些编程错误,使得用它写可靠软件相当容易。
Java是一个强类型语言,它允许扩展编译时检查潜在类型不匹配问题的功能。Java要求显式的方法声明,它不支持C风格的隐式声明。这些严格的要求保证编译程序能捕捉调用错误,这就导致更可靠的程序。
可靠性方面最重要的增强之一是Java的存储模型。Java不支持指针,它消除重写存储和讹误数据的可能性。类似地,Java自动的“无用单元收集”预防存储漏泄和其它有关动态存储分配和解除分配的有害错误。Java解释程序也执行许多运行时的检查,诸如验证所有数组和串访问是否在界限之内。
参考资料来源:百度百科-Java
分数有点少呀
import javaioBufferedReader;
import javaioFile;
import javaioFileInputStream;
import javaioFileNotFoundException;
import javaioFileOutputStream;
import javaioIOException;
import javaioInputStreamReader;
import javaioPrintWriter;
import javautilArrayList;
public class IoTest {
static String path = "K:\\IO测试\\分数";//盘符对应的路径,自行修改!
static File dir, file;
static boolean flag = true;
public static void main(String[] args) {
dir = new File(path);
file = new File(dir, "Numbertxt");//存档分数的文件名,自行修改!
if (!fileexists()) {
flag = false;
}
show(flag);
}
private static void show(boolean flag) {
BufferedReader br = null;
PrintWriter pw = null;
String tem = null;
try {
if (!flag) {
// 如果不存在就模拟一个分数表,写一个进去!
pw = new PrintWriter(new FileOutputStream(file), true);
for (int i = 1; i < 121; i++) {
tem = "" + (int) (Mathrandom() 60 + 41);
if (i % 20 != 0) {
pwprint(tem + " ");
} else {
pwprintln(tem);
}
pwflush();
}
} else {// 否者分数表存在,那就读取!
ArrayList<Integer> list = new ArrayList<Integer>();
StringBuilder sd = new StringBuilder();
int count = 0, fa = 0, ex = 0;
double d = 00;
br = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
for (String str = brreadLine(); str != null; str = brreadLine()) {
String[] srr = strsplit(" ");
for (int i = 0; i < srrlength; i++) {
listadd(count++, IntegerparseInt(srr[i]));
}
}
for (int a : list) {
d += a;
if (a < 60) {
fa++;
}
if (a >= 80) {
ex++;
}
}
pw = new PrintWriter(new FileOutputStream(new File(dir, "score_summarytxt")), true);
sd
append("总人数:\t" + count + "\r\n")
append("不及格:\t" + fa + "\r\n")
append("60-79:\t" + (count - fa - ex) + "\r\n")
append("80以上:\t" + ex + "\r\n")
append("平均分:\t" + Stringformat("%1f", (d / count))toString());
Systemoutprintln(sd);
pwprintln(sdtoString());
pwflush();
}
} catch (FileNotFoundException e) {
eprintStackTrace();
} catch (IOException e) {
eprintStackTrace();
} finally {
if (br != null) {
try {
brclose();
} catch (IOException e) {
eprintStackTrace();
} finally {
if (pw != null) {
pwclose();
}
}
}
}
}
}
一、标识符
java对各种变量、方法和类等要素命名时使用的字符序列成为标识符;通俗点,凡是自己可以起名字的地方都叫标识符,都遵守标识符的规则
1标识符命名规则:
1)标识符由字符、下划线、美元符或数字组成。
2)标识符应以字符、下划线、美元符开头
3)java标识符大小写敏感,长度无限制
4)约定俗成,java标识符选取应该注意“见名知意”且不能与java语言的关键字(eclipes中带颜色的基本都是关键字)重名
二、关键字
java中一些赋以特定含义,用作专门用途的关键的字符串成为关键字(keyword);且大多数编辑器都会将关键字用特殊方式标出 所有java关键字都是小写英文
一些常用关键字:
三、java的基本数据类型
1java常量
java的常量值用字符串表示,区分为不同的数据类型。如:整型常量:1234实型常量:314字符常量:’a’逻辑常量:true、false字符串常量:”HelloWorld”
注意:
1)区分字符常量和字符串常量
字符常量是单引号引起来的单个,字符串常量是双引号引起来的不限长度
由于java采用Unicode编码,每个字符占两个字节,因而可用天十六进制编码形式表示,当然也可以用一个中文表示(单个中文占用两个字节)
2)”常量”这个名次还会用在另外其他语境中表示值不可变的变量
2java变量
java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。java程序中每一个变量都属于特定的数据类型,在使用前必需对其进行声明,声明格式为:type varName [=value]例如:int i =100;foloat f=123f;double d1,d2,d3=0123;(声明了三个变量,其中d1,d2是默认值,d3=0123)String s=”hello”
从本质上讲,变量其实是内存中的一小块区域,使用变量名来访问这块区域,因此,每一个变量使用前必需先声明,然后必需进行赋值,才能使用。
1)java变量分类
按被声明的位置划分:
局部变量:方法或语句块内部定义的变量,只能在被定义的方法或语句块内使用
成员变量:方法外部、类的内部定义的变量,可以在整个类中使用,包括类里的方法或语句块内也可以使用
注意:类外面是不能有变量的声明的
按所属的数据类型划分:
基本数据类型变量
引用数据类型变量
四、运算符
java语言支持如下运算符:
算术运算符:+ - / % ++ --
关系运算符:> < >= <= == !=
逻辑运算符:! & | ^ && ||
位运算符:& | ^ ~ >> << >>>
赋值运算符:=
拓展赋值运算符:+ = -= = /=
字符串链接运算符:+
三目条件运算符 :
1算数运算符
注意:
1)
位运算符中的!、&、|、^跟罗技运算符相同,只是位运算符是对变量的二进制进行 *** 作,我个人是用不到的,所以不在这里多做介绍
2)
++(—)
在前时先运算再取值
在后时先取值再运算
2逻辑运算符
例如:
3扩展赋值运算符
4字符串连接符
“ + ”运算符两侧的 *** 作数中只要有一个是字符串类型,系统会自动将另一个 *** 作数转换为字符串然后进行连接,例如:
4 + 5 = 94 + “ab” = “4ab”
5三目条件运算符
语法格式: x y : z 其中x为boolean类型表达式,先计算x的值,若为true,则整个三目运算的结果为表达式y的值,否则整个运算结果为表达式z的值。
五、表达式和语句
1表达式
表达式是符合一定语法规则的运算符和 *** 作数的序列,例如:a50 + a(a – b) c – 4i < 30 && i %10 !=0
1)表达式的类型和值
表达式中的 *** 作数进行运算得到的结果称为表达式的值
表达式值的数据类型即为表达式的类型
2)表达式的运算顺序
应按照运算符的优先级从高到低的顺序进行
优先级相同的运算符按照实现约定的结合方式进行
我个人觉得运算顺序这块是可以忽略的,首先我的逻辑思维能力不是特别强,另外我的记性也不是特别好,所以如果我需要在表达式中区分优先级的话我会选择加括号。但是我觉得对于一些比较复杂且关键的逻辑运算,如果个人逻辑运算能力加记忆都比较好可以保证不出错的话,善用罗技运算符优先级未尝不是一种不让别人看懂你代码copy的手段。算是一种小小的防护吧,反正我这种人是不会去尝试分析这种代码的,太累
2分支(条件)语句
ifif … elseif … else if … else ifif … else if … else if …else
switch () {case xx:
……………case xx:
……………default:
……………}
1java中switch语句只能探测int类型的值(char类型的值也可以,因为他可以转换城int类型)
2小心case穿透,所以最好与break连用
3多个case可以连用,如下的示例代码也可以这样写(当i=1,2,18都会输出18):
3循环语句
for(…;…;…){……}while(…){……}先判断再执行大括号里面的内容,然后再判断是否要继续执行do{……} whille(…); 先执行大括号里面的内容再判断是否要继续执行
4break & continue语句
break语句用于终止某个语句块的执行。用在循环体语句中么可以强行退出循环continue语句用在循环体语句中,用于终止某次循环过程,跳过循环中continue语句下面未执行的循环,开始下一次循环过程
八、方法
java的方法类似于其他语言的函数,是一段用来完成特定功能的代码片段,声明格式:[修饰符1 修饰符2 …] 返回值类型 方法名 (形式参数列表) {
java语句}
形式参数:在方法被调用时用于接受外界输入的数据
实参:调用方法时实际纯给方法的数据
返回值:方法在执行完毕后返回给调用他的环境的数据
返回值类型:实现约定的返回值的数据类型,如无返回值,必需给出返回值类型void
java语言中调用方法:对象名方法名(实参列表)
实参的数目、数据类型和次序必需和所调用方法声明的形参列表匹配
return语句终止方法的运行并指定要返回的数据
java中进行函数调用传递参数时,遵循值传递的原则:
基本类型传递的是该数据值本身,引用累心美国传递的是对对象的引用,而不是对象本身
例子中的方法1,前面定义的数据类型为void, 所以方法中不能有return返回值,方法4中因为有return返回值,所以前面必需定义为返回值的类型,也就是m4前面那个int
九、递归调用
递归调用是指在方法执行过程中出现该方法本身的调用
先看一个例子,这是一个简单的递归调用:
简单分析下:
1首先main主方法中输出字符串,内容是test方法当参数等于5的时候的返回值2然后将参数5传入test方法,返回值是:5 test(4)3再次将参数4传入test方法中,返回值是:4 test(3)4再将参数3传入test方法中,返回值是:3 test(2)5再讲参数2传入test方法中:返回值是:2 test(1)6再将参数1传入到方法中:返回值是:1然后程序开始往回走,返回值传入test(1)中得到21再往回走,将刚刚得到的21传入到test(2)中得到321还要往回走,将刚刚得到的321传入到test(3)中得到4321还要往回走,将刚刚得到的4321传入到test(4)中也就是test(5)的返回值,得到54321最后将test5的返回值传入到我们的主方法输出于语句中54321=120,那么我们的输出语句输出的应该为120
这就是简单的递归调用的例子了
再来看一个例子:
非递归的写法:
请自行领悟
最后奉上java基础语法完整学习路线图,除此之外还有精心整理的其他java学习路线图,学习书籍电子书,阿里巴巴手册,视频教程等即可点此领取:
>
class Trangle{
private double a, b, c;//三个边
private double area;//面积
private double perimeter;//周长
public double getArea() {//返回面积
return area;
}
public double getPerimeter() {//返回周长
return a+b+c;
}
public void setA(double a) {//修改边a
thisa = a;
}
public void setB(double b) {//修改边b
thisb = b;
}
public void setC(double c) {////修改边c
thisc = c;
}
public static boolean isTrangle(double a, double b, double c){//判断三个数能否构成一个三角形
if(a <= 0 || b <=0 || c<=0){
return false;
}
return a + b > c && a + c > b && b + c > a;
}
}
class Lader{
private double a;//上底
private double b;//下底
private double h;//高
private double area;//面积
public double getArea() {//返回面积
return (a+b)h/2;
}
}
class Circle{
private double r;//半径
private double perimeter;//周长
private double area;//面积
public double getArea() {//返回面积
return 314 r r;
}
public double getPerimeter() {//返回周长
return 3142r;
}
}
Java程序包括2种
1) Java 应用程序,必须具有一个main方法入口
public class Test{
public static void main(String args[]){
}
}
2) Java 小应用程序
Applet类中的四种基本方法用来控制其运行状态:init()、start()、stop()、destroy() ,至少具有init start方法。。
已测试:
class Stu{
private String name;
private double english;
private double math;
private double chinese;
public Stu(){}
public Stu(String name){
thisname=name;
}
public void setGrades(double english,double math,double chinese){
thisenglish=english;
thismath=math;
thischinese=chinese;
}
public double getTotalGrades(){
return english+math+chinese;
}
public String toString()
{
return thisname + "\t" + thisenglish + "\t" + thismath + "\t" + thischinese+"\t" + thisgetTotalGrades();
}
}
public class Test
{
public static void main(String[] args)
{
double[] grades={
70,80,90,
71,72,73,
72,73,74,
73,74,75,
76,77,78,
61,62,63,
62,63,64,
63,64,65,
64,65,76,
90,90,90
};
Stu[] stu=new Stu[10];
int i=0;
for(i=0;i<10;i++){
stu[i]=new Stu("stu"+i+1);
}
for(i=0;i<30;i+=3)
stu[i/3]setGrades(grades[i],grades[i+1],grades[i+2]);
Test t=new Test();
tsort(stu);
Systemoutprintln("名次\t姓名\t语文\t数学\t英语\t总分");
for(i=0;i<10;i++)
{
Systemoutprint(i+1 + "\t");
Systemoutprintln(stu[i]);
}
}
public void sort(Stu[] stu){
int least=0;
for(int i=0;i<stulength-1;i++){
least=i;
for(int j=i+1;j<stulength;j++){
if(stu[least]getTotalGrades()<stu[j]getTotalGrades())
least=j;
}
if(i!=least) swap(stu,i,least);//交换
}
}
//两个数交换
private void swap(Stu[] stu,int one,int two){
Stu temp=stu[one];
stu[one]=stu[two];
stu[two]=temp;
}
}
static char charVar='\t';
static float floatVar=314159f;
public static void main(String args[])
{
String stringVar="java";
Systemoutprint("类中定义:"+
"floatVar= "+floatVar+charVar+"stringVar= "+stringVar);
Systemoutprintln();
show();
}
static void show()
{
String stringVar="北京";
Systemoutprintln("类中定义:floatVar= "+floatVar+"方法中定义:stringVar= "+stringVar);
}
复制这个就可以了,第一个错语是换行加连接符,第二个错误是你八行和十五行的符号错了,换成半角的输入,你那个:和;都成汉字输入法的了,所以加连接符也是报错的
以上就是关于Java的应用程序开发过程(java程序的开发步骤)全部的内容,包括:Java的应用程序开发过程(java程序的开发步骤)、什么是java程序中基本的结构单位、JAVA入门,程序编写等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)