课程总结

这个学期的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后跟异常类型

3、Throw后只能跟一个异常对象,Throws后可以一次声明多种异常类型
 
Exception类与Runtimeexception类
 
1、exception在程序中必须要使用try...catch进行处理,而runtimeexception可以不使用,如果出现异常,则将由JVM进行处理
2、runtimeexception是exception的子类
四 多线程:
进程与线程:

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.

public JMenuBar()
构造器。建立一个菜单栏。
2.
public JMenu add(JMenu c)
将c附加在菜单栏尾端并返回菜单。
3.public JMenu getMenu(int index)
返回第index个菜单,索引值0表示第一个菜单。
4.public int getMenuCount()
返回菜单计数。
JMenu的常用方法:
public JMenu(String s)    创建新的JMenu,并指定菜单名称
public JMenuItem add(JMenuItem menuItem)    增加新的菜单项
public void addSeparator()    加入分隔线
六 java数据库编程:
JDBC:

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。