眨眼间,Java这门课程就快要到了尾声,这门课程主要学习到

搭建了Java的编译环境,安装eclipse软件,会用Java写一些简单的程序。

主要学习到的知识点有以下几点

1:通过写pta上的作业知道怎么写Java的输入,他是使用Scanner来处理输入的

2:了解了什么是类,类与对象的关系。类就是定义一个基本的模板,代表着一个共性,是表示一个客观世界某类群体的一些基本体征的抽象;而对象表示每一个具体的东西

3:了解了Java面向对象的第一大特性封装性

还学习了this类、static类

this

属性访问:访问本类中的属性,如果本类没有此属性则从父类中继续查找。

方法:访问本类中的方法,如果本类没有此方法则从父类中继续查找。

调用构造:调用本类构造,必须放在构造方法的首行。

特殊:表示当前对象。

static

如果在程序中使用static声明属性的话,则此属性属于全局属性;static声明的属性是所有对象共享的,在访问static属性时最好可以由类名称直接调用。

static既可以在声明属性的时候使用,也可以用其来声明方法,用它声明的方法有时也被称为类方法,可以由类名称直接调用。

非static声明的方法可以去调用static声明的属性或方法的。但是static声明的方法是不能调用非static类型声明的属性或方法的

对于main()方法也进行了一些学习,知道了main()方法每个参数的含义。学会另一种循环方法去遍历数组,如下:

for(String e:args){
System.out.println(e);
}

学习了两种为String赋值的方法;

1)

String str="Alice";
String str=new String("Alice");

String里的“==”是进行地址之间的比较,而不能直接比较内容,如果要比较内容需要需要使用到方法。public boolean equals(String str);

String一旦定义了,他的内容不可改变。

有关String里的一些方法。

还有学习了对象数组

类 对象数组名称[]=new 类[数组长度]
数据类型 数组名称[]=null;
数组名称=new 数据类型[长度];

包的基本概念,用法

包的定义:package 包名称.子包名称;

编译的时候要如下

javac -d . 名称.java

类的导入主要用 import.

import 包名称.子包名称.类名称;或
import 包名称.子包名称.*; //自动加载所需类

还了解Java的常用系统包。

学习了Java的另一特性继承性

1)继承格式

class 父类{}
class 子类 extends{}

2)可以通过子类扩展父类

3)只允许多层继承,不允许多重继承。

4)子类不能直接访问父类中的私有操作,但可以通过get方法访问。

5)子类构造方法中的super()。一般写类的时候要构造一个空方法,因为一般子类对象实例化之前会先默认调用父类中的构造方法,如果父类中没有构造方法,就会默认调用一个空的构造方法。 super()就是调用父类构造方法的语句。

方法的覆写和重载

覆写:就是指子类中定义了与父类中同名的方法,但是要考虑权限,被子类覆写的方法不能拥有比父类方法更严格的访问权限,例如:父类(private)<=子类(private||public)。

重载:同一个类中相同名称不同参数的方法。

final关键字(表示的意思是最终的意思,也可以称为完结器)

1)使用final声明的类不能有子类

2)使用final声明的方法不能被子类所覆写

3)使用final声明的变量级成为常量,常量不可以修改

抽象类

1)包含一个抽象方法的类必须是抽象类。抽象方法如下:

访问权限 abstract 返回值类型 方法名称(参数);

2)抽象类和抽象方法都要使用abstract关键字声明

3)抽象方法只需声明而不需要实现

4)抽象类必须被子类继承,子类(如果不是抽象类)必须填写抽象类中的全部抽象方法

对象的多态性

1)向上转型:子类对象→父类对象(自动转换)

2)向下转型:父类对象→子类对象(强制转换)

继承:一个子类只能继承一个父类,不允许多重继承,但接口可以多重实现。

强制转换时,先转换成父类,再强制转换。

子类不能直接访问父类的私有操作,可以通过getter和setter间接访问父类的私有操作。

