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

    课程总结

    本学期面向对象与Java程序设计课程已经全部结束了,但Java程序设计的学习还远未到终点,大家就本学期的课程作一个全面的总结吧。

    学期学习总结:

    1.数据类型

    不同数据类型可表示的数据范围,由低到高分别是byte、short、char--》int--》long--》float--》double。数据类型的转换包括自动类型转换和强制类型转换,如果数据超过原有数据类型可表示的范围,就需要进行强制类型转换。

    2.运算符

    有算术运算符、赋值运算符、关系运算符、逻辑运算符、位运算符。逻辑运算符包括与和或,与要求返回值都为真,结果才为真,或只要有一个为真结果就为真。与中有“&”和“&&”,“&”要求所有条件都判断,而“&&”如果第一个条件为false,则后面的条件将不再判断。或包含“|”和“||”,“|”要求条件都判断,“||”第一个条件为true,则后面的条件将不再判断。

    3.类和对象

    对象是一类事物的实例,是具体的类是对一类事物的描述,是抽象的类是对象的模板,对象是类的实体。类中包括声明成员变量和定义方法的内容。然后为了使用这个类,就必须创建并实例化对象,就可以使用对象访问类中的属性或方法,调用tell()方法把内容输出。其中注意使用对象前必须实例化。每个类都可以产生多个实例化对象,只要在实例化对象中使用了关键字就开辟了新的堆内存空间,每一个实例化对象都会有自己的堆、栈内存空间。

    类的定义:

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

    创建对象:

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

    4.封装性

    封装性是面向对象的第一大特性,封装方法是在属性名称和方法名称前加private,加入此关键字后程序无法进行编译,不能由对象直接进行访问,必须通过setter和getter方法设置和取得。

    5.构造方法

    构造方法定义:

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

    1)构造方法的名称必须与类名称一致;
    (2)构造方法的声明处不能有任何返回值类型的声明;
    (3)不能在构造方法中使用return返回一个值。

    6.String类

    string可以采用直接赋值的方式进行操作,也可以通过new方法实例化,String的比较有两种方式:2个字符串使用==比较运算符,比较的是地址值,如果使用的是equals方法,比较的是字符串内容是否相等。

    7.this关键字

     (1)可以使用this强调本类中的方法、 

    (2)表示类中的属性、 

    (3)可以使用this调用本类的构造方法、

    (4)this表示当前对象、

    8.static关键字

        1)修饰成员变量和成员方法

        2)静态代码块

        3)修饰类(只能修饰内部类)

    9.继承

    子类可以继承父类非private的属性、方法。子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。子类可以用自己的方式实现父类的方法。Java的继承是单继承,不可以多重继承,允许进行多层继承。子类对象在实例化之前会默认调用父类中的构造方法。所以在实例化子类对象之前需要先将父类中的属性进行初始化。

    继承格式:

    class 父类{}
    class 子类 extends 父类{}

    10.方法的覆写

    子类定义了与父类方法名称,返回值类型、参数类型及个数完全相同的方法。被覆写不能够拥有比父类更为严格的控制权限。public>default(不加任何说明 包访问权限)>private(只能在本类中使用)

    重载:方法名称相同,参数的个数或类型不同。不能有两个名字相同,参数类型也相同却返回值不同的方法。

    方法的重载和覆写的区别:

    重载 覆写
    方法名称相同,参数的个数及类型不同 方法名称,返回值类型,参数的个数,参数的类型均相同
    对权限没有要求 被覆写的方法不能拥有比父类更严格的访问控制权限
    发生在一个类中 发生在继承类中

    11.super关键字

    使用super可以从子类中调用父类的方法、属性。super()和this()均需放在构造方法内第一行,因此与this不能同时出现,main方法不能使用this和super。

    12.final关键字

    1).使用final声明的类不能有子类
    2).使用final声明的方法不能被子类所覆写
    3).使用final声明的变量即为常量,不可修改

    13.抽象类和接口

    ●抽象类的定义格式

    ●抽象类的定义格式
    abstract class 抽象类名称{
    属性 ;
    访问权限 返回值类型 方法名称(参数){ // 普通方法
    [return 返回值] ;
    }
    访问权限 abstract 返回值类型 方法名称(参数) ; // 抽象方法
    // 在抽象方法中是没有方法体的
    }
    

      

    接口:接口通常以interface来声明,一个类通过继承接口的方式,从而来继承接口的抽象方法。接口中的抽象方法必须定义成public访问权限,这是不可改变的。接口要使用也必须通过子类,子类通过implements关键字实现接口。接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。

    接口的定义:

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

    接口与类的区别:

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

    对象的多态性

    (1)方法的重载和覆写。

    (2)对象的多态性:1.向上转型:子类对象——》父类对象。2.向下转型:父类对象——》子类对象。

    向上转型:使用父类对象接收子类实例(自动完成),生了向上转型,是父类对象,然后去调用那些父类中的方法,会发现,被调用的依然是子类中覆写过的方法,如果没有覆写过这些方法,则才会调用父类中的方法,调用子类独有的方法和属性就会报错了,

    向下转型:使用子类对象接收父类对象,就是将父类对象变为子类对象(需要强制转型),在进行向下转型时,必须先进行向上转型,否则会出现类型转换异常(ClassCastException)。

    14.抽象类与接口的关系

    序号

    区别点

    抽象类

    接口

    1

    定义

    包含一个抽象方法的类

    抽象方法和全局常量的集合、

    2

    组成

    构造方法、抽象方法、普通方法、常量、变量

    常量、抽象方法

    3

    使用

    子类继承抽象类

    子类实现接口

    4

    关系

    抽象类可以实现多个接口

    接口不能继承抽象类,但允许继承多个接口

    5

    常见设计模式

    模板设计

    工厂设计、代理设计

    6

    对象

    都通过对象的多态性产生实例化对象

     

    7

    局限

    抽象类有单继承的局限

    接口没有单继承的局限

    8

    实际

    作为一个模板

    是作为一个标准或是表示一种能力

    9

    选择

    如果抽象类和接口都可以使用的话,优先使用接口,因为避免单继承的局限

     

    10

    特殊

    一个抽象类中可以包含多个接口,一个接口中可以包含多个抽象类

     

    15.异常

    try{
    被检测的代码
    可能出现异常的代码
     }catch(异常类名 变量){
    异常的处理方式
    循环,判断,调用方法,变量


     }finally{
    必须要执行的代码
     }

    Exception在程序中必须使用try catch进行处理,RuntimeException可以不使用try catch进行处理,但是如果有异常产生,则异常将由JVM进行处理。Exception:一般表示的是程序中出现的问题,可以直接使用try…catch处理。Error:一般指的是JVM错误,程序中无法处理。

    异常中的关键字:throw 在方法的内部,抛出异常对象,throws用于方法的声明上,表名此方法可能出现异常请调用者处理,throws 后面必须写异常类的类名。

    16.多线程

    Java 提供了三种创建线程的方法:

    • 通过实现 Runnable 接口;

    为了实现 Runnable,一个类只需要执行一个方法调用 run(),声明如下:public void run()

    • 通过继承 Thread 类本身;

    创建一个新的类,该类继承 Thread 类,然后创建一个该类的实例。继承类必须重写 run() 方法,必须调用 start() 方法才能执行。

    • 通过 Callable 和 Future 创建线程

    实现Runnable接口可以实现资源共享而继承Thread类不能资源共享,也就是实现Runnable接口是多个线程共同完成一个任务,继承Thread类是一个是多个线程分别完成自己的任务。

    使用同步解决问题:

        synchronized  方法返回值 方法名称(参数列表){
        
          //方法体    }

    17.java IO

    1.使用File操作文件

    使用File类可以进行创建或删除文件等常用操作

    File.pathSeparator表示“;”,File.Separator表示“"。createNewFile()方法创建文件,mkdir()方法创建文件夹。

    18.字节流和字符流

    1.字节流:

    字节输出流:OutputStream

    OutputStream类的常用方法

    序号

    方法或常量

    类型

    描述

    1

    public void close()throws IOException

    普通

    关闭输出流

    2

    public void flush()throws IOException

    普通

    刷新缓冲区

    3

    public void write(byte[] b)throws IOException

    普通

    将一个byte数组写入数据流

    4

    public void write(byte[] b,int off,int len)throws IOException

    普通

    将一个指定范围的byte数组写入数据流

    5

    public abstract void write(int b)throws IOException

    普通

    将一个字节数据写入数据流

    字节输入流:IntputStream

    IntputStream类的常用方法

    序号

    方法或常量

    类型

    描述

    1

    public int available() throws IOException

    普通

    可以取得输入文件的大小

    2

    public void close()throws IOException

    普通

    关闭输入流

    3

    public abstract int read()throws IOException

    普通

    读取内容,以数字的方式读取

    4

    public int read(byte[] b)throws IOException

    普通

    将内容读到byte数组之中,同时返回读入的个数

    2.字符流:

    字符输出流:Write

    Write类的常用方法

    序号

    方法或常量

    类型

    描述

    1

    public abstract void close()throws IOException

    普通

    关闭输出流

    2

    public void write(String str)throws IOException

    普通

    将字符串输出

    3

    public void write(char[] cbuf)throws IOException

    普通

    将字符数组输出

    4

    public abstract void flush()throws IOException

    普通

    强制性清除缓存


    Reader类的常用方法

    字符输入流:Reader

    序号

    方法或常量

    类型

    描述

    1

    public abstract void close()throws IOException

    普通

    关闭输出流

    2

    public void read()throws IOException

    普通

    读取单个字符

    3

    public void read(char[] cbuf)throws IOException

    普通

    将内容读到字符数组之中,返回读入的长度

    3.字节流与字符流的区别

    • 字符输入:字节(磁盘)–> 自动转换为 –>字符(内存);
    • 字符输出:字符(内存)–> 自动转换为–>字节(磁盘);

    在利用字符流输出的时候,所有的内容实际上都只是输出到了缓冲区中(内存)。在使用close()方法关闭的时候会将我们缓冲区的数据进行输出,如果没有关闭,那么就将无法进行输出,此时可以利用flush()方法进行强制的输出。

    19.容器和事件处理

    1.JPanel

      可以将多个组件加入到JPanel中以实现复杂的排列,一个界面只可以有一个JFrame窗体组件,但是可以有多个JPanel面板组件,而JPanel上也可以使用FlowLayout,BorderLayout,GridLayout等各种布局管理器,这样可以组合使用,达到较为复杂的布局效果。

    2.JSplitPane

      JSplitPane用来将窗口分割成两个部分。JSplitPane提供两个常数让你设置到底是要垂直分割还是水平分割。这两个常数分别是:HORIZONTAL_SPIT,VERTICAL_SPLIT

    3.JTabbedPane

      JTabbedPane创建的选项卡可以通过单击标题或者图标在选项卡之间进行切换。

    4.JScrollPane

      主要功能是为显示的内容加入水平滚动条。

    文本组件:

    单行文本输入框:JTextField

    密码文本输入框:JPasswordField

    多文本输入组件:JTextArea

    20.监听适配器

    监听接口中有很多抽象方法,在实现接口的时候,需要重写所有的方法,但经常只会用到其中的一个或两个,这无疑是一种多余。于是出于简化的目的,每个还有多个方法的的监听器接口都配有一个适配器类,这个类实现了接口中的所有方法,但是每个方法没有做任何事情。通过继承适配器类,重写其中的需要使用的方法,不必重写全部的方法,简单方便

    21.JDBC

    一、JDBC-ODBC桥

        JDBC-ODBC 桥 是sun公司提供的,这种类型的驱动实际是把所有 JDBC的调用传递给ODBC ,再由ODBC调用本地数据库驱动代码。

      二、本地API驱动

         本地API驱动直接把JDBC调用转变为数据库的标准调用再去访问数据库。

      三、网络驱动

        JDBC先把对数局库的访问请求传递给网 络上的中间件服务器. 中间件服务器再把请求翻译为符合数据库规范的调用,再把这种调用 传给数据库服务器。

      四、本地协议驱动

        这种驱动直接把JDBC调用转换为符合相关数据库系统规范的请求。

    22.数据库

    1).加载数据库驱动程序

      1 加载Oracle数据库驱动  Class.forName("oracle.jdbc.driver.OracleDriver");

      2 加载SQL Server数据库驱动  Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

      3 加载MySQL 数据库驱动  Class.forName("com.mysql.jdbc.Driver");

    2).连接数据库

    DriverManager类的常用方法

    序号

    方 法

    类型

    描述

    1

    public static Connection getConnection(String url) throws SQLException

    普通

    通过连接地址连接数据库

    2

    public static Connection getConnection(String url,String user,String password) throws SQLException

    普通

    通过连接地址连接数据库,
    同时输入用户名和密码

    个人总结:

    这学期学习java刚开始由于有上学期学习c语言的基础感觉还不错,一些题目的代码和c语言差不多,再加上老师讲的比较透彻,学起来还算轻松。但是学到后面类和方法比较多,很容易搞混,需要多去写代码才能发现一些类和方法之间的区别,例如抽象类和接口在实现时感觉代码差不多,所以需要多多练习。当学到图形界面时,让我更直观的看到了写代码,写程序在日常生活中的作用,许多复杂的程序都是通过一行一行的代码实现的,而图形界面则是我们对一个程序的直接的感受和互动,学了这里更容易让我们理解程序运行原理,也会激发学习的兴趣。后面又学习了数据库之后,与前面联系起来就可以实现一个简单的登录操作程序了。所以这学期学完后还是感觉学到了很多东西,期待下一学期的学习!

  • 相关阅读:
    SOA精华的内容和实用的知识
    众多SEO专家集体盛赞
    黑客大曝光:VoIP安全机密与解决方案
    博文视点大讲堂41期SEO难点之网站内部链接结构
    TransactSQL管理与开发实例精粹
    千万不要错过云计算兴起的时代
    《海量数据库解决方案》之位图索引的结构和特征
    Oracle开发艺术
    Android应用程序的开发
    BizTalk Accelerator for HL7医疗行业消息路由处理机制
  • 原文地址:https://www.cnblogs.com/198266qq/p/12035232.html
Copyright © 2011-2022 走看看