• 课程总结


    我也不拐弯抹角了,直接说了。对于java接触了一个学期了,应该算刚刚入门吧,学而时习之,不亦乐乎,学而不思则罔,思而不学则殆,学无止境,来吧!这里只总结一些比较实用及重点内容。
    1:基本数据类型
    java语言有8种基本数据类型:byte(占1个字节),short(占2个字节),int(占4个字节),long(占8个字节),float(占4个字节),double(占8个字节),char(占2个字节),boolean(占1个字节)。
    2:运算符优先级:
        逻辑与&& 优先级  大于  逻辑或||
    按位与& 优先级  大于  按位或|

    类和对象

        类:对现实生活中事物的描述
        对象:就是这类事物中实实在在的个体,java中一切都是对象,具体对象是java在堆内存中用new建立的实体

    权限修饰符

          一个.java文件中只能有一个public类
          static: 用于修饰成员(成员变量和成员方法),当成员被static修饰后,该成员可被类名直接调用,类名.静态成员
          static修饰后的特点:
            随着类的加载而加载,优先于对象存在,被所有对象共享,可以被类名直接调用。
            静态方法只能访问静态成员,其方法中不能定义super,this关键字,因为静态优先于对象存在,主函数是静态的
            静态优点:把对象的共享数据单独存储,节省空间,可被类名直接调用。缺点:生命周期过长,访问出现局限(只能访问静态)。

    this关键字:代表本类对象,哪个对象调用this所在的函数,this就代表哪个对象

    构造函数

          一个类中默认会有一个空参数的构造函数,其权限和所属类的权限一致
          作用是给对象进行初始化,对象一建立就会调用与之对应的构造函数。

    特性

        封装:隐藏对象属性和实现细节,仅对外提供公共访问方式,提高复用性和安全性
    

         继承:必须类与类间有关系才能继承,提高代码复用性,java只支持单继承,但是可以有多层继承,但是可以用实现来弥补

          子类为什么一定要访问父类的构造函数呢:因为父类中的数据,子类是可以直接获取的,所以子类对象在建立的时候,需要先查看父类是如何对这些数据进行初始化的,如果要指定父类中指定的构造函数,可以手动定义super语句来实现。

        多态:某一类事物的多种存在形态
    

          多态的实现:父类的引用指向了自己的子类对象(向上转型)
          多态的前提:类与类之间有关系,继承或实现,通常还存在覆盖
    (像多窗口售票问题就是多态问题)

    抽象类

      抽象方法一定在抽象类中
          抽象方法和抽象类必须被关键字abstract修饰
          抽象类不能用new创建对象,不能实例化,因为没意义,方法没内容
          抽象类中的抽象方法要被使用,必须由子类重写所有的抽象方法后,建立子类对象调用

    接口

        接口是对外暴露的规则,是程序的功能扩展,接口可以用来多实现,类与接口是实现关系,类可以继承一个类的同时实现多个接口,接口与接口间可有继承关系。
        接口是特殊的抽象类,接口成员有固定修饰符,常量:public static final 方法:public abstract

        接口不能创建对象,被子类实现后,子类需重写接口中所有抽象方法,这样子类才能实例化,否则子类还是一个抽象类。

    重写与重载

        重写:是对父类方法的重写,子父类方法要一模一样
        重载:同名函数的参数列表不同

    异常处理机制

     java的异常处理,可以运用try,catch,finally语句来处理,但还可以将其抛出,不管怎么样都是要进行处理的,但不能抛到main方法进行处理。
    throws和throw区别:
          throws使用在函数上,throw使用在函数内
          throws后面跟异常类名,可以跟多个,逗号隔开,throw后跟异常对象。

    java IO

    在这其中有字符流与字节流,但一般可以把字符流换成字节流来写,反之不可以吧。
    


    java 图形界面设置

    1.在这个学习中,掌握了组件,容器(基本容器Frame),布局管理器的基本用法(组件要放入容器中,但容器也有自己默认的布局管理器),加入自己喜欢的东西在机界面上,比如修改文字的样式,图片,按钮等等,然后还有很多需要利用的布局管理器(FlowLayout,BorderLayout,GildLayout,CardLayout,绝对定位),还有其他容器(JPanel,JSplitPane,JTabbedPane,JScrollPane,JDesktopPane与JInternalFrame),之后会进行事件的处理,就是让它能用,比如有键盘监听器,鼠标监听器,如果只想利用其中部分功能有适配器。
    2.对于最后学习的记事本里面有JMemu,JMenuBar,JMenuItem这三种组件就是我们常见的菜单,让我一步步完成了简单的记事本。
    掌握了他们的用法在加上前面的图形界面的运行,一步步也算完成了。

    package 单选钮;
    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.KeyEvent;
    import java.awt.print.PageFormat;
    import java.awt.print.PrinterJob;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    public class demo03 implements ActionListener {
             JFrame frame;
             JMenuBar bar;
             JMenu fileMenu,editMenu,formatMenu,searchMenu,helpMenu;
             JMenuItem newItem,openItem,saveItem,closeItem,pageItem,printItem;
             JMenuItem withdrawItem,shearItem,copyItem,stickItem,delateItem,seekItem,seeknextItem,replaceItem,turnItem,checkallItem,timeItem;
             JScrollPane scroll;
             JTextArea area;
             JFileChooser chooser;
             File file;
         public demo03() {
             frame=new JFrame("记事本");
             bar=new JMenuBar();
             fileMenu=new JMenu("文件");
             editMenu=new JMenu("编辑");
             formatMenu=new JMenu("格式");
             searchMenu=new JMenu("查找");
             helpMenu=new JMenu("帮助");
             newItem=new JMenuItem("新建(N)");
             openItem=new JMenuItem("打开(O)");
             saveItem=new JMenuItem("另存为(A)");
             pageItem=new JMenuItem("页面设置(U)");
             printItem=new JMenuItem("打印(P)");
             closeItem=new JMenuItem("关闭(X)");
             withdrawItem=new JMenuItem("撤回(U)");
             shearItem=new JMenuItem("剪切(T)");
             copyItem=new JMenuItem("复制(C)");
             stickItem=new JMenuItem("粘贴(P)");
             delateItem=new JMenuItem("删除(L))");
             seekItem=new JMenuItem("查找(F)");
             seeknextItem=new JMenuItem("查找下一个(N)");
             replaceItem=new JMenuItem("替换(R)");
             turnItem=new JMenuItem("转到(G)");
             checkallItem=new JMenuItem("全选(A)");
             timeItem=new JMenuItem("时间(D)");
             
             area=new JTextArea();
             scroll=new JScrollPane(area);
             newItem.addActionListener(this);
             openItem.addActionListener(this);
             saveItem.addActionListener(this);
             closeItem.addActionListener(this);
             pageItem.addActionListener(this);
             printItem.addActionListener(this);
             fileMenu.add(newItem);
             fileMenu.addSeparator();
             fileMenu.add(openItem);
             fileMenu.addSeparator();
             fileMenu.add(saveItem);
             fileMenu.addSeparator();
             fileMenu.add(pageItem);
             fileMenu.addSeparator();
             fileMenu.add(printItem);
             fileMenu.addSeparator();
             fileMenu.add(closeItem);
             editMenu.add(withdrawItem);
             editMenu.addSeparator();
             editMenu.add(shearItem);
             editMenu.addSeparator();
             editMenu.add(copyItem);
             editMenu.addSeparator();
             editMenu.add(stickItem);
             editMenu.addSeparator();
             editMenu.add(delateItem);
             editMenu.addSeparator();
             editMenu.add(seekItem);
             editMenu.addSeparator();
             editMenu.add(seeknextItem);
             editMenu.addSeparator();
             editMenu.add(replaceItem);
             editMenu.addSeparator();
             editMenu.add(turnItem);
             editMenu.addSeparator();
             editMenu.add(checkallItem);
             editMenu.addSeparator();
             editMenu.add(timeItem);
             
             newItem.setMnemonic(KeyEvent.VK_N);
             newItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,java.awt.Event.CTRL_MASK));
             
             openItem.setMnemonic(KeyEvent.VK_O);
             openItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,java.awt.Event.CTRL_MASK));
             
             saveItem.setMnemonic(KeyEvent.VK_A);
             saveItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,java.awt.Event.CTRL_MASK));
             
             closeItem.setMnemonic(KeyEvent.VK_X);
             closeItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,java.awt.Event.CTRL_MASK));
             pageItem.setMnemonic(KeyEvent.VK_U);
             pageItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_U,java.awt.Event.CTRL_MASK));
             printItem.setMnemonic(KeyEvent.VK_P);
             printItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,java.awt.Event.CTRL_MASK));
             frame.setJMenuBar(bar);
             frame.add(scroll);
             frame.setSize(750,500);
             frame.setVisible(true);
             bar.add(fileMenu);
             bar.add(editMenu);
             bar.add(formatMenu);
             bar.add(searchMenu);
             bar.add(helpMenu);
    
         }
        @Override
        public void actionPerformed(ActionEvent event) {
            Object obj=event.getSource();
            if(obj instanceof JMenuItem) {
                JMenuItem item=(JMenuItem)obj;
                if(item==newItem)
                {
                    new demo03();
                }else if(item==openItem) {
                    chooser=new JFileChooser();
                    chooser.showOpenDialog(null);
                    file=chooser.getSelectedFile();
                    try {
                        FileInputStream fis=new FileInputStream(file);
                        try {
                            byte[] b=new byte[fis.available()];
                            fis.read(b);
                            area.append(new String(b));
                            fis.close();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    } catch (FileNotFoundException e) {
                        e.printStackTrace();
                    }
                }else if(item==saveItem) {
                    chooser=new JFileChooser();
                    chooser.showOpenDialog(null);
                    file=chooser.getSelectedFile();
                        try {
                            if(!file.exists()) {
                            file.createNewFile();
                            }
                            FileOutputStream fos=new FileOutputStream(file);
                            byte[] b=area.getText().getBytes();
                            fos.write(b);
                            fos.close();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }               
                }else if(item==pageItem)
                {
                     PageFormat pf = new PageFormat();
                        PrinterJob.getPrinterJob().pageDialog(pf);
                }
                else if(item==printItem) {
                     Print();
                }
                else if(item==closeItem) {
                    System.exit(1);
                }
                }
        }
        private void Print() {
            // TODO Auto-generated method stub
            
        }
    

    最后还是感谢老师的细心指导,在课堂上也会清晰地讲解每一步,而且代码都是一个一个打上去,直接实践,让我们慢慢消化,我就是很欣赏这种老师,我知道这样会说老师走到哪我就学到哪里,根本不会扩展,但你要知道你现在处于初学状态,也没有像别人那样“代码王子”。总的来说我学的东西很多(总结也不知道对不对,也知道不完全),最后还是要慢慢品尝。虽然这个学期过去了,但我们的路不可望也不可得,慢慢来,加油,believe in myself!!!!!

  • 相关阅读:
    Reddit 转载 Drunk Post: Things I've learned as a Sr Engineer
    算法28 30 二叉树非递归遍历(前中后)
    C++ 子类构造函数初始化列表与基类关系
    算法31 leetcode102 二叉树的层序遍历
    C++由数组构建二叉树指针
    windows下编译源代码安装软件
    算法27 leetcode101 对称二叉树
    算法31 88. 合并两个有序数组
    c++:const修饰指针
    c++ 正则实现 千分位分割
  • 原文地址:https://www.cnblogs.com/chenxinxin/p/12012523.html
Copyright © 2020-2023  润新知