蒹葭微青

导航

课程总结

什么煽情的话多少是多余的,唯还是要继续努力!

这学期渐渐已经要接近尾声,对于JAVA的学习也慢慢有了进步。
从最开始的创建类,写方法,再到从以前的C语言转换为Java,最深刻的便是以前输入的时候,还一直不能明白。
关于这学期所学到的java知识点,我也做了一个归纳:
1.了解了什么是类,类与对象的关系。类就是定义一个基本的模板,代表着一个共性,是表示一个客观世界某类群体的一些基本体征的抽象;而对象表示每一个具体的东西;
2.了解了Java面向对象的第一大特性封装性,private
3.this:表示当前对象
属性访问:访问本类中的属性,如果本类没有此属性则从父类中继续查找。
方法:访问本类中的方法,如果本类没有此方法则从父类中继续查找。
调用本类构造,必须放在构造方法的首行,不能放在main方法中。

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

final关键字(表示的意思是最终的意思,也可以称为完结器)
1)使用final声明的类不能有子类
2)使用final声明的方法不能被子类所覆写
3)使用final声明的变量级成为常量,常量不可以修改

  1. 异常

  2. 异常是导致程序中断的一种指令流。
  3. 异常处理格式
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(); 中断线程
等等。。。

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

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

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可实现简单的菜单外观,使用事件监听可对应作出一些功能的实现,如代码记事本

posted on 2019-12-13 15:43  蒹葭微青  阅读(233)  评论(0编辑  收藏  举报