课程总结

JAVA课程总结

一学期的Java学习就此完毕,学的东西很多,并且它遍布在实际生活中每个地方,但是我目前能掌握的东西还很少,真的觉得自己时间多,但是太懒了。后面学习的路还长,在此还是要谢谢学习上的领路人,李津老师和助教,没你们的指导,我们的水平只会更低。学无止境,加油,冲冲冲!

类与对象
类是客观存在的,抽象的,概念的东西。
对象是具体的,实际的,代表一个事物。例如:车是一个类,汽车,自行车就是他的对象。
关于类与对象的描述:类是对象的模版,对象是类的一个个体。
Java中定义类的方法:class 类名
用Java语法定义人类:public class Person{}
对象的定义方法:
1,对象声明:类名 对象名;
2,对象创建 对象名 =  new 类名(); new作用:分配内存空间。
也可以合写为:类名 对象名 = new 类名();

继承

继承:在Java类中只允许单一继承,即一个子类只可以继承一个父类,且子类将继承父类的非私有属性和方法,但父类与子类只能一对一,即一个父类下面只有一个子类,但是那个子类可以作为父类进行下一次的继承。
 
方法的重载与复写:在重载中,方法名称相同,参数的类型或者个数不同,而覆盖都是相同的。覆盖只有发生在父类与子类之间,而重载可以发生在同一类中。
super():
 1.super()从子类中调用父类的构造方法,this()在同一类内调用其它方法。
2.super()和this()均需放在构造方法内第一行,因此与this不能同时出现。

抽象类和接口

抽象类:
Java中可以创建一种类专门用来当作父类的类叫抽象类。包含一个抽象方法的类必须是抽象类;
抽象类和抽象方法都要使用abstract关键字声明;
抽象方法只需声明不需实现;
抽象类必须被子类继承,子类必须覆写抽象类中的全部抽象方法;
抽象类就是逼普通类多定义了一个抽象方法,除了不能直接进行对象的实例化操作之外并没有什么不同。
接口:
接口可以理解为Java中一种特殊的类;
使用它时必须通过子类,子类通过implements关键字实现接口;
一个子类同时实现两个接口,在子类中就必须同时覆写完两个接口中的全部抽象方法;
一个子类也可以同时继承抽象类和实现接口;
允许一个抽象类实现多个接口,一个接口不允许继承抽象类,允许一个接口继承多个接口。

异常

异常:异常时导致程序中断运行的一种指流,如果不对其处理会导致程序运行中断并造成一定的损失。
异常中,Throwable 类是 Java 语言中所有错误或异常的超类。Error和Exception 是 Throwable 的子类,Error用于指示合理的应用程序不应该试图捕获的严重问题。JAVA提供了异常处理机制异常处理机制能让程序在异常发生时,按照代码的预先设定的异常处理逻辑,针对性地处理异常,让程序尽最大可能恢复正常并继续执行,且保持代码的清晰。Java中的异常可以是函数中的语句执行时引发的,也可以是程序员通过throw 语句手动抛出的,只要在Java程序中产生了异常,就会用一个对应类型的异常对象来封装异常,JRE就会试图寻找异常处理程序来处理异常。Throwable类是Java异常类型的顶层父类,一个对象只有是 Throwable 类的(直接或者间接)实例,他才是一个异常对象,才能被异常处理机制识别。JDK中内建了一些常用的异常类,我们也可以自定义异常。

多线程

1. 通过继承class Thread实现多线程,class Thread中有两个最重要的函数run()和start()。run()函数必须进行覆写,把要在多个线程中并行处理的代码放到这个函数中。我们不能直接调用run()函数,而是通过调用start()函数来调用run()函数。
2.如果有一个类,它已继承了某个类,又想实现多线程,那就可以通过实现Runnable接口来实现。
Runnable接口只有一个run()函数。
把一个实现了Runnable接口的对象作为参数产生一个Thread对象,再调用Thread对象的start()函数就可执行并行操作。
 2. 通过synchronized实现资源同步
