课程总结

我也不拐弯抹角了,直接说了。对于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!!!!!

posted @ 2019-12-13 16:44  新仔仔  阅读(245)  评论(1编辑  收藏  举报