java基本概念.docx
《java基本概念.docx》由会员分享,可在线阅读,更多相关《java基本概念.docx(15页珍藏版)》请在冰豆网上搜索。
java基本概念
java基本概念
Java基本概念
1.面向过程的程序设计:
所谓面向过程是指从功能的角度分析问题,将待解决的问题空间分解成若干个功能模块,每个功能模块描述一个操作的具体过程。
结构化程序设计方法就是面向过程的一个典型代表。
2.结构化程序设计方法的核心:
自顶向下、逐步求精的开发方法;模块化的组织方式;结构化的语句结构
3.结构化程序设计的特点:
程序设计=数据结构+算法
程序内容=过程+过程调用
4.面向对象的程序设计:
面向对象程序设计方法是指用面向对象的方法指导程序设计的整个过程,所谓面向对象是指以对象为中心,分析、设计及构造应用程序的机制。
5.面向对象程序设计的优点:
实现对现实世界客体的自然描述;可控制程序的复杂性;可增强程序的模块性;可提高程序的重用性;可改善程序的可维护性.面向对象程序=对象+消息.
6.抽象:
指从事物中,舍弃个别的、非本质的属性,抽取出共同的、本质的属性的过程,它是形成概念的必要手段。
抽象包括过程抽象和数据抽象。
过程抽象是指功能抽象,即舍弃个别的功能,抽取共同拥有的功能。
数据抽象是一种更高级别的抽象方法,它将现实世界中存在的客体作为抽象单元,其抽象内容既包括客体的属性特征,也包括行为特征,它是面向对象程序设计所采用的核心方法。
模块化和信息隐蔽是数据抽象过程的两个主要概念。
7.封装:
封装是指将现实世界中某个客体的属性与行为聚集在一个逻辑单元内部的机制。
利用这种机制可以将属性信息隐藏起来,外界只能够通过提供的特定行为接口改变或获取其属性状态。
在面向对象的程序设计中,封装是指将对象的属性和行为分别用数据结构和方法描述,并将它们绑定在一起形成一个可供访问的基本逻辑单元。
8.对象:
对象是用来描述现实世界中客体的部件,是面向对象软件系统在运行时刻的基本单位。
为了区分属于同一个类的不同对象,每个对象都有一个惟一的标识。
对象是具有特殊属性和方法(行为方式、操作)的实体。
是现实世界中某个具体的物理实体在计算机逻辑中的映射和体现。
9.重载:
在Java语言中,同一个成员方法名在同一个作用域中可以被定义多次,但要求参数表不能完全一样。
调用成员方法时,系统将通过成员方法名和参数确定所调用的具体方法。
这种现象叫做成员方法的重载。
10.类:
类是一组具有相同属性特征的对象的抽象描述,是面向对象程序设计的又一个核心概念。
类是对象抽象的结果。
有了类,对象就是类的具体化,是类的实例。
类可以有子类,同样也可以有父类,从而构成类的层次结构。
类之间主要存在三种关系。
它们是:
关联、聚合和泛化。
11.消息:
消息是一个对象要求另一个对象实施某项操作的请求。
在一条消息中,需要包含消息的接收者和要求接收者执行哪项操作的请求,而并没有说明应该怎样做,具体的操作过程由接收者自行决定。
能被任何其他类(包括子类)引用。
应该将不希望他人随意引用或修改的数据成员设置成private,以此将它们隐藏起来,从而提高程序的安全性和可维护性。
17.java的类定义:
类是对具有相同属性和行为的对象特性的描述。
属性是对象的静态部分,行为是对象的动态部分。
其中用类的数据成员表示静态属性,用类的成员方法表示动态行为。
18.类与类之间的关系:
☐整体-部分(聚合)用成员变量实现
章—节—段—句—词或标点符号
☐一般-特殊(泛化)用定义子类实现
动画—二维动画、三维动画
☐依赖(关联)用成员变量实现
课程—教师—学生
19.this与super:
•this和super常用来指代父类对象和子类对象的关键字。
Java系统默认,每个类都缺省地具有null,this,super三个域。
•null代表“空”,在声明一个对象但尚未为其开辟存储单元时,可以指定这个对象为null。
•this表示的是当前对象本身,或者说是当前对象的一个引用。
通过引用可以顺利地访问到对象,包括访问、修改对象的域、调用对象的方法。
•super表示的是当前对象的直接父类对象,是当前对象的直接父类对象的引用。
直接父类是相对于其他“祖先”类而言的。
20.子类与父类的属性与方法:
子类继承父类中除private部分的所有内容;
子类中新增加的属性和方法是对父类的扩展;
子类中定义的与父类同名的属性是对父类属性的隐藏,同名的成员方法是对父类方法的重载或覆盖。
21.类的成员覆盖:
类成员覆盖是指在子类中新增加的数据成员的名称与父类相同,成员方法与父类定义的原型一样;
若希望引用父类中的相应成员,需要使用关键字super作为前缀。
22.多态性的实现:
多态性出现在继承关系中;
子类覆盖父类的成员方法;
若在程序中调用该方法,则根据对象所引用的实例所属类确定最终调用的代码块。
23.异常的概念:
异常是指程序运行过程中出现的影响程序正常运行的意外或特殊的事件。
注意:
不包含常见的语法错误、逻辑错误。
语法错误由编译程序检查并给予提示。
若一个程序存在语法错误,将不能通过编译。
逻辑错误常常不影响程序的执行,但运行结果不正确。
24.Java对异常的处理机制:
抛出异常------》捕获异常------》处理异常
⏹抛出异常:
当检测到错误时,创建一个与该错误对应的异常对象并将其提交给运行系统的过程。
⏹捕获异常:
当抛出异常后,系统将寻找处理该异常的代码块。
一旦找到,就将抛出的异常对象作为参数传递给该代码块,以便处理。
这个过程被称做捕获异常。
⏹处理异常:
根据接收的异常对象信息,给予相应的处理过程。
25.接口
◆接口是方法定义和常量值的集合,接口中没有方法的实现(不能含有任何代码)。
所有的方法需要在子类中实现。
◆从本质上讲,接口是一种特殊的抽象类。
◆接口可以实现类间多继承结构。
接口内部只能定义公有的抽象方法(publicabstract)和公有的、静态常量(publicstaticfinal),因此所有的方法需要在子类中实现。
26.接口的作用:
◆规定软件接口,促使编程行为的规范。
◆实现多继承。
Java只支持单继承,不允许多重继承。
Java中可通过接口来实现多重继承,即一个类可以实现多个接口。
27.接口的实现:
接口中的抽象方法必须由类来实现:
在类的声明中,用implements子句来声明该类要实现的一个或多个接口。
若实现某接口的类不是“abstract”类,则在类定义中必须实现指定的接口中的所有抽象方法,为这些抽象方法写出方法体,方法的声明部分必须和接口中方法声明完全一致。
若实现某接口的类是“abstract”类,则该类不必实现接口中的所有抽象方法,可定义该抽象类的子类(抽象或非抽象)来实现。
接口可以继承,而且一个接口可以继承多个接口,这些父接口之间用逗号分隔。
27.包:
包是一组相关的类和接口的集合。
将类和接口分装在不同的包中,可以避免重名类的冲突,限定包之间类的访问权限,更有效地管理众多的类和接口。
28.包的创建与使用:
格式:
packagepk1[.pk2[.pk3...]];
包是分层管理的,其含义类似于目录。
若使用某个包中的类,则需要在程序的前面(在package之后)上写:
import包名;
若需要将某个类放在某个包中,则需要在程序的首行写上:
package包名;
29.StringBuffer类:
StringBuffer类的每个对象可以进行扩充和修改,因此在创建对象时不一定要给出字符串初值。
30.设计用户界面步骤:
(1)创建和设置组件
(2)将组件加入到容器中
(3)布局组件
(4)处理由组件产生的事件
31.容器:
用来放置其他组件的组件。
32.组件:
放置在容器中的用户界面元素
33.在Swing中,用JFrame类实现窗口框架(顶层容器)。
正像前面讲述的那样,不能直接将可视组件放置在顶层容器中,而需要与内容窗格(ContentPane)配合使用。
在JFrame类中,提供了两种格式的构造方法。
JFrame():
创建初始不可见且标题为空的窗口框架。
JFrame(Stringtitle):
创建初始不可见且标题为title的窗口框架。
34.JFrame类中部分成员方法:
⏹设置点击关闭窗口按钮的操作效果
voidsetDefaultCloseOperation(int)
DO_NOTHING_ON_CLOSE
HIDE_ON_CLOSE
DISPOSE_ON_CLOSE
EXIT_ON_CLOSE
⏹设置窗口大小
voidsetSize(intwidth,intheight)
voidsetSize(Dimensionsize)
⏹获取内容窗格
ContainergetContentPane()
⏹将窗口设置为最佳大小
pack()
35.JPanel类:
JPanel容器又称为面板容器。
其主要特点有:
❑不能作为顶层容器;
❑可以嵌套放置;
❑组件直接放置在容器中;
36.面板容器是一种常用的容器种类。
在默认情况下,除了背景外,它不会自行绘制任何东西。
默认情况下,面板容器是不透明的。
可以调用setOpaque()方法,将其设置为透明的。
如果面板容器是透明的,将没有背景,这样可以使位于该容器覆盖区域下面的组件显示出来。
在JPanel类中,提供了两种格式的构造方法:
JPanel():
创建一个布局管理器为FlowLayout的面板容器。
JPanel(LayoutManagerLayout):
创建一个布局管理器为Layout的面板容器。
37.布局管理器:
❑对于不同的操作平台,显示文字、图形的方式可能有所不同。
如果显式地指定一个组件的绝对位置和大小,有可能结果不可预测。
为此,Java语言提供了布局管理器来管理放置在容器内部的各组件大小及排列布局。
❑利用setLayout()设置布局管理器
❑每种容器都有一种默认的布局管理器
❑若不使用布局管理器,setLayout(NULL)
38.常用的布局管理器:
FlowLayout(流程式)布局管理器
BorderLayout(边框式)布局管理器
CardLayout(卡片式)布局管理器
GridLayout(网格式)布局管理器
39.标签组件(JLabel)
JLabel提供的主要构造方法:
JLabel()
JLabel(Iconicon)
JLabel(Iconicon,inthorizontaAlignment)
JLabel(Stringtext)
JLabel(Stringtext,inthorizontaAlignment)
JLabel(Stringtext,Iconicon,inthorizontaAlignment)
40.按钮组件(JButton)
使用按钮组件需要经过下列基本步骤:
(1)创建按钮对象;
(2)将按钮对象添加到容器中;
(3)设置响应点击按钮的操作。
41.JButton类
JButton类定义了最常见的按钮,用来响应用户的某项操作请求。
JButton()//创建没有文字和图标的按钮对象
JButton(Iconicon)//创建一个图标为icon的按钮对象
JButton(Stringtext)//创建一个文本串为text的按钮对象
idDefaultButton()//检测某个按钮是否为默认按钮
setDefaultButton(Buttondefault)//设置default按钮为默认按钮
42.JCheckBox(处于一组的复选按钮)
在Swing中,复选按钮用
JCheckBox类实现。
与JButton相同,可以为之设置文本串和图像。
通常,将多个复选按钮组合成一组,对于处于一组中的复选按钮,每一时刻既可以选择一项,又可以选择多项。
43.文本框组件(JTextField)
文本框是接收用户输入的一种组件,在Swing中提供了多种文本框组件,它们都是由JTextComponent类派生的子类实现。
44.JTextField类
构造方法:
JTextField()
JTextField(Stringtext)
JTextField(Stringtext,intcol)
JTextField(intcol)
45.JTextField类主要的成员方法:
StringgetText()//将返回文本框中的文本串。
voidsetText(Stringtext)//将文本框中的内容设置为text。
booleanisEditable()//将检测文本框是否可编辑。
如果返回true,表示该文本框可编辑。
voidsetEditable(booleaneditable)//将设置文本框的可编辑性。
如果editable为true,表示将该文本框设置为可编辑。
intgetColumns()//将返回文本框所显示的字符列数。
voidsetColumns(intcol)//将文本框能够显示字符的列数设置为col。
46.事件处理机制:
采用基于代理(委托)的事件模型,即产生事件的对象可以委托另外一个类对象对事件做出响应,其基本原理是:
组件激发事件,事件监听器监听并进行处理。
47.事件处理的基本过程:
调用特定的事件处理方法
放弃事件
是否监听
processEvent()
dispatchEvent()分发事件
事件源
系统事件队列
48.事件:
事件是系统对其可能出现的某种状态或某种操作的预先定义。
例如:
当点击Quit菜单项时,产生一个事件并启用事件监听器进行处理。
49.事件监听器:
事件监听器是一个包括事件处理代码的类对象。
事件监听器是实现了监听接口的类对象。
常用的监听接口有11个,它们位于java.awt.event包中。
其中,每个接口内部包含了处理相关事件的若干个抽象方法。
通常,每个事件类对应一个监听接口,而事件类中的每个具体事件类型都有一个具体的抽象方法与之对应。
事件源委托监听器对象处理事件。
50.代理模型的三要素:
l事件源:
产生事件
l事件:
具体的事件类型
l事件监听器:
处理事件
51.WindowListener接口对应WindowEvent类
在这个接口中,包含了处理每一种具体窗口事件的方
法。
当某个事件发生时,将自动地调用相应的方法。
windowOpened(WindowEvente)
⏹windowClosing(WindowEvente)
⏹windowClosed(WindowEvente)
⏹windowActivated(WindowEvente)
⏹windowDeactivated(WindowEvente)
⏹windowIconfied(WindowEvente)
⏹windowDeiconfied(WindowEvente)
52.WindowEvent
包含窗口事件类。
每种事件的ID定义:
⏹WINDOW_OPENED:
打开被窗口
⏹WINDOW_CLOSING:
窗口关闭
⏹WINDOW_CLOSED:
窗口被关闭
⏹WINDOW_ACTIVATED:
窗口被激活
⏹WINDOW_DEACTIVATED:
窗口失活
⏹WINDOW_ICONIFED:
窗口被极小化
⏹WINDOW_DEICONIFIED:
恢复窗口
53.Java程序中处理事件的基本步骤:
1、importjava.awt.event.*;
2、创建实现监听器接口的监听器类
3、将监听器对象注册到希望处理该事件的组件监听器列表中。
54.事件对象和事件监听器
l在发生事件时,事件对象将从事件源传递到事件监听器,事件对象包含有关事件源的信息以及一些附加信息。
l事件监听器接口提供了事件发生时可以调用的成员方法;一个监听器类可以实现一个或多个事件监听器接口,我们将其称为事件监听器类,该类的对象称为监听器。
55.创建事件监听器的四种方法:
▪让GUI组件充当事件监听器
▪用单独的类做事件监听器
▪用内部类来做事件监听器
▪用匿名内部类做事件监听器
56.适配器:
按照Java语法的规定,监听器类需要实现接口中的全部方法,这样就需要我们将没有特别操作要求的那些事件对应的成员方法设计为空。
很显然,这会增加程序的复杂性,降低程序的清晰度。
为了解决这个问题,Java提出了适配器的概念。
所谓适配器是指API提供的一种实现了监听器接口的类。
57.类定义的基本要求:
☐对象=属性(静态)+行为(动态)
☐类=域(成员变量)+(成员)方法
☐抽象:
公共属性和方法
☐封装:
私有成员变量+(set,get)
☐类设计应该包含:
❑构造方法(无参,有参)
❑set()、get()、toString()
❑基本操作
58.GUI应用程序:
绘制图形必须先获得绘图类对象,它是Graphices类的子类对象。
1、隐式创建方法
对于Swing组件,利用paintComponet()方法的参数获取
2、显式创建方法
调用Component类的getGraphics()
Graphics2Dg=(Graphics2D)getGraphics();
此时要负责释放g.dispose()
例题:
276页
59.静态变量(类变量)
静态数据成员在加载类时分配空间。
它属于类(又称为类变量,而非静态变量称为实例变量),不属于某个特定的对象,因此可以通过类进行访问。
往往将属于该类的每个对象共用的数据成员声明成static。
60.用static修饰的成员方法属于整个类的成员方法(又称为类方法),其特点为:
⏹调用该方法时,前缀可以使用类名
⏹该方法的代码段随着类加载在内存中
⏹由于该方法属于整个类,所以,它不能处理和调用属于对象的实例成员,而只能处理或调用static成员。
70.修饰符——final
用final声明的类(最终类)不能再有子类;成员方法(最终方法)不能再被子类覆盖;数据成员(最终属性)初始化后,不能再被重新赋值。
用final声明的作用:
⏹用final声明的类:
通常是一些有固定作用、用来完成某种标准功能的类;
⏹用final声明的属性:
通常用来描述属于该类对象的一些常量值;
⏹用final声明的方法:
用来限制子类对父类方法的重载,确保程序操作的安全性和正确性。
71.抽象类
用abstract修饰的类被称为抽象类。
所谓抽象类是指没有完整实现类定义的类。
它的主要用途是用来描述概念性的内容,这样可以提高开发效率,更好地统一用户接口。
需要注意的是:
不能创建抽象类的实例对象。
抽象方法必须存在于抽象类之中。
72.抽象类小结
⏹抽象方法一定要位于抽象类中;
⏹设置抽象类的目的是概念化具有共性的所有事物,并为之设置统一的用户接口,而具体操作的实现在子类中;
⏹抽象类中的抽象方法应该是每个子类都具有的操作,但每个子类的具体操作内容不一样;
⏹使用抽象类的好处:
隐藏具体的操作细节,有利于软件的维护和扩展。
73.Java程序设计语言的基本特征:
Ø简捷性安全性
Ø面向对象可移植性
Ø分布式解释执行
Ø健壮性高性能
Ø结构中立多线程
Ø动态性