课程总结

个人总结
马上大二上学期就快结束了,接下来就会是各种期末测试,还有专业课的考察,还记得大一时学的专业是c语言,但是在大一的课上,我并不是那种很认真听课的学生,一般是听一会儿课,玩一会儿手机,然后就导致我的专业课C语言成绩一落千仗,然后课后也不复习,整个大一就这样浑浑噩噩的过去了,我们大二上学期告别了C语言开始接触java,怎么说呢,c语言我学的是一塌糊涂,听到李津老师说的java基本和c语言大同小异,我的心瞬间哇凉,因为我的C语言基础底子不是很好,甚至可以说是一塌糊涂,但是李津老师还是对我们说不用太担心,只要这个学期好好听课,多去动手做题,是可以把差距缩小的,于是我试着去努力听课,认真完成老师布置的所有题目,并且认真阅读老师发给我们的资源,一开始我一窍不通,几乎每天都上网搜那些专业词,后来我开始觉得这些专业课并不那么枯燥,反而感觉有趣起来,在以前上课我听都听不懂老师所讲的一些专业词,到现在也变得耳熟能详起来,正所谓功夫不负有心人,我也可以慢慢的一步一步敲出正确的代码,而不是像以前一样毫无头绪,大二上学期马上就结束了,我怀着上学期的热情,开始期待下学期的学习任务了。

重要学习知识总结

方法的定义

public static 返回值类型 方法名称(...){
     程序语句
[return 表达式]
}

方法覆写与重载的区别

覆写的单词为:Overriding,重载的单词是:Overloading;重载的方法名称相同,但参数的类型或个数不同,覆写的所有方法名称,参数类型,返回值类型全部相同;被覆写的方法不能拥有更严格的权限;重载是发生在一个类中,而覆写是发生在继承类中。

super关键词

super可以从子类中调用父类的构造方法、普通方法、属性。super与this一样,都是要放在构造方法首行。 super与this非常相似,但还是存在很大的区别 在访问方法和属性时,this是先访问本类,如果没有则去父类中继续查找,而super是直接访问父类;在调用构造方法是,this必须放在构造方法首行,而使用super必须放在子类构造方法首行。

final关键词

final是结束的意思,所有final就是说明此类不能被继承了就是没有子类了,在使用final声明变量时,要求全部字母大写!

抽象类:

