• 第十一节:讲述类的继承,数据库,文件的读写,图形绘制


    前言

    大家好,我是 Vic,今天给大家带来第十一节:讲述类的继承,数据库,文件的读写,图形绘制的概述,希望你们喜欢

    类的继承

    • 类的继承
    • 类的多态性
    • final的使用
    • 对象类型的转换
    示意图

    类的继承

    格式:

    [类修饰符] class 子类名 extends 父类名{  ... ...}
    

    如:

    class Student extends People{  ... ...}
    

    类的继承:Object->People->Student

    Java中的类只支持单继承,不支持多继承。

    类成员的继承:
    对于继承:一个类中有成员变量和方法。
    子类继承父类,可以有部分继承它的父类,也可以自己定义。

    子类能继承public和protected的成员变量,不能继承private的成员变量,可以继承同包中的默认修饰符。

    同理,子类继承父类的方法,能够继承public和protedted的方法,不能继承private的方法,不能继承构造方法。

    成员变量的隐藏:

    什么是成员变量的隐藏:

    就是子类定义的成员变量与继承父类的成员变量同名时,我们就说子类隐藏了父类的成员变量。

    那么,如果访问对象就是子类重新定义的成员变量,子类方法访问的也是子类重新定义的成员变量。

    方法的重写

    方法的重写就是:子类定义的方法和父类中的方法全一样时,就是可以说子类重写了从父类继承的方法。

    从名字,返回类型,和参数个数以及类型都完全相同。重写时,不可以降低方法的访问权限。

    super

    关键字super,如果子类想使用父类的构造的方法,那么可以使用super的关键字,默认是由super();调用父类不带参数的构造方法。

    如:super.x、super.f()
    

    调用父类的变量和方法。

    类的多态性

    什么是多态性?

    多态性:同名的多个方法产生不同的行为。

    表现形式:重载与重写。

    关键字final

    对于final,可以修饰类,成员变量,成员方法。

    • 修饰类,该类不能被继承
    • 修饰成员变量,给变量为常理,常理必须被赋值,不能再次被赋值
    • 如果修饰带有参数的方法,那么该参数不能被改变

    如果一个类或方法被final修饰,那么该类不能被继承,不能被重写

    Java的数据库

    在Java中有Java.sql,用于提供执行数据库结构化查询语句。程序可以跨平台,可以连接不同的数据库系统。

    SQL语句

    关系型数据库是由多个表组成。
    表是主要的操作的对象。
    各表之间具有关联性。

    属性值,字段,记录

    SQL

    insert into student values("077555","vic","1444.2.2","男");
    
    select...from...where...
    update student set...where...
    
    //class
    Class.forName("com.mysql.jdb.Student");
    getConnection( )创建与数据库的连接对象;
    //DriverManager
    用户程序和数据库系统之间维护着
    数据库与驱动程序之间的连接
    

    文件的读写

    1. FileInputStream
    2. FileOutputStream
    1. FileReader
    2. FileWriter
    3. BufferedReader
    4. BufferedWriter

    Reader类和Writer类的层次结构

    Reader-BufferedReader-LineNumberReader
    -CharArrayReader-FilterReader-InputStreamReader-FileReader
    -PipedReader-StringReader

    Writer-BufferedWriter-CharArrayWriter-FilterReader-OutputStreamReader-FileWriter-PipedWriter-StringWriter-PrintWriter

    FileWriter可以在已有文件后追加内容

    class Demo{
     public static void main(String args[]){
      FileInputStream fis = null;
      try{
       fis = new FileInputStream("e:/read.txt");
       byte[] buffer = new byte[100];
       fis.read(buffer,0,buffer.length);
       for(int i = 0;i<buffer.length;i++){
        System.out.println(buffer[i]);
      }
      }catch(Exception e){
        System.out.println(e);
      }
     }
    }
    

    FileInputStream和FileOutputStream

    class Test{
    public static void main(String args[]){
     FileInputStream fis = null;
     FileOutputStream fos = null;
     
     try{
      fis = new FileInputStream("e:/read.txt"):
      fos = new FileOutputStream("e:/write.txt");
     
      byte[] buffer = new byte[100];
      int temp = fis.read(buffer,0,buffer.length);
      fos.write(buffer,0,temp);
     
      //String s = new String(buffer);
      //s = s.trim();
      //System.out.println(s);
     }
     catch(Exception e){
      System.out.println(e);
     }
    }
    }
    

    优化:

    class Demo{
     public static void main(String args[]){
      FileInputStream fis=null;
      FileOutputStream fos=null;
      try{
       fis=new FileInputStream("e:/read.txt");
       fos=new FileOutStream("e:/write.txt");
       byte[] buffer=new byte[1024];
       while(true){
        int temp=fis.read(buffer,buffer.length);
        if(temp==-1){
         break;
        }
        fos.write(buffer,0,temp);
       }
       }catch(Exception e){
        System.out.println(e);
      }
      finally{
       try{
        fis.close();
        fos.close();
     }
      catch(Exception e){
       System.out.println(e);
      }
      }
     }
    }
    

    Reader <-- FileReader
    int read(char[] c,int off,int len)
    Writer <-- FileWriter
    void write(char[] c,int off,int len)

    public class TestChar{
    public static void main(String args[]){
     FileReader fr = null;
     FileWriter fw = null;
     try{
      fr = new FileReader("e:/read.txt");
      fw = new FileWriter("e:/write.txt");
      
      char[] buffer=new char[100];
      int temp = fr.read(buffer,0,buffer.length);
      fw.write(buffer,0,temp);
      }
      catch(Exception e){
       System.out.println(e);
      }
      finally{
       try{
       }
       catch(Excepiton e){
        System.out.println(e); 
       }
      }
    }
    

    FileReader 和 BufferedReader

    BufferedReader属于字符流,输入流,然后呢?它又是处理流
    BufferedReader全称字符输入处理流

    class Test{
    public static void main(String args[]){
     FileReader fileReader = null;
     BufferReader bufferReader = null;
     try{ 
      fileReader = new FileReader("e:/read.txt");
      bufferedReader = new BufferedReader(fileReader);
      String line = null;
      while(true){
       line = bufferedReader.readLine();
       if(line == null){
        break;
       }
       System.out.println(line); 
      }
     
      //String line = bufferedReader.readLine();
      //System.out.println(line);
      }
      catch(Exception e){
       System.out.println(e);
       }
       finally{
        try{
         bufferedReader.close(); 
         fileReader.close();
        }
        catch(Exception e){
         System.out.println(e);
        }
       }
      }
    }
    

    图形绘制

    1. 窗口中图形的绘制
    2. 鼠标事件
    3. 键盘事件

    绘制组件public void paint(Graphics g)

    更新组件public void update(Graphics g)

    重绘组件public void repaint()

    鼠标事件

    mouseClicked();
    mouseEntered();
    mouseExited();
    mousePressed();
    mouseReleased();
    

    键盘事件

    keyPressed();
    keyReleased();
    keyTyped();
    

    如果觉得不错,那就点个赞吧!❤️

    总结

    • 本文讲了第十一节:讲述类的继承,数据库,文件的读写,图形绘制,如果您还有更好地理解,欢迎沟通
    • 定位:分享 Android&Java知识点,有兴趣可以继续关注
  • 相关阅读:
    Vue 实现前进刷新,后退不刷新的效果
    chrome浏览器的跨域设置——包括版本49前后两种设置
    Promise.all和Promise.race区别,和使用场景
    滚动条默认最底部
    使用react进行父子组件传值
    java 数组基础学习(一维二维数组)
    react项目 使用echarts
    Python的hasattr() getattr() setattr() 函数使用方法详解
    【线性判别】Fisher线性判别(转)
    【semantic segmentation】Pyramid Scene Parsing Network(转)
  • 原文地址:https://www.cnblogs.com/dashucoding/p/11932633.html
Copyright © 2020-2023  润新知