学期总结

这个学期就要结束,这个学期学习的东西也挺多的

       认识了Java,下载并简单运用了jdk,这周对于Java基础程序设计有了认识,尝试写出了简单输出;学习了运算符,表达式与语句;

       学习了数据类型的等级byte,short,char →  int  → long→   float →  double,并且知道在对其进行数据类型转化的时候,等级低的

会自动转化为上一级的数据类型,但是等级高的不能自动向等级低的转化,需要进行强制类型转化,否则就会导致溢出;在c的加持

下进一步加深了对选择与循环语句的认识;

了解了数组的定义以及使用,对面向对象的三个特征封装性,继承性,多态性有了初步的认识。从构造方法开始,构造方法的名称

必须要与类名一致且声明处不能有返回值;  学了只能使用一次的匿名对象;  this关键字:表示类中的属性,强调本类中的方法,

可以使用this调用本类的构造方法,其表示当前对向;学习了static的声明方法,理解main()方法{public static void main(String[] args)

或public static void main(String args[])}

学习了String类,了解了实例化String类对象的两种方式:直接为string类赋值,其所有的对象共用一个地址。调用String类中的构造方法进

行实例化,其开辟了多个空间;String类中的字符串内容不可修改;符号”==“比较的是对象的地址;equals()方法比较的是对象的内容;

     学了对像数组,对象数组指包含了一组相关的对象;

数组一定要先开辟空间因其是应用数据类型使用时每一个对象必须分别进行实例化操作,格式为:类 对象数组名称[]=new 类[数组长度];

了解了包的概念及使用:package在多个接口或类时,避免名称重复的措施。

      学习了继承.重载与覆写.final关键字.抽象类。

子类能够继承父类的public和protected成员变量但不能够继承父类的private成员变量;

对父类的包访问权限成员变量,如果子类和父类在同一个包下,子类才可以继承;

对于子类可以继承的父类成员变量,如果在子类中出现了同名称的成员变量,子类的成员变量会屏蔽掉父类的同名成员变量;如果要在子类中访问父类中同名成员变量,需要使用super关键字来进行引用;

能够继承父类的public和protected成员方法;不能够继承父类的private成员方法;

父类的包访问权限成员方法,当子类和父类在同一个包下,子类能够继承,否则,子类不能够继承;

子类可以继承的父类成员方法,如果在子类中出现了同名称的成员方法,则称为覆盖,即子类的成员方法会覆盖掉父类的同名成员方法。如果要在子类中访问父类中同名成员方法,需要使用super关键字来进行引用;

隐藏是针对成员变量和静态方法,覆盖是针对普通方法;

子类不能继承父类的构造器,注意如果父类的构造器都是带有参数的,则必须在子类的构造器中通过super关键字调用父类的构造器,如果父类有没有参构造器,在子类的构造器中可不用super关键字,如果没有使用super关键字,系统会自动调用;

一个子类只能继承一个父类,可以用多层继承来实现多重继承,继承要用到extends;子类实例化前会先调用父类构造方法再用子类。

重载与覆写:重载 方法名相同参数不同,两个可以同时用,用参数区分开;覆写 方法名相同参数相同,即上一个方法作废。

覆写的两个函数的函数特征相同,重载的两个函数的函数名虽然相同,但函数特征不同。 函数特征包括函数名,参数的类型和个数。

final关键字:final声明的类不能有子类;final声明的方法不能被子类所覆写;final声明的变量即成为常量,常量不可以修改。

抽象类:包含一个抽象方法的类必须是抽象类;抽象类和抽象方法都要使用abstract关键字声明;抽象方法只需要声明而不需要实现;抽象类必须被子类继承,子类必须覆写抽象类中全部抽象方法。

对象向上转型:父类 父类 = 子类实例                向下转型:子类 子类 = 父类实例

      学习了接口用interface来定义一个接口。接口定义同类的定义类似,也是分为接口的声明和接口体,其中接口体由常量定义和方法定义两部分组成。

修饰符用于指定接口的访问权限,可选值为public。如果省略则使用默认的访问权限。接口名用于指定接口的名称,接口名必须是合法的Java标识符。一般情况下,要求首字母大写。

extends 父接口名列表:可选参数,用于指定要定义的接口继承于哪个父接口。当使用extends关键字时。接口中的方法只有定义而没有被实现。