抽象类的作用就是比普通类多了一些抽象方法:
abstract class 抽象类名称{
        属性;
        访问权限  返回值类型  方法名称(参数){                               //普通方法
            [return 返回值];
}
     访问权限  abstract  返回值类型  方法名称(参数);                    //抽象方法

instanceof关键词

在Java中可以使用instanceof关键词来判断一个对象到底是哪个类的实例,它返回boolean类型,如果一个程序要调用各个子类自己的方法,所以必须进行对象的向下转型,但是为了保证程序Zaibatsu运行时不出现类型转换异常,所以在发生向下转型之前要使用instanceof关键词判断是哪个子类的实例,以保证程序的运行正确。

throws与throw关键词

在定义一个方法时可以用throws关键词声明,使用throws声明的方法表示此方法不处理,而交给方法的调用进行处理

同步代码块synchronized关键字

synchronized(同步对象){        ///synchronized(this)this表示当前对象
        需要同步的代码块;
}

多线程

Java中线程的实现包括①继承Thread类②实现Runnable接口 Thread是不共享变量的,Runnable是共享变量的
一个类只要继承了Thread类,此类就称为多线程操作类,所以在Thread子类中,必须明确地覆写Thread类中run()方法

线程启动:

Thread类
class My Thread extends Thread{                                               //继承Thread类
     private String name;                                                               //在类中定义一个属性
     public MyThread(String name){                                             //通过构造方法设置属性内容
           this.name =name;                                                            //为name属性赋值
     }public void run(){                                                                         //覆写Thread类中run()方法
       for(int i=0;i<10;i++){                                                             //循环输出10次
             System.out.println(name +“运行,i=”+i);
       }
   }
};public class ThreadDemo{
       public static void main(String args[]){
              MyThread mt1 =new MyThread("线程A");                     //实例化对象
              MyThread mt2 =new MyThread("线程B");                     //实例化对象
              mt1.start();                                                                     //启动多线程
              mt2.start();                                                                     //启动多线程
         }
}
在线程启动时虽然调用的是start()方法,但实际上调用的确实run()方法的主体,那为什么在启动线程时,为什么必须通过start()方法启动,而不能直接调用run()方法呢
首先 start()方法在Thread类中定义
public synchronized void start(){
        if (threadStatus !=0)
              throw new IllegalThreadStateException();
      ...
      start();
      ...
}private native void start0();
从中可以知道在一个类中的start()方法调用时矿难会抛出“IllegalThreadStateException”的异常,一般重复调用start()方法的时候会抛出这个异常,而实际上此处真正调用的是start()方法
如果一个类通过继承Thread类来实现,那么只能调用异常start()方法,如果调用多次,则会抛出“IllegalThreadStateException”异常
实现Runnable接口
class MyThread implements Runnable{                                                 //实现Runnable接口
               属性... ;                                                                                      //类中i定义属性
               方法... ;                                                                                      //类中定义方法
               public void run(){                                                                       //覆写Runnable接口中的run()方法
          -        线程主体;
          }
}
synchronized关键词 可以同步对象 ,但是在同步中如果条件矛盾会出现死锁

字节输入流inputStream

Public abstract class InputStreamextends ObjectImplements Closeable

字符输出流Writer

Public abstract class WriterExtends ObjectImplements Appendable,Closeable,Flushable

字符输入流Reader

Public abstract class ReaderExtends ObjectImplements Readable,Closeable

字符流与字节流的区别

字节流是直接操作文件本身的,如果没有关闭字节流操作,文件会依然输出内容
而字符流在程序运行之后会发现文件没有任何的内容,这是因为字符流操作的时候使用了缓冲区,而在关闭字符流的时候会强制性地将缓冲区中的内容进行输出,但是如果程序没有关闭,缓冲区的内容是无法输出的

转换流——OutputStreamWriter类与InputStreamReader类

OutputStreamWriter类:是Writer的子类,将输出的字符流变更为字节流
InputStreamReader类:是Reader的子类,将输出的字节流变更为字符流

内存操作流

字节内存流:ByteArrayInputStream(内存字节输入流)、ByteArrayOutPutStream(内存字节输出流)
字符内存流CharArrayReader(内存字符输入流)、CharArrayWriter(内存字符输出流)

管道流

主要作用是可以进行两个线程间的通信,分为管道输出流(PipedOutputStream)、管道输入流(PipedInputStream),要进行管道输出,必须要把输出流连在输入流上,在PipedOutStream类上:
Public void connect (PipedInputStream snk)throws IOException

打印流

在整个IO包中,打印流是输出信息最方便的类,主要包含字节打印流(PrintStream)和字符打印流(PrintWriter)
打印流提供了非常方便的打印功能,可以打印任何的数据类型
打印流格式化:可以直接使用printf()方法就可以完成操作
System类对IO的支持
System类的常量

Java的图形界面:

一、AWT
1、AWT(Abstract Windowing Toolkit):抽象窗口工具包,是Java提供的用来建立和设置Java图形用户界面的基本工具。
AWT中的所有工具都保存在java.awt包中。
2、容器:所有的AWT组件都应该放在容器中,并可以设置其位置、大小等,所有的容器都是Component的子类。
3、组件:组件类都是从Component和MenuComponent拓展而来。
4、布局管理器:可以使容器中组件按照指定的位置进行摆放,另外一个的优点是:即使容器改变了大小,布局管理器也可以
准确地组件放到指定的位置。
二、Swing
1、Swing使用Java的语言实现,是以AWT平台为基础构建起来的新组件,直接使用Swing可以更加轻松的构建用户图形界面。
2、Java中Swing都是保存在java.swing包中。
3、Swing中所有的容器都是继承AWT组件包
标签组件:JLabel
JLabel组件表示的是一个标签,本身是用于显示信息的,创建完的Label对象可以通过Container类中的add方法加入到容器中

按钮组件:JButton
JButton组件是在窗体中添加一个按钮

4、布局管理器
1)FlowLayout(流式布局管理器)默认居中按照顺序依次排列
2)BorderLayout 将窗体依次分为东西南北中5个区域
3)GrideLayout 以表格形式进行管理,必须设置显示行数和列数(先满足行,再调列)
4)CardLayout 一组组件彼此重叠进行布局,每次只会显示一个界面
5)绝对布局 通过坐标指定组件放置的位置,窗体大小改变,组件位置也不会改变

JPanel

方法 类型 描述
public JPanel 构造 创建一个默认的JPanel对象,使用流布局管理
public JPanel(LayoutManager layout) 构造 创建应该指定流布局管理的JPanel对象