使用final定义类时,不能被继承,即使用final声明的类不能有有子类;不能被子类覆写;用final声明的变量即常量,常量不可修改。

Interface关键字:接口,接口里只可以有全局常量(每个字母需要大写)和抽象方法

Implements关键字:实现接口。

学了抽象类和接口

下表是抽象类与接口的关系

区别点 抽象类 接口
定义 包含一个抽象方法的类 抽象方法和全局常量的集合
组成 构造方法、抽象方法、普通方法、常量、变量 常量、抽象方法
使用 子类继承抽象类 子类实现接口
关系 抽象类可以实现多个接口 接口不能继承抽象类,但允许继承多个接口
常见 设计模式 模板设计
对象 都通过对象的多态性产生实例化对象 都通过对象的多态性产生实例化对象
局限 抽象类有单继承的局限 接口没有单继承的局限
实际 作为一个模板 是作为一个标准或是表示一种能力
选择 如果抽象类和接口都可以使用的话,优先使用接口,因为避免单继承的局限 如果抽象类和接口都可以使用的话,优先使用接口,因为避免单继承的局限
特殊 一个抽象类中可以包含多个接口,一个接口中可以包含多个抽象类 一个抽象类中可以包含多个接口,一个接口中可以包含多个抽象类

异常

异常是导致程序中断的一种指令流。

异常处理格式

try{
//有可能出现异常的语句
}catch(异常类 异常对象){
//编写异常处理的语句
}[catch(异常类 异常对象){
//编写异常处理的语句
}catch(异常类 异常对象){
//编写异常处理的语句
}...]
[finally{
一定会运行处理到的程序代码;
}]

异常类的继承结构

一般最常用的两个类:ExceptionError

Exception:一般表示的是程序中出现的问题,可以直接使用try...catch处理

Error:一般指的是JVM错误,程序中无法处理

异常类

throwsthrow

throws

使用throws声明的方法表示此方法不处理异常,而交给方法的调用处进行处理,格式如下:

public 返回值类型 方法名称(参数列表...)throws 异常类{}

throw

与throws关键字不同的是,可以直接使用throw关键字抛出一个异常,抛出时直接抛出异常类的实例化对象即可。

try{
throw new Exception("自己抛出的异常!");
}catch(Exception e){
System.out.println(e);
}

多线程

多线程的实现有两种方法继承Thread类使用Runnable接口

Thread类不共享,Runnable接口共享。

Thread类

格式:

class 类名称 extends Thread{
属性...;
方法...;
public void run(){
线程主体;
}
}

想要实现多线程不是调用run()方法,而是start()方法。

多线程

Java中多线程的实现主要是通过继承Thread类或实现Runnable接口。其中Runnable接口可以资源共享。但不管使用哪种方法都要通过覆写run();在实例化的时候通过调用start()方法来启动多线程。

还学习了一些实现多线程的相关方法,例如:

Thread.getName();

Thread.currentThread();

isAlive(); 判断线程是否启动

join(); 线程的强制运行

Thread.sleep(); 线程的休眠

interrupt(); 中断线程

等等。。。

还有哪个线程的优先级高,哪个线程有可能优先被执行。

同步

同步代码块

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

同步方法

synchronized  方法返回值  方法名称(参数列表){
方法体
}

使用File类进行文件的操作

以下是针对文件本身操作的

createNewFile(); 创建新文件

delete(); 删除一个指定文件

mkdir(); 创建一个文件夹

public String[]list(); 列出全部名称,返回一个字符串数组

public File[]listFiles(); 列完整的路径,返回一个File对象数组

isDirectory(); 判断一个给定的路径是否是目录

RandomAccessFile类可以对文件内容进行操作

字节流和字符流的基本操作

1)字节输出流:outputStream

常用方法:close()关闭输出流

flush()刷新缓冲区

write()写入数据流(但只能以字节写入)

以上方法如果重新执行会覆盖文件中的已有内容,想要追加新内容通过FileOutputStream类的另一种构造方法进行实例化,如下:

