• 课程总结


    基本知识
    1.系统软件:直接和硬件交互的软件(操作系统)如windows10,Linux
    2.应用软件:通常用行在系统软件 ,如QQ在系统软件上
    3.软件开发:一般都是指使用计算机编程语言完成应用软件开发
    *常见的Dos命令

    • exit 退出当前窗口
    • cls 清屏
    • Dos'中内容怎么复制:
      在Dos中的任意位置点击鼠标右键,然后选择标记,
      接下来选中复制内容,在Dos窗口中点击鼠标右键则完成复制。
      — dir 列出当前目录下所有子文件
      — cd 命令表示:改变目录
      — cd .. 回到上一级目录
      — cd   直接回到根目录
      — d: 回车 切盘
      解决Dos中命令不可用 ,windows操作系统是如何搜索硬盘上某个命令的呢?
      1.先会从当前目录下搜索
      2.当目录搜索不到的话,从环境变量path指定的路径当中搜索命令
      3.如果都搜索不到则以上报错
      所以配置环境变量,专门给Windows操作系统指路
      数据类型
      1.四大数据类型分类:
      整型:byte 、short 、int 、long 浮点型:float 、 double 字符型char (基本类型)
      布尔型:boolean( 它的取值就两个:true 、false,boolean 类型与其他7中类型的数据都不能进行转换) 。
      2.基本类型之间的转换
      自动转换(隐式):无需任何操作。
      强制转换(显式):需使用转换操作符(type)。double > float > long > int > short > byte
      如果从低转换到高,那么可以直接转换,而从高到低,或char 和其他6种数据类型转换,则必须使用强制转换。
      拓展知识点:Java是面向对象语言,其概念为一切皆为对象,但基本数据类型算是个例外哦,
      基本数据类型大多是面向机器底层的类型,它是 “值” 而不是一个对象,它存放于“栈”中而不是存放于“堆”中,
      但Java一切皆为对象的概念不是说说而已,它为每一个基本数据类型都做了相应的包装类。

    对于Java基本结构有了基本的认识,能写出简单的输出;
    先说说学习方法部分
    首先要能勾起兴趣
    能够结合 生(游)活(戏) 中的实例来学习,就最好不过了,一来最好就让我知道这个学习目的是什么,不要一开始就太多理论,让我云里雾里,消磨掉耐心和动力,另一个学习方法就是理清讲解思路,让自己有全局观。初学Java,很多知识点脑海中也只剩下一个名词,具体讲了什么已经记不得!做笔记长远来看是最省时间的。因为笔记内容都是自己消化过的,后期不用再去看视频复习(太麻烦了),直接看自己的笔记效率更高!反而蜻蜓点水,不做笔记一味求快的人,学到后面跟不上。因为这些知识点你只是听懂了,而不是理解,也没有实际编码操作过,印象是不深的,但是思维导图要自己做,自己看,效果最好。看别人的基本没效果。
    2、因为上学期学习了C语言,在这周运算符的学习上,也有了更好的认识与了解。如:明白了逻辑运算符短路与&&和短路或||的一些区别;学习了位操作符左移位与右移位。
    3.了解了正数与负数的反码与补码。
    4.了解简单移位实现功能代码的编写(运用二进制转换移位)。
    5.对以前的for循环、while循环、switch循环有了一定的复习。

    构造方法
    类名称 对象名称=new 类名称 ()
    构造方法的名称必须与类名称一致;
    构造方法的声明处不能有任何返回值类型的声明;
    不能在构造方法中使用return 返回一个值。
    this调用本类构造方法必须放在首行,不能循环
    this+成员变量有四个作用
    1.强调调用本类方法
    2.表示类的成员属性
    3.调用构造方法
    4.表示当前对象
    当前对象指的是正在调用的对象
    static声明属性,将静态属性共享为公共属性
    java中常用的内存区域
    1.栈内存空间:保留所有的对象名称(准确说是保留了堆内存空间的地址)
    2.堆内存空间:保留每个对象的具体属性内容
    3.全局数据区:保留static的属性
    4.全局代码区:保留所有方法定义
    static方法定义的说明
    1.本类没有提供有普通属性,这样产生实例化对象没有意义;
    2.本类无法直接进行对象实例化,只能够利用static操作;
    说明:非static声明的方法可以去调用static声明的属性或方法,但static声明的方法不能调用非static类型声明的属性或方法。
    static类型的方法在对象未被实例化时就可以被类名所调用。

    一.实验目的
    (1)掌握类的继承
    (2)变量的继承和覆盖,方法的继承,重载和覆盖的实现;
    二.实验的内容
    (1)根据下面的要求实现圆类Circle。
    1.圆类Circle的成员变量:radius表示圆的半径。
    2.圆类Circle的方法成员:
    Circle():构造方法,将半径置0
    Circle(double r):构造方法,创建Circle对象时将半径初始化为r
    double getRadius():获得圆的半径值
    double getPerimeter():获得圆的周长
    void disp():将圆的半径和圆的周长,圆的面积输出到屏幕

    抽象类的使用
    设计一个类层次,定义一个抽象类--形状,其中包括有求形状的面积的抽象方法。 继承该抽象类定义三角型、矩形、圆。 分别创建一个三角形、矩形、圆存对象,将各类图形的面积输出。
    注:三角形面积s=sqrt(p(p-a)(p-b)*(p-c)) 其中,a,b,c为三条边,p=(a+b+c)/2
    2.编程技巧
    (1) 抽象类定义的方法在具体类要实现;
    (2) 使用抽象类的引用变量可引用子类的对象;
    (3) 通过父类引用子类对象,通过该引用访问对象方法时实际用的是子类的方法。可将所有对象存入到父类定义的数组中。

    练习捕获异常、声明异常、抛出异常的方法、熟悉try和catch子句的使用。
    掌握自定义异常类的方法。

    编写一个类,在其main()方法中创建一个一维数组,在try字句中访问数组元素,使其产生ArrayIndexOutOfBoundsException异常。在catch子句里捕获此异常对象,并且打印“数组越界”信息,加一个finally子句,打印一条信息以证明这里确实得到了执行。
    自定义异常类的使用

    编写一个Exgeption的子类DangerException,该子类可以创建异常对象,该异常对象调用toShow()方法输出“危险物品”。编写一个Machine类,该类的方法checkBag(Goods goods)当发现参数goods是危险品时(goods的isDanger属性是true)将抛出DangerException异常。
    程序在主类的main()方法中的try-catch语句的try部分让Machine类的实例调用checkBag(Goods goods)的方法,如果发现危险品就在try-catch语句的catch部分处理危险品。

    多线程
    1.这一周我们接着上一周的多线程学习了实现Runnable接口,上一周中学习了Thread类,thread类实现的是多线程,但是这个还是很局限的,而Runnable接口是用来实现资源共享同时也可以通过Runnable接口的方式实现多线程。

    Java IO
    操作文件的类——File
    在整个IO包中,唯一表示与文件本身有关的类就是File类,使用file类可以进行创建或删除文件等常用操作。

    流的概念
    1.1、程序中所有的数据都是以流的方式进行传输或保存的
    1.2、程序需要读取数据的时候要使用输入流读取数据,而当程序需要将一些数据保存(写)到磁盘的时候,就要使用输出流完成。
    1.3、切记:程序是内,文件...是外
    二、流的超类
    2.1、字节流的超类:InputStream、OutputStream
    作用:处理字节、二进制对象。(其实可用于任何类型的对象,但它不能直接处理Unicode字符)
    操作对象:字节流处理单元为1个字节,操作字节和字节数组
    2.2、字符流的超类: Reader、Writer
    作用: 直接处理字符、字符串。
    操作对象:处理的单元为2个字节的Unicode字符
    拓展:字符流是由Java虚拟机将字节转化为2个字节的Unicode字符为单位的字符而成的
    2.3、用途推荐
    音频文件、图片、歌曲,就用字节流好点
    关系到中文(文本)的,用字符流好点
    2.4、前言:
    其实前言放在这里,笔者认为是不合适的,之前的铺垫只是方便读者快读进入状态
    字节流和字符流的关系:
    字节流不足:实际开发中很多的数据是文本,字节流提供了处理任何类型的IO操作的功能,但它不能直接处理Unicode字符,于是提出了字符流的概念。
    字符流的诞生:字符流按虚拟机的encode处理,也就是通过InputStreamReader,OutputStreamWriter进行字符集的转化
    转化(注:初学者可以不看该转化知识,如果想了解原理,该段是有帮助的):
    InputStreamReader:用于将一个字节流中的字节解码成字符,其构造函数
    InputStreamReader isr = new InputStreamReader(InputStream in)的参数是一个InputStream对象 / System.in,用 对象.read(char[] data),的方式获取内容
    OutputStreamWriter:用于将写入的字符编码成字节后写入一个字节流,其构造函数(之一)
    OutputStreamWriter osw = new OutputStreamWriter(OutputStream out)是一个OutputStream对象,通常用对象.write(String str)的方式写到 对象绑定的输出流上。
    二者都是处理流(包装流、非结点流)---不可直接操作数据!。由上可知二者底层分别是通过byte[]和String来关联它们对应的流对象!
    三、字节流与字符流的区别
    3.1、操作文件时的区别:
    字节流:在操作时不会用到缓冲区(内存),是直接对文件本身进行操作的
    字符流:在操作时则使用了缓冲区,通过缓冲区再操作文件。
    3.2、存在形式区别:
    在硬盘上的所有文件都是以字节形式存在的(图片,声音,视频),而字符值在内存中才会形成

    1.JPanel:默认流式布局管理器。
    JPanel可以完成各种复杂的界面显示,可以加入任意组件,在直接将JPanel容器加入到JFrame容器中即可显示。
    JSplitPane:主要功能是分割面板,可以将一个窗体分为两个窗体,可以使垂直排列,也可以是水平排列。
    3.JTabbedPane:是在一个面板上设置多个选项卡供用户选择。
    4.JScrollPane:主要功能是为显示的内容加水平滚动条。由JVieport和JScrollBar组成,前者主要是显示一个矩形
    的区域让用户浏览,后者主要是形成水平或者垂直的滚动条。
    5.JDesktopPane与JInternalFrame:前者规定了一个父窗体的基本形态,后者规定各个子窗。
    二、时间处理
    1.事件和监听器:事件就是表示一个对象发生状态变化,事件的监听器:都是以接口的形式出现。
    2.窗体事件:
    WindowListerner:是专门处理窗体监听器的监听接口。

    键盘事件及监听处理
    在Swing的事 件处理中也可以使用KcyListcner接口对键盘的操作进行监听。
    MouseEvent
    在每个事件触发后都会产生MouseEvent事件,此事件可以得到鼠标的相关操作。
    鼠标拖拽事件及监听处理
    在一般的图形界面中经常可以看到鼠标拖拽操作的情况在Swing中可以使用MouseMotionListener接口完成鼠标的拖拽操作。
    单选钮JRadioButton
    单选钮就是在给出的多个显示信息中指定选择一个,在Swing中使用JRadioButton完成一组单选钮的操作。
    JRadioButton事件处理
    单选按钮操作中,使用ItemListener接口进行事件的监听。
    菜单组件
    使用JMenu组件可以实现菜单。JMenuBar组件的功能是用来摆放IMenu组件,当建立完多个JMenu组件之后,需要通过JMenuBar组件将JMenu组件加入到窗口中。
    文件选择框JFileChooser
    在使用记事本或者word等软件的时候,可以通过文件选择框选择要打开或保存的文件。在Swing中可以使用JFileChooser组件实现此功能。
    实验报告:
    package Demo;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import java.io.File;
    import javax.swing.ImageIcon;
    import javax.swing.JFrame ;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.JMenuItem;
    import javax. swing.JScrollPane;
    import javax.swing.JTextArea;
    import javax.swing.KeyStroke;
    public class Notepad {
    public static void main (String[] args) {
    JFrame frame = new JFrame ("Welcome To MLDN") ; // 定义窗体
    JTextArea text = new JTextArea () ; //定义文本域
    text. setEditable (true) ;//定义文本组件可编辑
    frame . getContentPane () .add (new JScrollPane(text)); // 在面板中加入文本框及滚动条
    JMenu menuFile = new JMenu ("文件") ;//定义JMenu组件
    menuFile. setIcon (new ImageIcon("d:" + File. separator + "icons"+ File.separator + "file.gif")) ;//定义显示图标
    JMenuBar menuBar = new JMenuBar () ;//定义JMenuBar
    JMenuItem newItem = new JMenuItem ("新建",new ImageIcon("d:" + File. separator + "icons" + File. separator + "new.gif")) ; //创建JMenuItem
    JMenuItem openItem = new JMenuItem("打开",new ImageIcon("d:" + File. separator + "icons"+ File. separator + "open.gif")) ; //创建JMenuI tem
    JMenuItem closeItem = new JMenuItem ("关闭" ,new ImageIcon("d:" + File. separator + " icons"+ File. separator + "close.gif")) ; //创建JMenuI tem
    JMenuItem exitItem = new JMenuItem ("退出",new ImageIcon("d:" + File. separator + " icons"+ File. separator + "exit.gif")) ; //创建JMenuI tem
    newItem.setMnemonic('N') ; //设置快捷键N
    openItem.setMnemonic('O') ; //设置快捷键O
    closeItem.setMnemonic('C') ; //设置快捷键C
    exitItem.setMnemonic ('E') ;//设置快捷键E
    newItem.setAccelerator (KeyStroke.getKeyStroke('N',java.awt.Event.CTRL_MASK)); //Ctrl+N
    openItem.setAccelerator (KeyStroke.getKeyStroke('O',java.awt.Event.CTRL_MASK)) ; //Ctrl+0
    closeItem.setAccelerator (KeyStroke.getKeyStroke('C',java.awt . Event.ALT_MASK) ) ;//Alt+C
    exitItem.setAccelerator (KeyStroke.getKeyStroke('E',java.awt .Event.ALT_MASK) ) ;//Alt+E
    menuFile.add (newItem) ;//Alt+E
    menuFile.add (newItem) ;//加入菜单项
    menuFile.add (openItem) ;//加入菜单项
    menuFile.add (closeItem) ;//加入菜单项
    menuFile.addSeparator () ;//加入分隔线
    menuFile.add (exitItem) ;//加入菜单项
    menuBar.add (menuFile) ;//加入JMenu
    frame.addWindowListener (new WindowAdapter () {//加入事件监听
    public void windowClosing (WindowEvent arg0) { // 覆写窗口关闭方法
    System.exit(1) ;
    }});//系统退出
    frame . setJMenuBar (menuBar) ;//在窗体中加入.JMenuBa r组件
    frame . setVisible (true) ;//显示组件
    frame. setSize(300,180) ;//定义窗体大小
    frame. setLocation(300,200) ;//设置显示位置
    }
    }

  • 相关阅读:
    Keil MDK5 硬件仿真之查看变量的值(内附变量值不随程序的运行而刷新的解决办法)
    15 Q点稳定的放大电路和基本共集放大电路
    13 H参数等效模型
    12 放大电路的分析方法
    文件处理
    基本数据类型及内置方法
    for循环及字符串操作
    while循环
    用户交互、运算符
    变量与基本数据类型
  • 原文地址:https://www.cnblogs.com/George-/p/12034589.html
Copyright © 2020-2023  润新知