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

    JAVA课程总结

    一学期的Java学习就此完毕,学的东西很多,并且它遍布在实际生活中每个地方,但是我目前能掌握的东西还很少,真的觉得自己时间多,但是太懒了。后面学习的路还长,在此还是要谢谢学习上的领路人:李津老师和助教;没你们的指导,我们的水平只会更低。学无止境,加油,冲冲冲!

    类与对象
    类是客观存在的,抽象的,概念的东西。
    对象是具体的,实际的,代表一个事物。例如:车是一个类,汽车,自行车就是他的对象。
    关于类与对象的描述:类是对象的模版,对象是类的一个个体。
    类的定义:

    class 类名称{
        数据类型 属性;
        ·····
        public 返回值的数据类型 方法名称(参数1,参数2,···)
                程序语句;
                [return 表达式;]
        }
       }
    

    对象的创建:

    类名 对象名称=new 类名();
    

    如果一个对象要被使用,则对象必须被实例化。

    构造方法:

    class 类名称{
        访问权限 类名称(类型1 参数1,类型2,参数2,···)
            程序语句;
        ·····
        }
    }
    

    继承

    继承:在Java类中只允许单一继承,即一个子类只可以继承一个父类,且子类将继承父类的非私有属性和方法,但父类与子类只能一对一,即一个父类下面只有一个子类,但是那个子类可以作为父类进行下一次的继承。

    方法的重载与复写:在重载中,方法名称相同,参数的类型或者个数不同,而覆盖都是相同的。覆盖只有发生在父类与子类之间,而重载可以发生在同一类中。

    this和super差异:

    1.super()和this()类似,区别是,super()从子类中调用父类的构造方法,this()在同一类内调用其它方法。
    2.super()和this()均需放在构造方法内第一行。
    3.this和super不能同时出现在一个构造函数里面,因为this必然会调用其它的构造函数,其它的构造函数必然
      也会有super语句的存在,所以在同一个构造函数里面有相同的语句,就失去了语句的意义,编译器也不会通过。
    4.this()和super()都指的是对象,所以,均不可以在static环境中使用。包括:static变量,static方法,static语句块。
    

    final关键字:

    1)使用final声明的类不能有子类
    2)使用final声明的方法不能被子类所覆写
    3)使用final声明的变量即为常量,不可修改
    4)使用final声明变量时,要求全部的字母大写
    

    接口
    接口可以理解为一种特殊的类
    1.接口的定义:

    interface 接口名称{
        全局常量;
        抽象方法;
    }
    

    在接口中如果不写public,则也是public访问权限,接口中的方法永远是public。
    2.接口实现
    接口的使用要通过子类,子类通过implements关键字实现接口

    class 子类 implements 接口A,接口B,····{
              //一个子类可以同时实现多个接口
    }
    

    对象的多态性
    对象的多态性主要分两种类型:

    (1)向上转型:子类对象->父类对象
    (2)向下转型:父类对象->子类对象
    

    对象转型

    对象向上转型:父类 父类对象=子类实例 //向上转型,程序会自动完成
    对象向下转型:子类 子类对象=(子类)父类实例
    如果对象发生了向上转型关系,所调用的方法一定是被子类覆写过的方法,若一种方法只在子类中定义,
    而没有在父类中定义,如果要想调用子类定义的其他方法,肯定要使用子类实例。
    对象在进行向下转型之前,必须首先发生对象向上转型,否则会出现对象转换异常。
    

    抽象类:

    1.是以abstract关键字声明的一个类
    2.抽象类不可以被实例化。因为用抽象方法无意义。
    3.抽象类必须由其子类覆盖了所有的抽象方法,该子类才可以被实例化,否则这个子类还是抽象类。
    

    自我理解:就比如说我们要编写一个计算矩形、三角形和圆的面积与周长的程序,若按前面所学的方式编程,我们必须定义四个类:圆类、三角形类、矩形类和使用前三个类的公共类,它们之间没有继承关系.但我们可以看出上面的公式不同但目标相同,所以我们可以为这三个类抽象出一个父类,在父类里定义圆、三角形和矩形三个类共同的数据成员及成员方法。这就是抽象类。

    接口与类相似点:

    1.一个接口可以有多个方法。
    2.接口文件保存在 .java 结尾的文件中,文件名使用接口名。
    3.接口的字节码文件保存在 .class 结尾的文件中。
    4.接口相应的字节码文件必须在与包名称相匹配的目录结构中。
    

    接口与类的区别:

    1.接口不能用于实例化对象。
    2.接口没有构造方法。
    3.接口中所有的方法必须是抽象方法。
    4.接口不能包含成员变量,除了 static 和 final 变量。
    5.接口不是被类继承了,而是要被类实现。
    6.接口支持多继承。
    

    异常

    异常:异常时导致程序中断运行的一种指流,如果不对其处理会导致程序运行中断并造成一定的损失。
    异常中,Throwable 类是 Java 语言中所有错误或异常的超类。Error和Exception 是 Throwable 的子类,Error用于指示合理的应用程序不应该试图捕获的严重问题。JAVA提供了异常处理机制异常处理机制能让程序在异常发生时,按照代码的预先设定的异常处理逻辑,针对性地处理异常,让程序尽最大可能恢复正常并继续执行,且保持代码的清晰。Java中的异常可以是函数中的语句执行时引发的,也可以是程序员通过throw 语句手动抛出的,只要在Java程序中产生了异常,就会用一个对应类型的异常对象来封装异常,JRE就会试图寻找异常处理程序来处理异常。Throwable类是Java异常类型的顶层父类,一个对象只有是 Throwable 类的(直接或者间接)实例,他才是一个异常对象,才能被异常处理机制识别。JDK中内建了一些常用的异常类,我们也可以自定义异常。

    多线程
    多线程的使用,多线程是java开发中很重要的一部分,在实际生活中用到多线程的地方很多比如:售票、滴滴司机的接单。多线程在我的理解中就是以并发为主的应用,不过这也算因为现阶段学习的很浅显,能做到适当的应用就好了。同时在多线程中现应用的最多的就是同步,并且应用最多的就两种同步方法

    1.同步方法
    synchronized关键字修饰的方法 由于java的每个对象都有一个内置锁,当用此关键字修饰方法时,内置锁会保护整个方法。在调用该方法前,需要获得内置锁,否则就处于阻塞状态。
    代码如:

    public synchronized void save(){
    
          }
    

    2.同步代码块
    即有synchronized关键字修饰的语句块。 被该关键字修饰的语句块会自动被加上内置锁,从而实现同步
    代码如:

    synchronized(object){
    
        }
    

    字节流与字符流的基本操作:

    1.使用File类打开一个文件。
    2.通过字节流或者字符流的子类指出输出的位置。
    3.进行读/写操作。
    4.关闭输入/输出。
    

    字节流:

    InputStream 类的常用子类如下。
    ByteArrayInputStream 类:将字节数组转换为字节输入流,从中读取字节。
    FileInputStream 类:从文件中读取数据。
    PipedInputStream 类:连接到一个 PipedOutputStream(管道输出流)。
    SequenceInputStream 类:将多个字节输入流串联成一个字节输入流。
    ObjectInputStream 类:将对象反序列化。
    

    字节输出流

    OutputStream 类及其子类的对象表示一个字节输出流。OutputStream 类的常用子类如下。
    1.ByteArrayOutputStream 类:向内存缓冲区的字节数组中写数据。
    2.FileOutputStream 类:向文件中写数据。
    3.PipedOutputStream 类:连接到一个 PipedlntputStream(管道输入流)。
    4.ObjectOutputStream 类:将对象序列化。
    

    组件和容器

    组件(component)是图形界面的基本元素,用户可以直接操作,例如按钮。容器(Container)是图形界面的的复合元素,容器可以包含组件,例如面板。
    Swing中预定义的窗口类JFrame是一种容器类,程序创建的JFrame或JFrame子类的对象就是窗口。
    Container类中定义了add()方法,大多数容器都可以用add()方法向容器添加组件。

    另外还有几个布局管理器:

    FlowLayout:FlowLayout布局是将其中的组件按照加入的先后顺序从左到右排列,一行满之后就转到一下行继续从左到右排列,每一行中的组件都居中排列。
    
    BorderLayout:BorderLayout布局策略是把容器内的空间简单划分为东“East”,西 “West”,南 “South”,北 “North”,中 “Center”五个区域。加入组件时,都应该指明把组件放在哪一个区域中。
    
     
    
    GridLayout:GridLayout布局是把容器划分成若干行和列的网格状,行数和列数由程序控制,组件放在网格的小格子中。
    
     
    
    CardLayout:采用CardLayout布局的容器虽可容纳多个组件,但是多个组件拥有同一个显示空间,某一时刻只能显示一个组件。
    
    绝对定位:通过设置绝对坐标的方式完成布局。
    

    下面是我这一学期所写的实验总结报告:
    第二周Java学习总结
    第三周课程总结&实验报告一
    第四周课程总结&试验报告(二)
    第五周课程总结&试验报告(三)
    第六周&java实验报告四
    第七周课程总结&实验报告(五)
    第八周课程总结&实验报告(六)
    第九周课程总结&实验报告(七)
    第十周课程总结
    第十一周课程总结
    第十二周总结
    第十三周课程总结
    第十四周课程总结&实验报告

  • 相关阅读:
    mysql索引
    mysql中的事务
    mysql的各种join连接
    java集合-LinkedList源码分析
    java集合(二)-ArrayList源码分析
    java集合(一)-集合概述
    java并发(五)-重排序、 happens-before
    vue引入百度地图 --BMap is not defined ,eslint BMap报错
    红星美凯龙前端面试内容总结
    vue父子组件钩子函数的执行顺序
  • 原文地址:https://www.cnblogs.com/huangnuocheng/p/12036503.html
Copyright © 2011-2022 走看看