JSplitPane
JSplitPane主要功能是分割面吧,可以将应该窗体分割为两个子窗体,可以是水平排列也可以是垂直排列

方法及常量 类型 描述
public static final int HORIZONTAL_SPLIT 常量 表示水平分割
public static final int VERTICAL_SPLIT 常量 表示垂直分割
public JSplitPane(int newOrientation) 构造 创建对象,并指明分割方式
public JSplitPane(int newOrientation,boolean newContinuousLayout,Compoment NewLeftComponent,Compoment NewRightComponent) 构造 创建对象、指明分割方式、分割条改变是否重绘图形以及两端的显示组件
public void setDividerLocation(double proportionalLocation) 普通 设置分割条的位置,按百分比
public void setOneTouchExpandable(boolean NewValue) 普通 设置是否提供快速展开/折叠的功能
public void setDividerSize(int newSize) 普通 设置分割条大小

JTabbedPane

方法及常量 类型 描述
static final int TOP 常量 表示指向框顶部位置
static final int BOTTOM 常量 表示指向框底部位置
static final int LEFT 常量 表示指向框左部位置
static final int RIGHT 常量 表示指向框右部位置
public JTabbedPane(int tabPlacement) 构造 创建对象,并指定选项卡布局
public void addTab(String title,Component component) 普通 添加一个有标题,而没有图标的组件
public void addTab(String title,Icon icon,Component component) 普通 添加一个有标题,有图标的组件
public void addTab(String title,Icon icon,Component component,String tip) 普通 添加一个有标题,有图标,有提示信息的组件

JScrollPane

JScrollPane 面板是带滚动条的面板,它也是一种容器,但是 JScrollPane 只能放置一个组件,并不可以使用布局管理器。如果需要在 JScrollPane 面板上放置多个组件,需要将多个组件放置在 JPanel 上,然后将 JPanel 面板作为一个整体组件添加在 JScrollPane 组件上。

JDesktopPane:

方法及常量 类型 描述
public JDesktopPane() 构造 创建一个JDesktopPane()对象
public void setSelectedFrame(JInternalFrame f) 普通 设置此JDesktopPane中当前活动的JInternalFrame

JInternalFrame:

