zoukankan      html  css  js  c++  java
  • 2019秋季java课程总结

    本学期面向对象与Java程序设计课程已经全部结束了,但Java程序设计的学习还远未到终点,大家就本学期的课程作一个全面的总结吧。

    在此感谢各位助教的全力配合和辛勤劳动,辛苦了!

    一、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类声明后的字符串内容不可改变。

    面向对象(高级篇):

    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类进行强制性处理。

    二、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类的子类,故事件处理机制完全一样。

    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知识写的很专业很全面,我只是很慢的,把自己听到的先一点点消化。希望未来可期吧,不单单是学习方面,还有其他理想。

  • 相关阅读:
    Ubuntu查看端口占用情况
    在jupyter中添加新的环境
    C++指针
    C++排序:冒泡排序,简单选择排序,直接插入排序,希尔排序,堆排序,归并排序,快速排序
    查找一:C++静态查找
    C++链式队列
    C++顺序循环队列
    C++链式栈
    C++顺序栈
    C++双向循环链表
  • 原文地址:https://www.cnblogs.com/qzy7/p/12036695.html
Copyright © 2011-2022 走看看