• 2019JAVA课程总结


    课程总结

    1、子类不能直接访问父类的私有属性,可通过get(),set()来间接访问。
    2、super(),this()不可同时使用,因为其都必须放在首行,所以不可同时使用。
    3、若删去super(),则无法使用父类的无参构造。
    4、this(),super()不可出现在main方法中。
    5、子类可扩大权限,不可缩小。
    6、类属于引用数据类型,引用数据类型就是指一段堆内存空间可以同时被多个栈内存所指向。
    7、接口去继承接口,可多重继承。
    8、一个栈内存只能够保存一个堆内存空间的地址。,若想再指向其他的堆内存空间,则必须先断开已有的指向才能分配新的指向。
    9、、只要是被封装的属性,则必须通过setter()和getter()方法设置和取得。
    10、setter()方法进行内容得赋值。
    11、类中全部属性都必须封装。
    12、用private声明得属性和方法只能在其类的内部被调用,而不能在类的外部被调用。
    13、若要强调是本类中的方法,也可以在调用时按“this.方法名称()”的形式编写。
    14、main方法不写在抽象类(规范性)。
    15、如果抽象类和接口都可以使用时,优先室使用接口,因为可以避免单继承的局限。
    16、Object类中toString()方法可直接输出。
    17、Object类中的equals()方法默认是比较地址。
    18、定义在"{ }"中的变量是局部变量。
    19、Error与Exception是同级。
    20、匿名对象可以在使用后便释放。
    21、Runnable接口可以共享资源,Thread类不共享资源。
    22、要想实现多线程,必须在主线程中创建心得线程对象。(在main线程下,构建其他线程)
    23、在Thread类中必然存在一个static类型的属性,用于线程的自动命名。
    24、File类在Java。io包下。
    25、创建--就绪状态--(CPU进行)调度--运行状态_导致阻塞的事件--阻塞状态—阻塞解除--就绪状态。

    数据流

    1、数据流向分为:输入流和输出流。
    输入流 :把数据从 其他设备 上读取到 内存 中的流。
    输出流 :把数据从 内存 中写出到 其他设备 上的流。
    2、数据的类型分为:字节流和字符流。
    字节流 :以字节为单位,读写数据的流。 字符流 :以字符为单位,读写数据的流。
    3、java.io.OutputStream 抽象类是表示字节输出流的所有类的超类,将指定的字节信息写出到目的地。它定义了字 节输出流的基本共性功能方法。
    public void close() :关闭此输出流并释放与此流相关联的任何系统资源。
    public void flush() :刷新此输出流并强制任何缓冲的输出字节被写出。
    public void write(byte[] b) :将 b.length字节从指定的字节数组写入此输出流。
    public void write(byte[] b, int off, int len) :从指定的字节数组写入 len字节,从偏移量 off开始输 出到此输出流。
    public abstract void write(int b) :将指定的字节输出流。
    注意:close方法,当完成流的操作时,必须调用此方法,释放系统资源。
    4、public FileOutputStream(File file) :创建文件输出流以写入由指定的 File对象表示的文件。
    public FileOutputStream(String name) : 创建文件输出流以指定的名称写入文件。
    当你创建一个流对象时,必须传入一个文件路径。该路径下,如果没有这个文件,会创建该文件。如果有这个文 件,会清空这个文件的数据。
    代码如下:

    public class FileOutputStreamConstructor throws IOException {   
         public static void main(String[] args) {      
                // 使用File对象创建流对象           
               File file = new File("a.txt");     
               FileOutputStream fos = new FileOutputStream(file);     
             
               // 使用文件名称创建流对象       
               FileOutputStream fos = new FileOutputStream("b.txt");    
        } 
    }
    

    5、字节输入流【intputStream】
    java.io.InputStream 抽象类是表示字节输入流的所有类的超类,可以读取字节信息到内存中。它定义了字节输入 流的基本共性功能方法。
    public void close() :关闭此输入流并释放与此流相关联的任何系统资源。 public abstract int read() : 从输入流读取数据的下一个字节。 public int read(byte[] b) : 从输入流中读取一些字节数,并将它们存储到字节数组 b中 。
    注意:close方法,当完成流的操作时,必须调用此方法,释放系统资源。
    6、 FileInputStream类
    java.io.FileInputStream 类是文件输入流,从文件中读取字节。 构造方法 :FileInputStream(File file) : 通过打开与实际文件的连接来创建一个 FileInputStream ,该文件由文件系 统中的 File对象 file命名。 FileInputStream(String name) : 通过打开与实际文件的连接来创建一个 FileInputStream ,该文件由文件 系统中的路径名 name命名。 当你创建一个流对象时,必须传入一个文件路径。该路径下,如果没有该文件,会抛出 FileNotFoundException 。
    7、当使用字节流读取文本文件时,可能会有一个小问题。就是遇到中文字符时,可能不会显示完整的字符,那是因为 一个中文字符可能占用多个字节存储。所以Java提供一些字符流类,以字符为单位读写数据,专门用于处理文本文 件。
    8、字符输入流【Reader】
    (1)、java.io.Reader 抽象类是表示用于读取字符流的所有类的超类,可以读取字符信息到内存中。它定义了字符输入 流的基本共性功能方法。
    (2)、public void close() :关闭此流并释放与此流相关联的任何系统资源。
    (3)、public int read() : 从输入流读取一个字符。
    (4)、 public int read(char[] cbuf) : 从输入流中读取一些字符,并将它们存储到字符数组 cbuf中
    9、FileReader类
    java.io.FileReader 类是读取字符文件的便利类。构造时使用系统默认的字符编码和默认字节缓冲区。
    10、字符输出流
    java.io.Writer 抽象类是表示用于写出字符流的所有类的超类,将指定的字符信息写出到目的地。它定义了字节 输出流的基本共性功能方法。
    void write(int c) 写入单个字符。
    void write(char[] cbuf) 写入字符数组。
    abstract void write(char[] cbuf, int off, int len) 写入字符数组的某一部分,off数组的开始索引,len 写的字符个数。
    void write(String str) 写入字符串。
    void write(String str, int off, int len) 写入字符串的某一部分,off字符串的开始索引,len写的字符个 数。
    void flush() 刷新该流的缓冲。
    void close() 关闭此流,但要先刷新它。
    11、FileWriter类
    java.io.FileWriter 类是写出字符到文件的便利类。构造时使用系统默认的字符编码和默认字节缓冲区。 构造方法
    FileWriter(File file) : 创建一个新的 FileWriter,给定要读取的File对象。
    FileWriter(String fileName) : 创建一个新的 FileWriter,给定要读取的文件的名称。
    当你创建一个流对象时,必须传入一个文件路径,类似于FileOutputStream

    图形界面

    1、图形界面编程有以下几个特征:
    (1)图形界面对象及框架 (对象之间的包含关系)
    (2)图像界面的布局(对象之间的位置关系)
    (3)图像对象上的事件响应(对象上的动作)

    AWT(轻量级组件)

    1、抽象窗口工具包,所有工具类都保存在java.awt中。工具主要分为以下三类:
    (1)组件:Component.
    (2)容器:Container.
    (3)布局管理器:LayoutManager.

    Swing简介(重量级组件)

    1、保存在javax.swing包中,此包是一个扩展包,所有组件都是从JComponent扩展出来的,
    (1)public JFrame(String title)throws HeadlessException 创建一个窗体对象,并指定标题
    (2)public void setSize(int width,int height) 设置窗体大下
    (3)public void setSiBackground(Color c) 设置窗体的背景颜色
    (4)public void setLocation(int x,int y) 设置组件的显示位置
    (5)public void setVisible(Boolean b) 显示或隐藏组件

    标签组件JLabel

    1、JLabel组件表示的是一个标签,本身是显示信息,一般情况下不能直接更改其显示内容的。
    2、(1)public static final int LEFT 标签文本左对齐
    (2)public static final int CENTER 标签文本居中对齐
    (3)public static final int RIGHT 标签文本右对齐
    (4)public JLabel(String text)throws HeadlessException 创建一个标签并指定文本内容,默认左对齐
    (5)public JLabel(String text,Icon icon,int horizontalAlignment) 创建具有文本、图像和水平对齐方式的JLabel对象

    布局管理器

    1、FlowLayout属于流式布局管理器,使用此种布局方式会使所有的组件像流水一样依此进行排列
    (1)public static final int CENTER 居中对齐
    (2)public static final int LEADING 与容器的开始端对齐方式一致
    (3)public static final int LEFT 左对齐
    (4)public static final int RIGHT 右对齐
    (5)public static final int TRAILING 与容器的结束端对齐方式一致
    2、BordxerLayout将一个窗体的版面划分为东、南、西、北、中5个区域
    (1)public static final String EAST 将组件设置在东区域
    (2)public static final String WEST 将组件设置在西区域
    (3)public static final String SOUTH 将组件设置在南区域
    (4)public static final String NORTH 将组件设置在北区域
    (5)public static final String CENTER 将组件设置在中区域
    (6)public BorderLayout() 构造没有间距的布局器
    (7)public BorderLayout(int hgap,int vgap) 构造有水平和垂直间距的布局器
    3、GridLayout布局器是以表格的形式进行管理的,在使用此布局管理器时必须设置显示的行数和列数
    (1)行优先,在表格首先保证行。
    4、CardLayout是将一组组件彼此重叠的进行布局,就像一张张卡片一样
    (1)public void next(Container parent) 翻转到下一张卡片
    (2)public void previous(Container parent) 翻转到上一张卡片
    (3)public void first(Container parent) 翻转到第一张卡片
    (4)public void last(Container parent) 翻转到最后一张卡片、
    5、绝对定位
    如果不想在窗体中指定布局管理器,也可以通过设置绝对坐标的方式完成布局。在Component中提供了setBound()方法,可以定位一个组件的坐标,
    定义如下:
    public void setBounds(int x,int y,int width,int height)

    其他容器

    1、在Swing开发中,窗体部分除了可以使用JFrame表示外,还有其他几种常见的窗体:JPanel、JSplitPane、JTabbedPane、JScrollPane、JDesktopPane、JInternalFrame等。

    Jpanel容器

    1、在Jpanel中可以加入任意的组件,然后直接将Jpanel容器加到JFrame容器中即可。

    JSplitPane

    1、主要功能是分割面板,可以将一个窗体分为两个子窗体,可以是水平排列也可以是垂直排列。

    JTabbedPane

    1、在一个面板上设置多个选项卡供用户选择。若需要查看哪方面的信息,则直接选择选项卡即可浏览。

    JScrollPane

    1、主要功能是为显示的内容加入水平滚动条。JScrollPane主要由JViewport和JScrollBar两部分组成,前者主要是显示一个矩形区域让用户浏览,而后者主要是形成水平或垂直的滚动条

    JDesktopPane与JInternalFrame

    1、在Swing中也可以完成内部窗体的显示,即在一个窗体可以出现多个子窗体,每一个窗体都无法超出父窗体的区域。JDesktopPane规定了一个父窗体的基本形式,而JInternalFrame规定了各个子窗体,
    JInternalFrame需要加入到JDesktopPane中。

    事件处理

    要想让每一个组件都发挥自己的作用,及必须对所有的组件进行事件处理

    事件和监听器

    1、事件是表示一个对象发生状态变化。而如果要想处理此事件,则需要事件的监听者不断地监听时间的变化。
    2、在Swing编程中,依然使用了最早的AWT的事件处理方式,所有的事件类都是EventObject类的子类。

    JDBC

    1.配置MySQL数据库的驱动程序:下载相应的MySQL,若能输出Class,则已经配置好了
    2.DriveManager:(1)getConnection(String url, String user ,String password)
    (1)通过连接地址链接数据库,同时输入用户名和密码
    (2)子名称:一种标识数据库的方法,必须遵循”//主机名 : 端口/子协议" 的标准URL命名
    3.数据库的更新操作:Statement接口,通过Connection接口的createStatement()方法实例化,来操作数据

  • 相关阅读:
    构造方法调用另一个构造方法,用this
    排块游戏
    阶乘 大数存储
    Circle
    Git简单入门教程
    Python爬虫第一个成功版
    Python爬虫入门
    js中去除字符串两边的空格
    UUID生成字符串
    连接数据库工具类DBUtil
  • 原文地址:https://www.cnblogs.com/yuhaner/p/12035198.html
Copyright © 2020-2023  润新知