File f=new File(路径);
OutputStream os=new FileOutpuStream(f,true);

2)字节输入流:InputStream

常用方法:available() 取得输入文件的大小

close()关闭输入流

read()读取内容

3)字符输出流:Writer

常用方法:close()关闭输出流

write()输出字符串或字符数组

flush()强制清空缓存

追加文件使用FileWriter类,同字节输出流

4)字符输入流:Reader

常用方法:close()关闭

read()读取字符到数组

字节流和字符流区别在于字节流直接对文件进行操作,而字符流是将数据先放在缓存之后,在写入文件的

转换流OutputStreamWriter类与IntputStreamReader类

OutputStreamWriter类是Writer的子类将输出的字符流变为字节流,即将一个字符流的输出对象变为字节流的输出对象。如下

Writer w=new OutputStreamWriter(new FileOutputStream(f));

IntputStreamReader类是Reader的子类将输入的字节流变为字符流,即将一个字节流的输入对象变为字符流的输入对象

Reader r=new InputStreamReader(new FileInputStream(f));

内存操作流程

字节内存流:ByteArrayInputStream(内存字节输入流);ByteArrayOutputStream(内存字节输出流)

字符内存流:CharArrayReader(内存字节输入流);CharArrayWriter(内存字节输出流)

首先是要声明内存的输入输出流,再去进行操作。

管道流

主要作用是可以进行两个线程间的通信

管道输出流:PipedOutputSream;管道输入流:PipedInputStream

用connect()方法来连接输出和输入流

打印流PrintStream

打印流进行格式化和C语言差不多

System类

1)System.out 向显示器上输出,是PrintStream的对象,PrintStream是OutputStream的字类,所以可以使用OutputStream向屏幕输出

2)Syatem.err 错误信息输出

3)System.in 键盘的输入流,是InputStream的对象

图形界面

主要是基于AWT和Swing包来实现的

AWT(抽象窗口工具包)

主要包括以下三种工具类

1)组件:Component

2)容器:Container

3)布局管理器:LayoutManager

Swing (保存在Javax.swing中)

基本容器JFrame

常用操作方法:

创建一个窗体:JFrame f = new JFrame;

设置窗体大小:f.setSize(int width , int height);

设置窗体背景颜色:f.setBackground(Color.颜色);

设置窗体显示位置:f.setLocation(int x, int y);

显示窗体:f.setVisible(true);

注意:可以用Dimension类封装组件的宽高(用于批量修改时比较方便)

也可以用Point类来封装显示位置(除此之外还可以移动组件位置通过坐标,使用move(int x, int y)方法,使用translate(int dx, int dy)方法可以平移组件);

标签组件JLabel

可以通过创建完的JLabel对象通过Container类中的add()方法加入到容器中 如下:

Container cont = frame.getContentPane();
cont.add(label);

更改JLabel的文字样式,使用到Font类

public void setFont(Font f);

在JLabel中设置图片,使用Imagelcon类

Icon icon = new Imagelcon(路径);
JLabel label = new JLabel(icon,JLabel.CENTER) //实例化对象,使用居中对齐
f.add(label);

按钮组件JButton

建立一个按钮即new JButton()即可

在按钮上显示一个图片:

Icon icon = new Imagelcon(路径);
JButton button = new JButton(icon) //实例化
f.add(buttton);

布局管理器

1)FlowLayout(流式布局管理器)默认居中按照顺序依次排列

2)BorderLayout 将窗体依次分为东西南北中5个区域

3)GrideLayout 以表格形式进行管理,必须设置显示行数和列数(先满足行,再调列)

4)CardLayout 一组组件彼此重叠进行布局,每次只会显示一个界面

5)绝对布局 通过坐标指定组件放置的位置,窗体大小改变,组件位置也不会改变

public void setBounds(int x,int y,int width,int height);

JPane容器使用流失布局管理

frame pack()方法可以根据组件自动调整窗体大小

主要学习监听器及各种事件处理

1)键盘监听

使用KeyListener接口

2)鼠标监听

