课程总结
这个学期的Java学习已经到了末尾了,通过这一学期的学习对Java这门语言有了一定的了解,与之前学的C语言有很多地方不同,但又有很多相似之处,老师说语言都是相通的,自己对这句话也有一定的理解了,以前总觉得要学一门高级点的语言才显得牛皮,后面发现c都学不太懂,还谈什么其他高级语言呢,Java跟c还是有一定的区别的,我自我感觉我更适合学Java,C语言要注意的东西太多太多,而Java虽然复杂但是感觉比C语言更合我的胃口,不过貌似这门课只学一学期,所以,虽然说本学期面向对象与Java程序设计课程已经全部结束了,但Java程序设计的学习还远未到终点,然后,继续努力学下去吧。
一 认识Java:
1.java语言特点
2.Java开发环境搭建
JDK的安装与配置
3.数据类型的转换
数据类型的自动转换:
a.转换前的数据类型与转换后的类型兼容
b.转换后的数据类型的表示范围比转换前的类型大
数据类型的自动转换
二 面对对象编程:
抽象类与接口
1、抽象类和接口都不能直接实例化,如果要实例化,抽象类变量必须指向实现所有抽象方法的子类对象,接口变量必须指向实现所有接口方法的类对象。
2、抽象类要被子类继承,接口要被类实现。
3、接口只能做方法申明,抽象类中可以做方法申明,也可以做方法实现
4、接口里定义的变量只能是公共的静态的常量,抽象类中的变量是普通变量。
5、抽象类里的抽象方法必须全部被子类所实现,如果子类不能全部实现父类抽象方法,那么该子类只能是抽象类。同样,一个实现接口的时候,如不能全部实现接口方法,那么该类也只能为抽象类。
6、抽象方法只能申明,不能实现,接口是设计的结果 ,抽象类是重构的结果
7、抽象类里可以没有抽象方法
8、如果一个类里有抽象方法,那么这个类只能是抽象类
9、抽象方法要被实现,所以不能是静态的,也不能是私有的。
10、接口可继承接口,并可多继承接口,但类只能单根继承。
三 异常的捕获及处理:
异常的基本概念:异常是导致程序中断的一种指令流,异常处理的语句格式,在try语句中写出可能出现异常的语句,如果try语句中产生了异常,则程序会自动跳转的catch语句中找到匹配的异常类型进行相应的处理,而finally语句是异常的统一出口,finally后面的语句是一定会执行的。
throw与throws关键字:
1、Throw用于方法内部,Throws用于方法声明上
2、Throw后跟异常对象,Throws后跟异常类型
1.进程是程序的一次动态执行过程
2.线程:多线程是实现并发机制的一种有效手段
3.线程的实现:a.Thread类:一个类只要继承Thread类,此类就称为多线程操作类。在Thread子类中,必须明确地覆写Thread类中的run()方法。
4.Runnable接口:实现Runnable接口可以资源共享
5.线程操作的相关方法:a 取的和设置线程名称 b判断线程是否启动 c 线程的强制运行 d 线程的休眠 e 线程的优先级 f 线程的礼让
JavaIO:
1.操作文件的类--File
File类的构造方法:public File(String pathname)----实例化File类的时候,必须设置好路径。
例如File f=new File(“d:”+File.separator+“test”+File.separator+“demo.txt”);
2.RandomAccessFile类
3.字节流与字符流基本操作
字节输出流:OutputStream
OutputStream是整个io包中字节输出流的最大父类
package org.lxh.demo12.byteiodemo; import java.io.File; import java.io.FileOutputStream; import java.io.OutputStream; public class OutputStreamDemo1{ public static void main(String[]args)throws Exception{ //第1步:使用File类找到一个文件 File f=new File("d:"+File.separator+"test.txt"); //第2步:通过子类实例化父类对象 OutputStream out=null; out=new FileOutputStream(f); //第3步:进行写操作 String str="hello wrold"; byte b[]=str.getBytes(); out.write(b); //第4步:关闭输出流 out.close(); } }
字符输出流Writer
Writer本身就是一个字符流的输出类,此类定义如下
public abstract class Writer extends Object implements Appendable,Closeable,Flushable
字符输出流:Reader
Reader类时使用字符的方式从文件之中取出数据,Reader类的定义如下
public abstract class Reader extends Object implements Readable,Closeable
五 图形界面
1.AWT简介:
组件;容器;布局管理器。
2.Swing
3.基本容器JFrame
常见一个新的窗体:
package org.lxh.demo.jframedemo; import java.awt.Color; import javax.swing.JFrame; public class JFrameDemo01{ public static void main(String args[]){ JFrame f=new JFrame('第一个Sing窗体"); f.setSize(230,80); f.setBackground(Color.WHITE); f.setLocation(300,200); f.setVisible(true); } }
使用Dimension和Point类设置组件大小和显示位置
package org.lxh.demo18.jframedemo; import java.awt.Color; import java.awt.Dimension; import java.awt.Point; import javax.swing.JFrame; public class JFrameDemo02{ public static void main(String args[]){ JFrame f=new JFrame("第一个Swing窗体"); Dimension d=new Dimension(); d.setSize(230,80); f.setSize(d); f.setBackground(Color.WHITE); Point p=new Point(300,200); f.setLocation(p); f.setVisible(true); } }
JLble:设置标签的显示字体、大小、背景颜色
package org.lxh.demo18.jlabeldemo; import java.awt.Color; import java.awt.Dimension; import java.awt.Point; import javax.swing.JFrame; import java.swing.JLable; public calss JLableDemo01{ public static void main(String args[]){ JFrame frame=new JFrame("Welcome To MLDN"); JLabel lab=new JLable("MLDN",JLable.CENTER); Font fnt=new Font("Serief",Font./TALIC+Font.BOLD,28); lab.setFont(fnt); lab.setForeground(Color.RED); frame.add(lab); Dimension dim=new Dimension(); dim.setSize(200,70); frame.setSize(dim); frame.setBackground(Color.WHITE); Point point=new Point(300,200); frame.setLocation(point); frame.setVisible(true); } }
布局管理器
FlowLayout:流式布局管理器
BorderLayout:将一个窗体的版面划分为东、西、南、北、中5个区域。
GridLayout:表格的形式(行优先);
CardLayout:每次只会展示一个界面,是有翻转方法实现切换;
绝对定位:设置绝对坐标的方式完成布局。
其他容器
JPanel:在JPanel中科院加入任意的组件,然后直接将JPanel容器加入到JFrame容器中即可显示
JSplitPane:主要功能是分割面板,可以将一个窗体分为两个子窗体,可以是水平也可以是垂直。
JSplitPane类的主要方法及常量:
JSplitPane() : 创建一个配置为将其子组件水平排列、无连续布局、为组件使用两个按钮的新 JSplitPane。
JSplitPane(int newOrientation) :创建一个配置为指定方向且无连续布局的新 JSplitPane。
JSplitPane(int newOrientation, boolean newContinuousLayout) :创建一个具有指定方向和重绘方式的新 JSplitPane。
常用方法
setDividerLocation(double proportionalLocation) :设置分隔条的位置为 JSplitPane 大小的一个百分比。
setDividerLocation(int location) :设置分隔条的位置。
setContinuousLayout(boolean newContinuousLayout) :设置 continuousLayout 属性的值,在用户干预期要使子组件连续地重新显示和布局子组件,此值必须为 true。
setDividerSize(int newSize) :设置分隔条的大小。
getDividerLocation() :返回最后传递给 setDividerLocation 的值。
getDividerSize() :返回分隔条的大小。
JTabbedPane:在一个面板上设置多个选项卡供用户选择
JScrollPane:主要由JViewport和JScrolllBar两部分组成,前者主要是显示一个矩形的区域让用户浏览,而后者主要是是形成水平或垂直的滚动条。事件处理:
事件和监听器
窗体事件及监听适配器
WindowListener时专门处理窗体事件的监听接口,一个窗体的所有变化,如窗口打开、关闭等都可以使用这个接口进行监听
键盘处理及监听事件:
在Swing的事件中也可以对键盘的操作进行监听,直接用KeyListener接口即可。
KeyListener接口方法
void keyPressed(KeyEvent e):键入某个键时调用
void keyReleased(KeyEvent e) :键盘按下时调用
void keyTyped(KeyEvent e):键盘松开时调用
菜单组件:
若在java中实现此菜单,则可使用JMenu组件,不过,如果要使用JMenu则首先要了解JMenuBar组件。
JMenuBar的常用方法
1.
JDBC是Java提供的一套数据库操作标准
JDBC的主要操作类及接口:
Java.sql.CallableStatement:用于执行SQL存储过程
Java.sql.Types:定义了表示SQL类型的常量
java.sql.DriverManager :用于管理jdbc驱动程序
Java.sql.Connection :用于建立与特定数据库的连接
Java.sql.Statement 一个Statement的对象用于执行静态sql语句,并获得语句执行后产生的后果
Java.sql.PreparedStatement 创建一个可以编译的sql语句对象,该对象可以多次被运行,以提高执行效率,是Statement的子接口
Java.sql.ResultSet 用于创建表示sql语句检索结果的结果集,用户通过结果集完成对数据库的访问
Java.sql.CallableStatement:用于执行SQL存储过程
Java.sql.Types:定义了表示SQL类型的常量
在JDBC中基本操作中最常用的类和接口就是DriverManger、Connection、Statement、Result、PrepaerdStatement。