• 2019课程总结


    不知不觉,就到了学期的期末了,Java的学习也要告一段落了,但是Java的学习却不会结束,Java的知识还有很多需要我们去学习,因为我们现在学习的还是很浅薄简单的Java知识,这个学期我们学了挺多的东西,其实给人的感觉就是学的很杂,但是主要学习了搭建了Java的编译环境,安装eclipse软件,会用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="zuoshuai";
    
    String str=new String("zuoshuai");
    

    String里的“==”是进行地址之间的比较,而不能直接比较内容,如果要比较内容需要需要使用到方法。public boolean equals(String str);
    String一旦定义了,他的内容不可改变。
    有关String里的一些方法。

    对象的多态性
    1)向上转型:子类对象→父类对象(自动转换)
    2)向下转型:父类对象→子类对象(强制转换)

    继承:一个子类只能继承一个父类,不允许多重继承,但接口可以多重实现。
    强制转换时,先转换成父类,再强制转换。
    子类不能直接访问父类的私有操作,可以通过getter和setter间接访问父类的私有操作。
    使用final定义类时,不能被继承,即使用final声明的类不能有有子类;不能被子类覆写;用final声明的变量即常量,常量不可修改。
    Interface关键字:接口,接口里只可以有全局常量(每个字母需要大写)和抽象方法
    Implements关键字:实现接口。
    异常
    异常是导致程序中断的一种指令流。

    异常处理格式

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

    异常类的继承结构
    一般最常用的两个类:Exception、Error。
    Exception:一般表示的是程序中出现的问题,可以直接使用try...catch处理
    Error:一般指的是JVM错误,程序中无法处理

    异常类
    throws和throw

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

    public 返回值类型 方法名称(参数列表...)throws 异常类{}
    throw
    与throws关键字不同的是,可以直接使用throw关键字抛出一个异常,抛出时直接抛出异常类的实例化对象即可。

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

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

    还学习了一些实现多线程的相关方法,例如:
    Thread.getName();
    Thread.currentThread();
    isAlive(); 判断线程是否启动
    join(); 线程的强制运行
    Thread.sleep(); 线程的休眠
    interrupt(); 中断线程

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

    还有其他的更多知识我就不一一说了,反正冲冲冲就对了。

  • 相关阅读:
    【ybt金牌导航4-7-3】【luogu P3437】三维俄罗斯方块 / TET-Tetris 3D
    【ybt金牌导航4-6-6】【luogu P2617】【ybt金牌导航4-7-4】动态排名 / Dynamic Rankings
    【ybt金牌导航4-6-4】【luogu P3402】可持久化并查集
    【luogu P5055】【模板】可持久化文艺平衡树
    【ybt金牌导航4-6-2】【luogu P3835】可持久化平衡树
    【luogu P4278】【ybt金牌导航4-5-2】带插入区间K小值(树套树做法)
    【luogu P3369】普通平衡树(fhq Treap 做法)
    【ybt金牌导航4-4-2】【luogu P2042】维护数列(fhq Treap 做法)
    【luogu P3369】普通平衡树(Treap 做法)
    匿名函数
  • 原文地址:https://www.cnblogs.com/zuoshuai/p/12028698.html
Copyright © 2020-2023  润新知