###本学期面向对象与Java程序设计课程已经所有结束了,但Java程序设计的学习还远未到终点,你们就本学期的课程做一个全面的总结吧。java
在此感谢各位助教的全力配合和辛勤劳动,辛苦了!mysql
###1、Java面向对象程序: ####面向对象编程(基础篇):
1.类与对象。关于类的定义、状态与行为,类与对象的关系,对象的建立与使用。 2.封装性(setter与getter)。 3.构造方法(类名 对象名称 = new 类名称)。 4.匿名对象。 5.this关键字(强调本类中方法,表类属性,使用this调用本类构造方法,this表示当前对象)。 6.static关键字(全部对象共享,类名称直接调用)。
7.String类 ①两种实例化方法(例给name赋值zy):直接赋值(String name= "zy");直接调用String类的构造方法(String name=new String("zy"))。 ②两种比较内容方法:“==”,“equals()”(将内容进行比较)。 ③String类中经常使用方法(jdk中可查看)。 ④注意:字符串就是一个String类的匿名对象;使用String类声明后的字符串内容不可改变。sql
####面向对象(高级篇): 1.继承 ①经过子类扩展父类功能(class 父类{} class 子类 extends 父类{})。 ②子类不可直接访问父类的私有操做(要经过setter或getter),但可调用父类私有方法。 ③子类对象实例化以前先调用父类的构造方法。值得注意的是,父类的构造方法中既有无参构造方法(可系统给,可本身写)又有有参构造方法,咱们须要在父类中本身写上一个无参构造,防止调用时this与super并用时报错(super调用无参构造)。 ④覆写时,子类只可扩大权限,不可缩小(例父:private,子:public)。 ⑤因this与super都须要放在构造方法的首行,故不可同时出现。且均不可用于main方法中。 2.final关键字: ①使用final声明的类不能有子类。 ②final声明的方法不能被子类覆写(即不能被继承)。 ③final声明的变量即成为常量,常量不可被修改。 3.抽象类 普通类不可有抽象方法,抽象类能够有普通方法及构造方法。 4.多态性 首先进行向上转换,才能进行向下强制类型转换。 5.对象多态性: 两个或多个属于不一样类的对象,对于同一个消息(方法调用)作出不一样的响应的方式。 6.抽象类(模板): 父类至关于定义了一个模板,在主办法中调用的为普通/构造/抽象方法,子类只须要实现父类的抽象方法。 7.接口(标准): 接口规定出一个标准,对具体的下面的类内容不关心 注意: ①为抽象类与接口实例化:A a=new B()。 ②一个类不要去继承已实现好的类,要抽象类与接口二选一。若二者均可以使用,为避免单继承局限,要优先使用接口。 ③接口不可以使用构造、普通、抽象方法及变量。 ④抽象类可实现多个接口,接口不能继承抽象类。 ⑤二者都经过对象的多态性产生实例化对象。数据库
####异常的捕获及处理: 1.异常: ①异常处理:try{...}catch{...}finally{...} ②throw关键字:用户手工抛出异常类的实例化对象。throws:用于方法声明,表示此方法不处理异常,将异常交给程序被调用处进行处理。 ③RuntimeException是Exception的子类,其定义的异常能够选择性进行处理。 ④自定义异常只须要继承Exception类进行强制性处理。编程
###2、Java应用程序设计: ####多线程: ①定义:一个类继承Thread类,子类中必须明确覆写Thread类中的run()方法。 ②不能直接使用run()方法,须要用start()方法启动。多线程
####Java IO: ######字节流与字符流相关的基本操做 1.字节流(操做byte数据) ①输出数据:OutputStream类 ②输入数据:InputStream类 2.字符流 ①输出数据:Writer类 ②输入数据:Reader类 3.二者区别:字节流在操做时自己不会用到缓冲区,而字符流在操做时使用了缓冲区,经过缓冲区再操做文件 4.操做流程: ①使用File类打开一个文件 ②经过字节流或字符流的子类,指定输出的位置 ③进行读/写操做 ④关闭输入/输出工具
######转换流等以及System类对IO的支持相关内容 1.转换流 ①OutputStreamWriter类:Writer的子类,将输出字符流变字节流 ②InputStreamReader类:Reader的子类,将输入字节流变字符流 2.内存操做流 ①字节内存操做流:内存输入流(ByteArrayInputStream) 内存输出流(ByteArrayOutputStream) ②字符内存操做流:内存输入流(CharArrayReader) 内存输出流(CharArrayWriter) ③ByteArrayInputStream: 程序->InputStream->输出到内存 ④ByteArrayOutputStream:程序<-OutputStream<-内存 3.管道流 4.System类 ①System.out 即向显示器上输出(但愿用户能够看见的信息 ②System.err 表示的是错误的标准输出(不但愿用户能够看见的信息 ③System.in 从键盘中读取数据布局
####图形界面: 1.AWT(重量及组件,抽象窗口工具包)组成: ①组件(Component)②容器(Container)③布局管理器(LayoutManager)学习
2.Swing(轻量级图形界面组件)组成: ①基本容器JFrame(Component子类):不只自身有经常使用操做方法,还能够经过Dimension类和Point类的方法设置组件部分属性。且实例化Frame对象时不须要用异常处理。 ②标签组件JLabel:建立完的Label对象可经过Container类中的add()方法加入到容器。进行信息的显示、设置文字显示效果(public void setFont(Font f))或显示图片(使用Icon接口以及ImageIcon子类)。 ③按钮组件JButton:表示一个普通的按钮,也能够为一个按钮设置一张显示图片。 ④布局管理器(管理组件): FlowLayout(流式布局管理器):全部组件按照次序依次向下排列; BorderLayout:将版面划分红东西南北中五个区域; GridLayout:以表格形式进行管理,必需要设置显示的行数和列数(列数有时不做数); CardLayout:将一组组件彼此重叠地进行布局,每次只展示一个界面; 绝对定位:经过setBounds()方法,定位一个组件的坐标。其好处是不论窗体如何改变大小,组件位置固定不动。 3.其余容器: ①JPanel:直接加入到JFrame容器中便可显示,完成各类复杂的界面显示。 ②JSplitPane:分割面板(水平排列或垂直排列)。 ③JTabbedPane:在一个面板上设置多个选项卡供用户选择。 ④JScrollPane:为显示的内容加入水平滚动条。 ⑤JDesktopPane和JInternalFrame:使一个窗体中出现多个子窗体,每一个子窗体没法超出父窗体的区域。 4.事件处理: ①事件:表示一个对象发生状态变化,全部事件类都是EventObject类的子类。 ②监听器:事件接受对象,以接口形式出现,处理时只须要实现此接口。 ③窗体事件与监听适配器:WindowListener是专门处理窗体事件的监听接口,但直接使用接口须要覆写所有抽象方法不太方便。因此经过WindowAdapter实现监听,就可以让用户根据本身的须要进行方法的覆写。 ④动做事件及监听处理:使用ActionListener监听,可使用此事件完成一个简单的用户登陆操做。 5.鼠标事件及监听处理: ①使用MouseListener接口,产生MouseEvent事件; ②经过MouseAdapter实现监听。 6.鼠标拖拽事件及监听处理:使用MouseMotionListener接口 7.单选钮: ①使用JRadioButton类完成; ②使用ItemListener接口进行事件监听,存在ItemEvent事件。 8.菜单组件: ①JMenu与JMenuBar:JMenuBar组件用来摆放JMenu组件,可构建一个简单的无菜单项的菜单; ②JMenuItem:至关于一种特殊组件JButton,会触发ActionEvent事件,用于加入菜单项。 ③事件处理:JMenuItem与JButton都是AbstractButton类的子类,故事件处理机制彻底同样。this
####Java数据库编程: JDBC(Java数据库链接)的主要操做及接口: 经常使用类和接口:DriverManager(用于管理JDBC驱动程序)、Connection(用于创建与特定数据库的链接)、Statement(一个Statement对象用于执行静态SQL语句,并得到语句执行后产生的结果)、Result(用于建立表示SQL语句检索结果的结果集)、PreparedStatement(建立一个能够编译的SQL语句对象,该对象可被屡次运行,该接口是Statement的子接口)。
MYSQL数据库: ①定义:小型关系型数据库管理系统。 ②安装及配置。 ③经常使用命令: 链接MYSQL数据库:
mysql-u 用户名 -p 密码;
建立数据库:
CREATE DATABASE 数据库名称、
删除数据库:
DROP DATABASE 数据库名称;
使用数据库:
USE 数据库名称;
建立数据库表:
CREATE TABLE 表名称( 字段名称1 字段类型 [DEFAULT 默认值] [约束], 字段名称2 字段类型 [DEFAULT 默认值] [约束], ... 字段名称n 字段类型 [DEFAULT 默认值] [约束] );
删除数据库表:
DROP TABLE 表名称;
查看表结构:
DESC 表名称;
查看数据库信息: 查看所有数据库:
SHOW DATABASES;
查看一个数据库的所有表:
SHOW TABLES;
SQL语法基础: ①SQL功能归纳:DML、DDL、DCL; ②MYSQL中的数据类型:经常使用的是INT、FLOAT、VARCHAR(M)、TEXT、DATE、DATETIME。 ③增长数据:
INSERT INTO 表名称[(字段1,字段2,字段3,...,字段n)]VALUES (值1,值2,值3,...值n);
④删除数据:
DELETE FROM 表名称 [删除条件];
⑤更新数据:
UPDATE 表名称 SET 字段 1=值1,...,字段n=值1[WHERE 更新条件];
⑥查询数据:
SELECT{*|column alias} FROM 表名称 别名 [WHERE condition(s)]; →设置查询条件
JDBC操做步骤:
###总结: 没接触java以前,还对上学期的C语言心有余悸,生怕难以适应。后来发现,竟然能接受了,真是庆幸。尽管我学到的都只是书本上的皮毛,并无本身去拓展知识面,这也是比较遗憾的(学渣语录)。很感谢李津老师这学期的“呕心沥血”,让我更对计算机科学充满感叹,原来计算机是这么神奇的东西。 我不像别人的总结都把这学期学到的Java知识写的很专业很全面,我只是很慢的,把本身听到的先一点点消化。但愿将来可期吧,不仅仅是学习方面,还有其余理想。