方法及常量 类型 描述
public JInternalFrame(String title) 构造 创建不可以调整大小的、不可关闭的、不可最大化的、不可图标化的、具有指定标题的JInternalFrame
public JInternalFrame(String title,boolean resizable 构造 创建不可关闭的、不可最大化的、不可图标化的、以及具有指定标题和可以调整大小的JInternalFrame
public JInternalFrame(String title,boolean resizable,boolean closable,boolean maximizable,boolean iconifiable 构造 创建可调整、可关闭、可最大化、可图标化的JInternalFrame

事件和监听器
在Swing编程中,所有事件类都是EventObject的子类

public class EventObject extends Object implements Serializable{
      public EventObject(Object source){                             //构造一个发生事件的对象
      {
      public Object getSource(){                                     //返回一个事件对象
      }
      public String toString(){                                      //得到信息
      }
}       

窗体事件
WindowListener是专门处理窗体事件的监听接口

方法及常量 类型 描述
void windowActivated(WindowEvent e) 普通 将窗口变为活动窗口时触发
void windowDeactivated(WindowEvent e) 普通 将窗口变为不活动窗口时触发
void windowClosing(WindowEvent e) 普通 将窗口政治关闭时触发
void windowClosed(WindowEvent e) 普通 将窗口关闭时触发
void windowIconified(WindowEvent e) 普通 窗口最小化时触发
void windowDeiconified(WindowEvent e) 普通 窗口最小化恢复正常时触发
void windowOpened(WindowEvent e) 普通 窗口打开时触发

ActionListener接口方法

方法及常量 类型 描述
void actionPerformed(ActionEvent e) 普通 发生操作时调用

KeyListener接口方法:

方法 类型 描述
void keyTyped(KeyEvent e) 普通 键入某个键时调用
void keyPressed(KeyEvent e) 普通 键盘按下时调用
void keyReleased(KeyEvent e) 普通 键盘松开时调用

KeyEvent事件的常用方法:

方法 类型 描述
public char getKeyChar() 普通 返回键入的字符,只针对keyTyped有意义
puclic int getKeyCode() 普通 返回键入字符的键码
public static String getKeyText(int keyCode) 普通 返回此键的信息,如"HOME"、"F1"或"A"等

MouseListener接口方法:

方法 类型 描述
void mouseClicked(MouseEvent e) 普通 鼠标单击时调用(按下并释放)
void mousePressed(MouseEvent e) 普通 鼠标按下时调用
void mouseReleased(MouseEvent e) 普通 鼠标松开时调用
void mouseEntered(MouseEvent e) 普通 鼠标进入到组件时调用
void mouseExited(MouseEvent e) 普通 鼠标离开组件时调用

MouseEvent事件的常用方法

方法及常量 类型 描述
public static final int BUTTON1 常量 表示鼠标左键的常量
public static final int BUTTON2 常量 表示鼠标滚轴的常量
public static final int BUTTON3 常量 表示鼠标右键的常量
public int getButton() 普通 以数字形式返回按下的鼠标键
public int getClickCount() 普通 返回鼠标的单机次数
public static String getMouseModifiersText(int modifiers) 普通 以字符串形式返回鼠标按下的键信息
public int getX() 普通 返回鼠标操作的X坐标
public int getY() 普通 返回鼠标操作的Y坐标

鼠标拖拽事件几起监听处理

方法 类型 描述
void mouseDragged(MouseEVent e) 普通 在组件上按下并拖动时调用
void mouseMoved(MouseEvent e) 普通 鼠标移动到组件时调用

JRadioButton

单选钮就是在给出多个显示信息中指定选择一个,在Swing中可以使用JRadioButton完成一组单选钮的操作

方法 类型 描述
public JRadioButton(Icon icon) 构造 建立一个单选钮,并指定图片
public JRadioButton(Icon icon,boolean selected) 构造 建立一个单选钮,并指定图片和其是否选定
public JRadioButton(String text) 构造 建立一个单选钮,并指定其文字,默认为不选定
public JRadioButton(String text,boolean selected) 构造 建立一个单选钮,并指定稳住和其是否选定
public JRadioButton(String text,Icon icon,boolean selected) 构造 建立一个单选钮,并指定图片、文字、和其是否选定
public void setSelected(boolean b) 普通 设置是否被选中
public boolean isSelected() 普通 返回是否被选中
public void setText(String text) 普通 设置显示文本
public void setIcon(Icon defaultIcon) 普通 设置图片

JDBC
JDBC,提供了一种与平台无关的用于执行SQL语句的标准Java API,可以方便地实现多种关系型数据库统一操作,它由用java一组语言编写的类和接口组成

1.加载驱动程序
public static final String DBDRIVER = "org.gjt.mm.mysql.Driver"; //MySQL中的数据库驱动程序路径
Class.forName(DBDRIVER); //利用class类加载驱动程序,需要处理异常
2.连接数据库
........接上
Connection conn = null;
conn = DriverManager.getConnetion(连接地址,用户名,密码);//需处理异常
3.执行数据库
需要使用Statement 接口完成





所有总结:
<a  href ="https://www.cnblogs.com/edg4396/p/11477374.html">第二周学习总结 </a>
<a  href ="https://www.cnblogs.com/edg4396/p/11516807.html">第三周课程总结&实验报告一 </a>
<a  href ="https://www.cnblogs.com/edg4396/p/11550852.html">第四周课程总结&实验报告(二)</a>
<a  href ="https://www.cnblogs.com/edg4396/p/11595175.html">第五周课程总结&试验报告(三) </a>
<a  href ="https://www.cnblogs.com/edg4396/p/11631531.html">第六周学习总结&java实验报告四 </a>
<a  href ="https://www.cnblogs.com/edg4396/p/11650530.html">第七周课程总结&实验报告(五) </a>
<a  href ="https://www.cnblogs.com/edg4396/p/11697529.html">第八周课程总结&实验报告(六) </a>
<a  href ="https://www.cnblogs.com/edg4396/p/11734008.html">第九周课程总结&实验报告(七)</a>
<a  href ="https://www.cnblogs.com/edg4396/p/11777131.html">第十周课程总结 </a>
<a  href ="https://www.cnblogs.com/edg4396/p/11822121.html">第十一周课程总结 </a>
<a  href ="https://www.cnblogs.com/edg4396/p/11870058.html">第十二周学习总结 </a>
<a  href ="https://www.cnblogs.com/edg4396/p/11919294.html">第十三周课程总结 </a>
<a  href ="https://www.cnblogs.com/edg4396/p/11957309.html">第十四周课程总结&实验报告(简单记事本的实现) </a>
posted @ 2019-12-13 19:25  有灵魂的蚂蚁  阅读(187)  评论(0编辑  收藏  举报