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

原文地址:https://www.cnblogs.com/qzy7/p/12036695.html

时间: 2024-11-15 09:45:30

2019秋季java课程总结的相关文章

2019年java后端年终总结(六年开发经验),送给正在努力的你

长大之后,时间总是过得飞快,转眼之间,今年已经只剩下1天了.小时候总感觉遥不可及.只在科幻小说里面出现的2020年,已经开始进入蓄力期了. 这篇文章主要和大家聊一聊分析2019年java技术的更新给大家明年进阶方向的一些建议.(工作1到五年) 2019年主流技术:(含思维导图) 一.分布式架构: 架构分布式的应用和工具,成熟目前的技术包括 J2EE,CORBA 和 DCOM,这些技术牵扯的内容非常广,相关的书籍也非常多. 分布式系统是一个古老而宽泛的话题,而近几年因为“大数据”概念的兴起,又焕发

老白的JAVA课程14 GUI 窗口的设置

项目驱动 需求分析-系统设计-编码-测试-维护期 GUI Swing程序的建立步骤 1.建立容器-可以容纳其他图形对象的类,容器中还可以添加容器 2.建立组件-组件就是一套图形对象 3.将组件放到容器当中-将创建好的对象添加到容器中,才能在窗口中显示 4.设置布局 JFrame:带有标题和边框的顶级窗口 JPanel:就是一个矩形的区域,其中可以包含图形组件,也可以包含其他JPanel JApplet:在浏览器中运行的容器 JScrollpane:一种可以实现水平或垂直滚动条的容器 JDiolo

老白的JAVA课程16 卡片布局 javaBean

基于组件的开发 javaBean 组成部件 规范   1: 必须要有一个公共的构造方法,javaBean这个类也必须是公共的   2:javaBean中的属性都是私有的,每一个属性都必须提供符合命名规范的set和get方法   3:应该是可序列化的,但是并不是必须的 类型:  1:简单属性javabean  set和get足够简单  2:绑定属性JavaBean  属性复杂,需要绑定其他属性  3:约束属性JavaBean  set和get方法有约束 cardlayout.show(父容器,按钮

老白的JAVA课程13 接口

之前我们讲到了java4大特征的最后一个抽象的特征,其实在抽象这个特征里面,我们还有一个特征-接口,今天我们就来学一学接口.  用电脑,手机等电子产品来比喻接口,可以更好的理解,比如用符合接口的插头就可以了.  接口具有很好的扩展性,方便.  接口的由来   例子:奥拓奥迪都是汽车,汽车的维护都是可以用调节引擎和更换汽油的方法,那么奥拓和奥迪也都可以:但是有了更多的维护对象以后,比如说大货车,卡车等等,其他的对象不一定需要每一步维护,或者都不需要维护:又比如不同枪支有不同特性的例子.  因此,我

老白的JAVA课程17 集合

集合 数组的缺点:长度限制 添加的类型有限制 集合自动变长 随意添加 但是数组的效率高,在游戏里用的比较多 SuperArry是一套的集合框架 两大类 接口 1 Collection  单一值的元素  1.1 list 有序的 放进去的顺序和里面的顺序是一样的 (不是传统的里面有没有顺序的意思)    可重复的    实现类 ArryList 1.2 set  无序的 里面和放进去的不是一样的    只能是不可重复的 2 Map  键值对 键 值  map的键是不能重复的 老白的JAVA课程17

java(课程设计之记事本界面部分代码公布)

代码:涉及记事本的一些界面......!! 1 /* 2 *java课程设计之记事本(coder @Gxjun) 3 * 编写一个记事本程序 4 * 要求: 5 * 用图形用户界面实现. 6 * 能实现编辑.保存.另存为.查找替换等功能. 7 * 提示:使用文件输入输出流. 8 */ 9 package project; 10 11 import javax.swing.*; 12 import java.awt.*; 13 import java.awt.event.*; //引用类设置触发事

Java课程设计—学生成绩分析系统

Java课程设计 - 我的选题是学生成绩分析系统. 下面是课程的需求图: 完成的这个小系统其实逻辑代码是非常简单的,唯一感觉有难点的地方在于涉及到了知识点比较多.当时只是匆匆地大概学了Java的一些基本知识,书上的例题和代码也没怎么敲过, 几乎都是在边做的过程中边学具体需要用到的东西: 其中感觉最麻烦的地方就是JTable.文件读取IO流以及绘图和给各个组件布局的时候. 另外还花了些功夫在UI上面:我这次是用到了substance.jar的swing美化包,想了解的可以百度下,网上有很多教程.

JAVA课程笔记_1

一 课程内容 set path查看路径信息:当编译一个程序或命令时,先从当前目录查找,如果没有,按path中的路径按顺序查找,先找到后就不查找后面的路径了. 可以将目录加入环境变量,set path="复制的路径" 可以在.java程序中编写多个类,当编译时,每个类生成各自的字节码文件. 由于多个类的字节码文件不利于管理,使用bin目录下的jar命令可以将多个字节码文件打包成jar包发布给其他程序员使用. 使用方法:先在命令提示符下输入jar,会出现使用方法和实例.Jar打包两个cla

Java-第三章-刘珊珊同学参加了Java课程的学习,她父亲和母亲承诺

import java.util.*; public class lianxi72_5 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner inport = new Scanner(System.in) ; System.out.println("请输入成绩"); int math =inport.nextInt(); if(math>=100) { Syste