使用MouseListener接口,其中MouseEvent中有getButton(),getX(),getY()等方法

3)单选钮:JRadioButton及事件处理

方法:

setSelected();是否被选中

setText(String);设置显示文本

setIcon(Icon);设置图片

其事件处理使用ItenListener

4)复选框:JCheckBoxji事件处理

方法:

JCheckBox();创建文本对象

其事件处理也是用ItemListener接口

5)列表框:JList及事件处理

方法:

int[] getSeletrdIndices();返回所选择的所有数组

Jlist(ListModel/Object[] listData/Vector<?>listData);构造JList

其事件处理使用ListSelectionListener接口

菜单组件

JMenu、JMenuBar、JMenuItem可实现简单的菜单外观,使用事件监听可对应作出一些功能的实现,如代码记事本

1.对于jdbc的一个了解

主要常用操作类与接口:

java.sql.DriverManager 用于管理jdbc驱动程序

Java.sql.Connection 用于建立与特定数据库的连接

Java.sql.Statement 一个Statement的对象用于执行静态sql语句,并获得语句执行后产生的后果

Java.sql.PreparedStatement 创建一个可以编译的sql语句对象,该对象可以多次被运行,以提高执行效率,是Statement的子接口

Java.sql.ResultSet 用于创建表示sql语句检索结果的结果集,用户通过结果集完成对数据库的访问

2.MySQL的安装与配置

3.MySQL的常用命令

1)mysql -u用户名 -p密码 连接mysql数据库

2)创建数据库:CREATE DATABASE 数据库名称;

3)删除数据库:DROP DATABASE 数据库名称;

4)USE 数据库名称; 使用数据库

5)创建数据库表

CREATE TABLE 表名称(
字段名称1 字段类型 [DEFAULT 默认值][约束],
字段名称2 字段类型 [DEFAULT 默认值][约束],
...,
字段名称n 字段类型 [DEFAULT 默认值][约束]
);

6)删除数据库表 DROP TABLE 表名称;

7)查看表结构 DESE 表名称;

8)查看数据库信息

查看全部数据库:SHOW DATABASES;

查看一个数据库的全部表:SHOW TABLES;

4.配置mysql数据库的驱动程序

package textshujuku;

public class Text {
public static final String DBDRIVER="ora.gjt.mm.mysql.Driver";
public static void main(String[] args) {
try {
Class.forName(DBDRIVER);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
} }

5.连接及关闭数据库

使用DriverManager类连接数据库和Connection接口

连接地址

jdbc:mysql://IP地址:端口号/数据库名称

总之这学期对于Java还是有了一定的了解,虽然Java这门课程结束了,但并不代表学习Java的道路结束了,这只是刚刚开始,我还只是对他有一个粗浅的理解,而对于他的学习还有很多,再接再厉

2019秋Java学期课程总结的更多相关文章

  1. 2019秋Java课程总结&实验总结一

    1.打印输出所有的"水仙花数",所谓"水仙花数"是指一个3位数,其中各位数字立方和等于该数本身.例如,153是一个"水仙花数". 实验源码: ...

  2. 2019秋JAVA第三周课程总结及实验报告(二)

    个人博客 一.基础字符串操作 题目:已知字符串:"this is a test of java".按要求执行以下操作:(要求源代码.结果截图.) 统计该字符串中字母s出现的次数. ...

  3. 20145225《Java程序设计》 2015—2016年学期课程总结

    20145225<Java程序设计> 2015—2016年学期课程总结 读书笔记链接汇总 1.2016年2月25日 <Java程序设计>课程准备之问卷调查 摘要: 一.你对自己 ...

  4. 2019秋招Java面经(未完待续)

    2019秋招Java面经(凭记忆回忆, 可能不准) 随着我们从大三升到大四...秋招也开始了. 秋招进行的还比较顺利, 刚开始没几天, 我的秋招就结束了. 到现在我玩了差不多十多天了, 总想着总结一下 ...

