Java基础知识

写在前面的话

这两天呢,关于计算机网络、Java以及数据结构方面,自己都整理总结了一番简单的知识点,马上就要考试了,所以就此方式大概复习了一下,祝自己考试顺利QAQ

正文

类与对象

抽象

抽象就是忽略问题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。
使用关键字abstract来定义抽象类。

  • 过程抽象: 将整个系统的功能划分为若干部分,强调功能完成的过程和步骤,而隐蔽其具体的实现。
  • 数据抽象: 将系统中需要处理的数据和这些数据上的操作结合在一起,抽象成不同的抽象数据类型,每个抽象数据类型既包含了数据,也包含了针对这些数据的操作。

接口

允许创建者规定一个类的基本形式:方法名、自变量列表以及返回类型,但不规定方法主体,接口也包含了数据成员,但它们都默认为static和final,接口只提供一种形式,并不提供实施的细节。
使用关键字interface来声明接口,implements来实现接口。

接口和抽象类的区别

  • 接口中的所有方法都是抽象的,而抽象类可以同时包含抽象和非抽象的方法。
  • 类可以实现很多接口,但只能继承一个抽象类。
  • 接口中的成员函数默认是public的,抽象类的成员函数可以说private,protected或者public。
  • 从设计层面来说,抽象是对类的抽象,是一种模板设计,接口是行为的抽象,是一种行为的规范。
  • 接口中声明的变量默认都是final的,抽象类可以包含非final的变量。

封装

封装是一种信息隐蔽技术,利用抽象数据类型将数据和基于数据的操作封装在一起,目的在于将对象的使用者和设计组分开,使使用者不必知道行为实现的细节,只需使用设计者提供的消息来访问对象。

  • 清楚的边界,所有对象的内部信息被限定在这个边界内。
  • 接口,即对象对外界提供的方法,外界可以通过这些方法与对象进行交互。
  • 受保护的内部实现,即软件对象功能的实现细节,实现细节不能从类外访问。

图像化界面

要求

  • 掌握图形用户界面程序的编程方法、思路,学会在Applet和Application中引入图形用户界面
  • 了解Java的图形环境,绘制简单图形
  • 掌握Swing的结构和特点,学会使用布局管理、事件处理,以及常用的Swing组件

Applet的概念及基本方法

它一种嵌入html文档中的Java程序。
一个applet程序需要继承javax.swing包中的JApplet类,也可以继承老的awt组件中的Applet类,JApplet类属于新的Swing组件。

Java的绘图机制,及实现更为出色绘图效果的Java 2D

Graphics对象专门管理图形环境,Graphics是一个抽象类,与平台无关。
Java 2D API提供了高级的二维图形功能。

Swing的结构层次、布局管理,以及如何为其编写事件处理程序

JFame和JApplet都是Swing组件,分别代表窗口组件和Applet容器组件。
JFC是关于GUI组件和服务的完整集合, 主要包括:AWT/Java2D/Accessibility/Drag&Drop/Swing。

通常将javax.swing包里的Swing组件归为三个层次:顶层容器、中间层容器、原子组件。

  • 顶层容器: JFrame(实现单个主窗口)、JDialog(实现一个二级窗口,即对话框)、JApplet(在浏览器窗口中实现一个applet显示区域)
  • 中间层容器: 分为一般用途的(JPanel/ JScrollPane/…)和特殊用途的(JintermalFrame/JRootPane)
  • 原子组件: 是在图形用户界面中和用户进行交互的组件。分为三类,包括显示不可 编辑信息的Jlabel…有控制功能、可以用来输入信息的JButton…能提供格式化的信息并允许用户选择的JColorChooser

布局管理器能够将下级组件有秩序地摆在上一级容器中,使用关键字setLayout

事件处理

GUI是由事件驱动的,一些常见的事件包括:
移动鼠标、单双击鼠标各个按钮、单击按钮、拖动滚动条、关闭窗口…

编写事件处理程序时,需要注意事件源、事件监听器、事件对象

很多Swing组件都要使用的特色如Action对象、边框、外观风格、线程、定时器等。

常考面试题

Java虚拟机

Java虚拟机(Java Virtual Machine/JVM)是一个可以执行Java字节码的虚拟机进程,它有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的字节码,就可以在多种平台上不加修改地运行。

JRE 与 JDK

  • JRE:(Java Runtime Environment),是Java运行环境,包含了Java虚拟机,Java基础类库,是使用Java语言编写程序所需要的软件环境。
  • JDK:(Java Development Kit),是Java开发工具包,包含了JRE,编译器和其他的工具,可以让开发者开发、编译、执行Java应用程序。

方法覆盖和方法重载

  • 方法重写(Overriding):是说子类重新定义了父类的方法,方法重写必须有相同的方法名,参数列表和返回类型。
  • 方法重载(Overloading):是发生在同一个类里面的两个或多个方法的方法名相同但参数不同的情况。

两者的不同点在于:

  • 方法重写要求参数列表必须一致,而方法重载要求参数列表必须不一致。
  • 方法重写要求返回类型必须一致,而方法重载对此没有要求。
  • 方法重写只能用于子类重写 父类的方法,而方法重载用于同一个类中的所有方法。
  • 方法重写对方法的访问权限和抛出的异常有特殊的要求,而方法重载 在这方面没有任何限制。
  • 父类的一个方法只能被子类重写一次,而一个方法可以在所有的类中被重载多次。
  • 重写是运行时多态,重载是编译时多态。

构造函数的特点

  • 方法名和类名相同
  • 没有返回类型(修饰符void也不能有)
  • 通常被声明为公有的(public)
  • 可以有任意多个参数
  • 主要作用是完成对象的初始化工作
  • 不能在程序中显式地调用
  • 在生成一个对象时,系统会自动调用该类的构造方法为新生成的对象初始化
-------------The End-------------