synchronized 关键字可以在整个class下进行锁定,避免static数据的同时访问。

JAVA IO

一、io流的三种分类方式
1.按流的方向分为:输入流和输出流
2.按流的数据单位不同分为:字节流和字符流
3.按流的功能不同分为:节点流和处理流
二、io流的四大抽象类:
字符流:reader writer
字节流:inputstream(读数据)
outputstream(写数据)
三、inputstream的基本方法
int read() throws ioexception 读取一个字节以整数形式返回,如果返回-1已到输入流的末尾
void close() throws ioexception 关闭流释放内存资源
long skip(long n) throws ioexception 跳过n个字节不读
四、outputstream的基本方法
void write(int b) throws ioexception 向输出流写入一个字节数据
void flush() throws ioexception 将输出流中缓冲的数据全部写出到目的地
五、writer的基本方法
void write(int c) throws ioexception 向输出流写入一个字符数据
void write(string str) throws ioexception将一个字符串中的字符写入到输出流
void write(string str,int offset,int length)
将一个字符串从offset开始的length个字符写入到输出流
void flush() throws ioexception
将输出流中缓冲的数据全部写出到目的地
六、reader的基本方法
int read() throws ioexception 读取一个字符以整数形式返回,如果返回-1已到输入流的末尾。

这是我们目前所学的常用的一部分,io流里面还有很多其它的东西。

组件和容器

组件(component)是图形界面的基本元素,用户可以直接操作,例如按钮。容器(Container)是图形界面的的复合元素,容器可以包含组件,例如面板。
Swing中预定义的窗口类JFrame是一种容器类,程序创建的JFrame或JFrame子类的对象就是窗口。
Container类中定义了add()方法,大多数容器都可以用add()方法向容器添加组件。

另外还有几个布局管理器:

FlowLayout:FlowLayout布局是将其中的组件按照加入的先后顺序从左到右排列,一行满之后就转到一下行继续从左到右排列,每一行中的组件都居中排列。

BorderLayout:BorderLayout布局策略是把容器内的空间简单划分为东“East”,西 “West”,南 “South”,北 “North”,中 “Center”五个区域。加入组件时,都应该指明把组件放在哪一个区域中。

GridLayout:GridLayout布局是把容器划分成若干行和列的网格状,行数和列数由程序控制,组件放在网格的小格子中。

CardLayout:采用CardLayout布局的容器虽可容纳多个组件,但是多个组件拥有同一个显示空间,某一时刻只能显示一个组件。

绝对定位:通过设置绝对坐标的方式完成布局。

总的来说,java最核心的核心就是面向对象思想,只要能够掌握好面向对象这一核心概念,基本上java的学习就算入门了。
java所有的对象都存在于它所属的类。而每个类都有它自身的属性和方法,我们通过对对象的属性和方法的归纳将特定的对象归为一类。我们只需要建立一个类,给这个类定义好对象需要的属性和方法,所有该类对象都可以通过new类来快速使用它需要的属性和方法。从而大大减少代码量,并且让界面更简洁,而且当我们再次需要用到和该类相关的属性和行为时,我们只需要去调用它,相当之方便。
java提供了继承、多态、封装、抽象等多种方法,让类与类之间的使用和访问更加灵活,并且程序在执行的过程中也更加安全。
java另一大优势,是其经过多年的发展,类库相当丰富,前辈们为我们写好了各种方法和开发中需要的各种类,我们只需要懂得调用就可以轻松实现很多功能,大大减少了开发时间。
作为一个java程序员另外一件幸福的事就是不需要担心内存不足问题,因为其有着强大的垃圾回收(GC)机制。
此外,其基于半编译(class二进制文件)半解释(每个版本都有针对不同操作系统的解释器)的特性,java拥有强大的跨平台性,一次编译随处运行。并且,其异常处理机制,让java代码编写的程序拥有着强大的健壮性。

原文地址:https://www.cnblogs.com/Jay-h/p/12035630.html