  5. 2018年秋季学期面向对象程序设计(JAVA)课程总结

    2018年秋季学期面向对象程序设计(JAVA)课程总结 时值2018年年末,按惯例对本学期教学工作小结如下: 1. 教学资源与教学辅助平台 教材:凯 S.霍斯特曼 (Cay S. Horstmann) ...

  6. 2019面向对象程序设计(java)课程学习进度条

    2019面向对象程序设计(java)课程学习进度条 周次 (阅读/编写)代码行数 发布博客量/评论他人博客数量 课余学习时间(小时) 学习收获最大的程序阅读或编程任务 1 20/10 1/0 5 九九 ...

  7. 201871010106-丁宣元 《2019面向对象程序设计(java)课程学习进度条》

    <2019面向对象程序设计(java)课程学习进度条> 周次 (阅读/编写)代码行数 发布博客量/评论他人博客数量 课余学习时间(小时) 学习收获最大的程序阅读或编程任务 1 25/10 ...

  8. 201871010135 张玉晶 《2019面向对象程序设计(java)课程学习进度条》

    <2019面向对象程序设计(java)课程学习进度条> 周次 (阅读/编写)代码行数 发布博客量/评论他人博客数量 课余学习时间(小时) 学习收获最大的程序 阅读或编译让我 第一周 25/ ...

  9. 2019年春季学期《C语言程序设计II》课程总结

    2019年春季学期<C语言程序设计II>课程总结 1.课程情况 教学内容 课堂小结 作业安排 优秀作业 备注 1.开学谈心 2.测验数据类型.运算符与表达式的自学情况,并讲解测验题目3.第 ...

随机推荐

  1. SQL学习(三)之子句和函数

    函数 COUNT()/计数.MIN()/最小值.MAX()/最大值.AVG()/平均值.SUM()/和 子句 子句是语句的一部分包括WHERE.GROUP.ORDER.LIMIT WHERE:条件 G ...

  2. 02Spring基于xml的IOC配置--实例化Bean的三种方式

    maven依赖 <dependencies> <!--IOC相关依赖--> <dependency> <groupId>org.springframew ...

  3. 如何给Word参考文献加方括号

    脚注是在页面下端添加的注释,如添加在一篇论文首页下端的作者情况简介:尾注是在文档尾部(或节的尾部)添加的注释,如添加在一篇论文末尾的参考文献目录. 若用手工添加脚注和尾注,则既麻烦又易出错.当用Wor ...

  4. calc,support,media各自的含义及用法

    @support:用于检测浏览器是否支持CSS某个属性,即条件判断,如果支持某个属性,可以写一套样式,如果不支持某属性,提供另一套样式作为替补. calc():用于计算动态函数值,支持“+”,“-”, ...

  5. react + antd Form表单校验

    非空限制 {getFieldDecorator('name', { rules: [{ required: true, message: '名称不能为空', }],})( <Input plac ...

  6. Navicat安装、使用教程

    下载地址:Navicat的安装包及破解文件 一. Navicat安装 Navicat既可安装在服务器端,也可以安装在客户端.安装在服务器端,导入数据时可使用默认用户,也可以使用远程用户:安装在客户端, ...

  7. dedecms body 输出自动替换结果。

    {dede:field.body function='str_replace("张三","李四",@me)'/} body内容中的张三全部换成了李四

  8. CDH5.16.1升级kafka0.10到1.0.1

        激活1.0.1的包    

  9. c++ easyX的学习

    画象棋盘来浅显学习了解easyx 了解象棋盘的构成: 如图就为一个基本的象棋棋盘我们下面就用esayx来画出这个棋盘,我的感觉这个棋盘大概分为两个部分:第一部分就是棋盘的大致布局,第二个就是棋盘的细节 ...

  10. Dubbo 03 Restful风格的API

    目录 Dubbo03 restful风格的API 根路径 协议 版本 用HTTP协议里的动词来实现资源的增删改查 用例 swagger(丝袜哥) OpenAPI 资源 编写API文档 整合Spring ...