接口被用来描述一种抽象;接口也被用来实现解耦。接口被用来实现抽象,而抽象类也被用来实现抽象,抽象类内部可能包含非final的变量,但是在接口中存在的变量一定是final,public,static的。

抽象类和接口不能直接实例化,是因为其内部包含了抽象方法,抽象方法本身是未实现的方法,所以无法调用。

通过对象多态性可以发现,子类发生了向上转型关系之后,所调用的全部方法,都是被覆写过的方法。

      学习了异常的处理方法:不处理,只有出现Runtime Exception可以不用try...catch处理;

立即处理;

延迟处理延迟处理:使用throw和throws关键字,当抛出到mian时就不能再抛出异常

throw和throws的区别throw自己手动抛出异常。或者说此处一定会出异常。

throws用在方法声明后,表示方法可能会抛出异常。

用throws抛出非运行时异常的方法,调用它的方法必须try-catch或者继续throws。

throws抛出的是运行时异常, 既不用throws,也不用try-catch。

Runtime Exception: 在定义方法时不需要声明会抛出runtime exception;

 在调用这个方法时不需要捕获这个runtime exception;

 runtime exception是从java.lang.RuntimeException或java.lang.Error类衍生出来的。

 例:nullpointexception,IndexOutOfBoundsException属于runtime exception

Exception:定义方法时必须声明所有可能会抛出的exception;

在调用这个方法时,必须捕获它的checked exception,不然就得把它的exception传递下去;

exception是从java.lang.Exception类衍生出来的。

例:IOException,SQLException就属于Exception

       学习了包装类:包装类分为两种类型:

对象型(Object的直接子类):Boolean、Character(char);

数值型(Number的直接子类): Byte、Double、Short、Long、Integer(int)、Float;

字符串与基本数据类型相互转换

字符串转换为基本数据类型

String变为int 类型(Integer类):public static int parseInt(String s) throwsNumberFormatException

String变为double类型(Double类):public static double parseDouble(String s) throwsNumberFormatException

