课程总结
一个学期结束了,下面我对一些重点知识分三个模块做一个小的总结。
一、Java基础程序设计
1.java中源文件的扩展名为.java,之后通过编译是.java的文件生成一个.class文件。
2.Java中所有的程序都是在JVM上运行的,JVM是在一台计算机上由软件或硬件模拟的计算机。
3.类的定义使用了public class声明的话,文件名必须与类名称保持一致,而使用class定义的类,文件名称可以与类名称不同,但是
生成的.class文件的名称就是class定义的类名称,且一个Java文件可以产生多个class文件。
4.类名称要求每个单词的首字母都要大写。
5.主方法(main())是一切程序的起点,吧主方法所在的类称为主类,并且主类都使用public class声明。
6.public static void main (String args[])是程序的主方法,即所有的程序都会以此方法为起点并运行下来。
7.System.out.println起输出作用,是直接将“()”里的内容进行输出,如果有多个值时,中间可以使用"+"连接。
8.JAVA中的标识符不能以数字开头,也不能是JAVA中的保留关键字。
9.数据类型的转换由低到高发生自动类型转换,反之,则发生强制类型转换。
10.a%b=c,c的正负与被除数保持一致。
12.普通与(&)和普通或(|)所有的判断条件都要判断,而短路与(&&)和短路或(||)如果前面的判断返回了false和true,后面
则不需要再判断,最终结果就是false和true。
13.Java数组的使用,必须经过声明数组和分配内存给数组,其中new则是编译器根据括号里的长度,在堆内存中开辟一块堆内存供该数组使用。
二、Java面对对象程序设计
1.可以使用this强调本类中的方法
2.可以表示类中的属性
3.this表示当前对象
注意:this必须放在首行,且this不能循环调用。
注:如果一个类中有多个构造方法的话,可以利用this关键字互相调用
4.类:定义出一个基本的模板,代表着一个共性,类是由属性和方法组成的。对象:对每一个体的详细描述。
5.所有的对象名称都在栈内存中保存,而对象的具体内容则保存在对应的堆内存中,必须使用new关键字才能开辟堆内存空间。
6.如果一个对象要被使用,则对象必须被实例化。 实例化对象:对象名称 = new 类名()。
7.程序封装使用private,而被封装了的对象要使用setter和getter去设置和访问。
8.通过继承,可以将父类中的操作直接拿到子类中使用,子类也可以定义自己的属性或方法
9.子类不能直接访问父类中的私有操作,子类可以通过其他操作间接访问父类中的私有操作(例如用setter或getter访问)
10.子类对象在实例化之前必须首先调用父类中的构造方法之后再调用子类自己的构造方法。
11.方法的覆写是指子类定义了与父类中同名的方法,但是在方法覆写时必须考虑到权限,即被子类覆写的方法不能拥有父类方法更加严格的访问权限。
12.使用super能调用父类的构造方法,普通方法和非私有属性。
13.super和this都必须放在首行,故不能同时使用。
14.使用final声明的类不能有子类2.使用final声明的方法不能被子类所覆写3.使用final声明的变量即为常量,不可修改4.使用final声明变量时,要求全部的字母大写
15.向上转型:子类对象 →父类对象(自动转换)
16.向下转型:父类对象 →子类对象(强制转换)注:首先要进行向上转型,然后在进行强制类型转换。
17.包含一个抽象方法的类必须是抽象类;抽象类和抽象方法都要使用abstract关键字来声明;
抽象类必须被子类继承,子类必须覆写抽象类中的全部抽象方法;抽象方法只需要声明但不需要实现。且普通类不能有
抽象方法。
18.接口是一种特殊的类,里面全部是由全局变量和公共的抽象方法组成。
注意:抽象方法必须定义成public访问权限。
接口的使用和抽象类一样都是需要通过子类来实现,而子类通过implements关键字来实现接口(可实现多个接口)。
19.其中Exception表示程序出现的问题,要用try。。。catch语句处理
20.throw和throws关键字
在定义一个方法的时候可以使用throws关键字声明,使用throws声明的方法表示此方法不处理异常,抛给方法的调用处处理。
throw可以直接使用从而抛出一个异常。抛出时直接抛出异常类的实例化对象。
三、Java应用程序设计
1.Java中线程的实现
方法一:继承Thread类:一个类只要继承了Thread类,就称为多线程操作类。且在Thread子类中,必须明确的覆写Thread类中的run()方法。
启动线程应调用start()方法。
方法二:实现Runnable接口
两种方法的区别:
Thread类中的run方法调用的是Runnable接口中的方法,故如果使用Thread方法实现多线程的话则必须要覆写run()方法。且
使用Runnable接口可以避免单继承局限,能更好的实现数据共享
2.线程分为五个状态,分别是创建状态,就绪状态,运行状态,堵塞状态和死亡状态。如图:
3.使用synchronized关键字将一个方法声明成同步方法
4.如果要使用File类,则要使用File类的构造方法,且实例化File类的时候,必须要给出设置好的路径。
5.程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成。如图所示:
6.在Java中IO操作流程:
(1)使用File类打开一个文件。
(2)通过字节流或字符流的子类指定输出的位置。
(3)进行读/写操作。
(4)关闭输入/输出。
7.字节流:(1)字节输出流OutputStream类(2)字节输入流InputStream类
8.字符流:(1)字符输出流Writre类(2)字符输入流Reader类
9.基本容器JFrame类:
此类用于创建窗口。
Dimension类:
此类方法用来设置窗体的大小
Point类:
此类方法用来显示窗口的位置,即控制窗口左上角的x,y坐标来表示,
JLabel类:
用于创建标签
Font类:
用于设置标签的显示字体、大小、背景颜色
Imagelcon类:
可以将任意一张图片设置到JLabel中。
按钮组件JButton类:
在窗体中增加一个按钮
10.布局管理器
FlowLayout类:
流式布局管理器,会使所有的组件像流水一样依次进行排列
BorderLayout类:
将一个窗体的版面划分为东、西、南、北、中五个区域。
GridLayout类:
以表格的形式进行管理
CardLayout类:
将一组组件彼此重叠地进行布局,像卡片一样。
绝对定位
可以设置绝对坐标的方式完成布局。
13.其他容器:
1)JPanel:
JPanel可以完成复杂的界面显示。
2)JSplitPane:
其主要功能是分割面板。
3)JTabbedPane:
在一个面板上设置多个选项卡。
4)JScrollPane
为显示的内容加上一个滚动条。
5)文本组件JTextComponent
6)单行文本输入组件JTextField
实现一个单行的输入文本
7)密文输入组件JPsaawordField
8)EventObject
所有的事件类都是EventObject类的子类
14.监听
1)WindowListener:
它是专门处理事件的监听接口,包括窗体的所有变化(如关闭,打开等等)
2)监听适配器Adapter:
用户继承该类后就可以根据自己的需要来覆写方法,就不需要覆写接口里的所有抽象方法了。
3)动作事件及监听处理ActionListener:
处理按钮的动作事件,让按钮变得更加有意义。
15.单选钮JRadioButton
单选钮就是在给出的多个显示信息中指定选择一个
16.复选框JCheckBox
可以选多个
17.菜单组件
当一个界面中出现许多按钮的时候,可以利用菜单进行统一的布局管理,可以使得
界面功能更加丰富。
18.JMenu和JMenuBar
实现菜单组件要使用Jmenu。而JMenuBar组件的功能是用来摆放JMenu组件,当建立了
多个JMenu组件之后,需要通过JMenuBar组件将JMenu组件加入到窗口。
19.JMenultem
此组件的功能是为菜单中加入菜单项。
20.文本选择框JFileChooser
可以使用他来选择要打开或保存的文件。
21.JDBC
他的意思是java数据库连接,他可以方便的实现多种关系型数据库的统一操作,由一组用java语句编写的类和接口组成。
22.JDBC驱动分类:
1)JDBC-ODBC桥驱动;
2)JDBA本地驱动;
3)JDBC网络驱动;
4)本地协议纯JDBC驱动;
23.连接数据库的操作:
JDBC的连接地址实际上是由以下的3个部分组成。
(1)jabc 协议:JDBC URL 中的协议总是 jdbc。
(2)子协议:驱动程序名或数据库连接机制(这种机制可由一个或多个驱动程序支持)的名称,如
MySQL。
(3)子名称: 种标识数据库的方法。必须遵循“//主机名:端口/子协议”的标准URL 命名约定,
如//localhost:3306/mldn
24.ResultSet接口
在JDBC的操作中数据库的所有查询记录将使用ResultSet进行接受,并使用它取得内容
自我总结:
以上就是我对本学期的Java总结,时光如水,岁月如梭。一眨眼就是一学期过去了,可是我还是感觉自己学的太少,而且知识的连贯性不强,
主要就是自己的基础知识不够牢固,综观这个学期的Java学习,在有时候我还是投了点懒的,但是每一周的作业我基本上都会花几个小时去完成
把每次作业的代码去认真理解并完成,但是课后却没有任何的学习了,所以我深深的感觉到那种学了就扔的那种,这个感觉在记事本这个实验代码
上充分的反应了,他对知识的连贯性要求较高,总之还是自己做的题目太少了,我觉得学习这个还是需要自己多多实践,多做一些Java题目,来将所学
运用上去,这样的话估计就能掌握所学的知识了。寒假时间比较长,我将充分利用这段时间把自己的Java水平上升。希望自己在以后的路上能更加努力,
在此,也辛苦助教对我们每个人的的付出,同时也感谢李老师对我们的教育。2020年我们会更好。
加油加油加油!!!