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

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

    这学期渐渐已经要接近尾声,对于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可实现简单的菜单外观,使用事件监听可对应作出一些功能的实现,如代码记事本

  • 相关阅读:
    基于策略梯度的强化学习论文调研
    Soft Actor-Critic: Off-Policy Maximum Entropy Deep Reinforcement Learning with a Stochastic Actor
    固定随机种子比较强化学习算法
    Action and learning shape the activity of neuronal circuits in the visual cortex
    大脑中的记忆机制
    A Simple Neural Attentive Meta-Learner
    【Error】Creating Server TCP listening socket *:6379: bind: No such file or directory
    Redis安装配置
    MySQL中文入库问题
    Nginx启动/重启失败
  • 原文地址:https://www.cnblogs.com/Markming/p/12035487.html
Copyright © 2011-2022 走看看