String变为Boolean类型(Boolean类):public static boolean parseBoolean(String

基本数据类型转换为字符串

任何数据类型使用了"+"连接空白字符串就变为了字符串类型。

使用String类中提供的valueOf()方法,此方法不产生垃圾。

学习了多线程

线程操作我们可以通过Thread类和Runnable类来实现

Thread类实现了Runnable接口,在Thread类中,有一些比较关键的属性,比如name是表示Thread的名字,必须依靠Thread才能启动多线程。

可以通过Thread类的构造器中的参数来指定线程名字,priority表示线程的优先级,daemon表示线程是否是守护线程,target表示要执行的任务。

Thread类中常用的方法:

关系到线程运行状态的方法:start方法:start()用于启动一个线程,当调用start方法后,系统会开启一个新的线程来执行用户定义的子任务,这个过程中,会为相应的线程分配需要的资源。

run方法:run()方法是不需要用户来调用的,当通过start方法启动一个线程之后,当线程获得了CPU执行时间,便进入run方法体去执行具体的任务。

继承Thread类必须重写run方法,在run方法中定义具体要执行的任务。

sleep方法:Thread类在java.lang包中定义的。一个类只要继承了Thread类同时覆写了本类中的run()方法就可以实现多线程操作了,但一个类只能继承一个父类。

在使用Runnable定义的子类中没有start()方法,只有Thread类中才有。

还学习了File类File 类是 java.io 包中唯一代表磁盘文件本身的对象。File 类定义与平台无关的方法来操作文件,File类主要用来获取或处理与磁盘文件相关的信息如文件名、 文件路径、访问权限和修改日期等,

还可以浏览子目录层次结构。

File类构造方法:File(File parent,String child):根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。

File(String pathname):通过将给定路径名字符串转换成抽象路径名来创建一个新 File 实例。如果给定字符串是空字符串,则结果是空的抽象路径名。

File(String parent,String child):根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。

学习了字节流与字符流:字节流:字节流以操作byte类型数据为主,主要操作类为OutputStream类和InputSream类。字节输出流OutputStream是整个IO包中字节输出流最大父类字节输入流InputSream为抽象类,需依靠子类,

字符流:字符输出流Writer本身也是个抽象类,字符输入流Reader是用字符的方法从文件中取出数据,它也是个抽象类,

字节流和字符流除了操作代码不同外,字符流还比字节流多出缓存区。

字节流在操作的时候本身是不会用到缓冲区的,是与文件本身直接操作的,而字符流在操作的时候是使用到缓冲区的。

字节流在操作文件时,即使不关闭资源,文件也能输出,但是如果字符流不使用close方法的话,则不会输出任何内容。

字符流的缓冲区,可以使用flush方法强制进行刷新缓冲区,这时可以在不close的情况下输出内容。

     了解了抽象工具包AWT用于建立和设置java图形用户界面;了解可以更轻松构建用户界面的Swing;

要在Swing中创建一个窗口可直接使用JFrame类,可直接在其中设置窗体的各项属性,也可以在其中使用Dimension类和Point类设置窗口大小和显示位置;

在Swing中可利用标签组件JLabel设置文字显示和图片,更改JLabel文字样式可用Font类,设置图片可用lmagelcon类;

用JButton可直接在窗体中添加按钮;

      学习了布局管理器,分别为:

流式布局管理器FlowLayout,此布局会使所有的组件依次排列;

BorderLayout布局管理器,此布局将窗体分为东.西.南.北.中五个区,再将所需组件放入其中;

GridLayout布局管理器,此布局以表格形式进行管理,必须设置行与列,先满足行在看列;

CardLayout布局管理器,此布局将组件彼此重叠的进行布局;

不想用以上布局管理器可以通过绝对定位来完成布局,用setBounds()方法,此方法定义为:

public void setBounds(int x,int y,int width,int height)

     学习了JPanel:JPanel可以完成复杂的界面显示,在其中可以添加任意组件,然后将其加入到JFrame容器中即可显示。

JSplitPane:其主要功能是分割面板。

JTabbedPane:在一个面板上设置多个选项卡。

JScrollPane:为显示的内容加上一个滚动条。

文本组件JTextComponent:Swing中提供的文本输入框组件,操作方法见书p671 表18-19。

单行文本输入组件JTextField:其实现一个单行的输入文本。

密文输入组件JPsaawordField:将回显的类容设置为其他字符。

EventObject:所有的事件类都是EventObject类的子类。

WindowListener:它是专门处理事件的监听接口,包括窗体的所有变化。

监听适配器Adapter:用户继承该类后就可以根据自己的需要来覆写方法,就不需要覆写接口里的所有抽象方法了。

动作事件及监听处理ActionListener:处理按钮的动作事件,让按钮变得更加有意义。

    学习了 键盘事件及监听处理:

在Swing的事件处理中可以对键盘的操作进行监听,直接使用KeyListener接口即可,

如想取得键盘键入的内容,可通过KeyEvent取得,

鼠标事件及监听处理:

对鼠标操作监听,如鼠标按下松开等,使用MouseListener接口,

在鼠标事件触发后都会产·生MouseEvent事件,可从中得到鼠标的相关操作,

鼠标拖拽事件及监听处理:

可用MouseMotionListener接口完成鼠标拖拽操作,接口方法如下

vido mouseDragged(MouseEvent e) 在组建上按下并拖动时调用

vido mouseMoved(MouseEvent e)    鼠标移动到组件时调用

单选钮:JRadioButton 一种常见输入组件,可实现N选一功能。在Swing中可以使用JRadioButton完成一组单选钮的操作,

JRadioButton事件处理:可以使用ItemListener接口进行事件的监听,此方法中存在ItemEvent事件,

菜单组件:JMenu与JMenuBar:若要Java中实现记事本类菜单,可使用JMenu组件要使用JMenuBar组件。JMenuBar功能为摆放JMenu组件。

JMenultem:使用JMenultem可以为菜单中加入菜单项。

     虽然学了这么多,但对于这门科目的学习还远未到达终点,且不说上述学习类容是否完全掌握,单在写代码时无法彻底离开书本这点就说明我的掌握程度还不够高,

而且这本书的类容还远未讲完,但老师和助教非常照顾我们的感受,作业时间布置的很合理,会解答我们的疑难问题,助教也很负责,会提醒我们作业截至时间,

我觉得应该感谢他们的幸苦付出。

posted @ 2019-12-11 16:08  wangdian1  阅读(128)  评论(0编辑  收藏  举报