|程序:通常,为了完成某项特定的任务需要进行一系列的具体操作.将这些操作按一定的顺序排列起来形成的操作序列就称为程序.
|程序设计是指设计、编写和调试程序的方法与过程。由于程序是软件的本体,因此软件的质量主要通过程序的质量体现,因此,研究一种切实可行的程序设
计方法至关重要。
|结构化程序设计的特点:程序设计=数据结构+算法.程序内容=过程+过程调用.审视问题域的视角与常规不同.抽象级别较低.封装性较差.可重用性较低
|面向对象程序设计方法是指用面向对象的方法指导程序设计的整个过程,所谓面向对象是指以对象为中心,分析、设计及构造应用程序的机制。因此,每个
对象都可以用属性和方法(操作、行为)描述。
|可改善程序的可维护性.4 特:抽象性.封装性.继承性.多态性|面向对象.分布式.健壮性.结构中立.安全性.可移植性.解释执行.高性能
|Java 语言由语法规则和类库两部分组成。Java 是解释型的高级编程语言 1、利用编辑器编写 Java 源程序 2、利用编译器将源程序编译成字节码 3、利用虚
拟机(解释器)运行 Java 程序分为 Applet、Application 两类
|Java 的标识符由字母、数字、_和$组成,长度不限。其中字母可以是大写或小写的英文字母,数字为 0 到 9。标识符的第一个字符必须为字母、_ 或 $ 符
号。标识符大小写敏感。
|char、false、Private、for、while、new、If 、 Else、Then、void、this、class 、import 、extends 、double 、int 、try 、throw
|类名和接口名:如果名字由多个单词构成,则每个单词的首字母大写,其余字母小写。方法名和变量名:如果名字由多个单词构成,则除第一个单词的首字
母需要小写外,其余单词的首字母均大写。包名:每个字母均小写。常量名:每个字母均大写。如果名字由多个单词构成,则每个单词之间用下画线“—”
隔开。
|字节型 byte8 短整型 short16 整型 int32 长整型 long64 单精度浮点型 float32 双精度浮点型 double64 字符型 char16 布尔型 boolean8(初值为假)
|37.2%10=7.2"abc"+"def"="abcdef"
|&非简洁与、|非简洁或!逻辑非、^异或。对象运算符 instanceof 用来判断一个对象是否是某一个类或者其子类的实例
|switch 后面括号中的表达式必须为 byte、char、short、int 类型,而不能用浮点类型或 long 类型,也不能为一个字符串。
|用 static 修饰的成员方法属于整个类的成员方法(又称为类方法),其特点为:1 调用该方法时,前缀可以使用类名 2 该方法的代码段随着类加载在内存中
3 由于该方法属于整个类,所以,它不能处理和调用属于对象的实例成员,而只能处理或调用 static 成员。
|类是对具有相同属性和行为的对象特性的描述。属性是对象的静态部分,行为是对象的动态部分。在 Java 中,用类的数据成员(域)表示静态属性;用类
的成员方法(方法)表示动态行为。
|原则:1 将能够反映实体特征且与需求有关的属性和行为设计成数据成员和成员方法;2 应该将数据成员的访问属性设计成 private;成员方法的访问属性
设计成 public;3 一定要设计构造方法,包含有参数和无参数。参数格式要适合人们的使用习惯;4 对于每一个数据成员都应该提供一套 set_()和 get_()成
员方法,以便外界对其操作;5 设计一个 toString(),方便对象的输出。
|用 abstract 修饰的类被称为抽象类。所谓抽象类是指没有完整实现类定义的类。它的主要用途是用来描述概念性的内容,这样可以提高开发效率,更好地
统一用户接口。需要注意的是:不能创建抽象类的实例对象。抽象方法必须存在于抽象类之中。使用抽象类的好处:隐藏具体的操作细节,有利于软件的维
护和扩展。
|构造方法:初始化对象,new 时系统自动调用,特殊的成员方法 静态初始化器:初始化类,加载类时系统调用,不是成员方法
|在 Java 语言中,同一个成员方法名在同一个作用域中可以被定义多次,但要求参数表不能完全一样。调用成员方法时,系统将通过成员方法名和参数确定
所调用的具体方法。这种现象叫做成员方法的重载。
|在 Java 程序中,创建类对象需要经过声明、实例化(new)和初始化三个步骤。2 使用对象包括引用类对象的数据成员和成员方法。格式为类对象名.成员
名。3 类对象的清除由系统完成,不需要用户干预。
|在 Application 应用程序中,必须有一个且仅有一个 main( )。当一个程序文件中包含一个或多个类时,程序文件的名称必须与包含 main( )方法的类名相
同。main( )方法是 Java 程序的入口点。
|继承机制是实现软件可重用的基石,是提高软件系统的可扩展性和可维护性的主要途径。所谓继承是指一个类的定义可以基于另外一个已经存在的类,即子
类基于父类,从而实现父类代码的重用。在 Java 语言中,通过定义子类支持继承性。
|用 protected 修饰的成员可被三种类引用:该类自身,同一个包中的其他类,在其他包中的该类的子类 用 private 修饰的数据成员和成员方法只能被类
自身的成员方法引用,而不能被任何其他类(包括子类)引用.公用类应该设置成 public,类中作为接口的成员方法应该设置成 public,类中的数据成员不应
该设置成 public,否则将破坏对象的安全性、降低数据的隐藏程度
|所谓多态是指不同的类对象收到同一个消息可以产生完全不同的响应效果的现象。利用多态机制,用户可以发送一个通用的消息给各个类对象,而实现细节
由接收对象自行决定。这样,同一个消息可能会导致调用不同的方法。多态性有助于增加软件系统的可扩展性、自然性和可维护性。在 Java 语言中,主要利
用子类覆盖父类的成员方法的方式支持多态性。
|同一个成员方法名在同一个作用域中可以被定义多次,但要求参数表不能完全一样。公用类应该设置成 public。类中作为接口的成员方法应该设置成。public
类中的数据成员不应该设置成 public 默认允许同一个包
|this 和 super 常用来指代父类对象和子类对象的关键字。Java 系统默认,每个类都缺省地具有 null,this, super 三个域。|null 代表“空”,在声明一个
对象但尚未为其开辟存储单元时,可以指定这个对象为 null。|this 表示的是当前对象本身,或者说是当前对象的一个引用。通过引用可以顺利地访问到对象,
包括访问、修改对象的域、调用对象的方法。
|类与类的关系:关联关系(两个或多个类之间的一种特定关系,它描述了各个类对象之间相互依赖的关系),聚合关系(普通聚合:被聚合的子系统允许被拆卸
和替换。强聚合:被聚合的子系统不允许被拆卸和替换。),泛化关系.( 泛化描述了两个类之间的“一般-特殊”关系。)所有的类都是 Object 直接或间接的
子类.接口的继承:interface D extends B,C 类必须实现接口继承的全部方法。包是一组相关的类和接口的集合。
|java.awt.event.ComponentListener(组件监听器)java.awt.event.ContainerListener(容器监听器)java.awt.event.FocusListener(组件焦点监听器)
java.awt.event.KeyListener(键盘监听器)java.awt.event.MouseListener(鼠标监听器)java.awt.event.MouseMotionListener(鼠标移动监听器)
java.awt.event.WindowListener(窗口监听器) java.awt.event.ActionListener(组件动作监听器)java.awt.event.AdjustmentListener(组件值调整
监听器)java.awt.event.ItemListener(组件项目改变监听器)java.awt.event.TextListener(组件文本监听器)
|采用基于代理(委托)的事件模型,即产生事件的对象可以委托另外一个类对象对事件做出响应,其基本原理是:组件激发事件,事件监听器监听并进行处理。
|1 让 GUI 组件充当事件监听器 2 用单独的类做事件监听器 3 用内部类来做事件监听器 4 用匿名内部类做事件监听器//事件,事件源,监听器
|java.awt 与绘图相关的类 java.event 与事件处理相关的类 javax.swing 与 Swing 组件相关的类|绘图类 Graphics 颜色类 Color 字体类 Font
|JFrame 容器构造方法:JFrame( ),JFrame(String title) 设置点击关闭窗口按钮的操作效果 void
|setDefaultCloseOperation(int)DO_NOTHING_ON_CLOSE,HIDE_ON_CLOSE,DISPOSE_ON_CLOSE.EXIT_ON_CLOSE
|FlowLayout (流程式)布局管理器 BorderLayout (边框式)布局管理器 CardLayout (卡片式)布局管理器 GridLayout (网格式)布局管理器.
|代表程序执行过程中,当发生意料之外的情况时,所导致的程序执行时期错误。Error 类类对象由 Java 虚拟机生成并抛出和 Exception 类类对象由应用程
序处理或抛出。捕获、抛出和处理
|寻求软件系统对现实系统的真正模拟,提高可重用性,增强可扩展性,降低复杂度,保证可靠性,注重可读性
| Math 类:sqrt(double a); ceil(double a); //大于等于参数的最小整数; floor(double a); //求小于等于参数的最大整数;rint(double a); //小于
等于 5 舍,大于 5 入; round(float a) ;//求近似数,四舍五入;abs(long a);max(int a, int b);min(int a, int b) ;pow(double a, double b); //
求 a 的 b 次方;
|小应用程序 Applet,输出显示在 public void paint(Graphics g)中,用 g.drawString(“字符串”,X 坐标,Y 坐标);应用程序 Application,显示要用
System.out.println(“字符串”);
|两个监听器接口 1MouseListener(鼠标监听器接口,5 个方法):mouseClicked(MouseEvent e)mousePressed(MouseEvent e)mouseRelease(MouseEvent
e)mouseEntered(MouseEvent e)mouseExited(MouseEvent e)2MouseMotionListener(鼠标移动监听器接口,2 个方法):mouseDragged(MouseEvent
e)mouseMoved(MouseEvent e)
setSize(300,200);
extends JFrame
private Color color; private Point origin;
package shape;
abstract class Shape //图形
{
public void setShape(Color newcolor,Point neworigin)
{color=newcolor; origin=neworigin;}
public Color getColor(){return color;}
Point getOrigin(){return origin;}
public String toString(){return
color.toString()+origin.toString();}}
----------------------------------------方程
import java.awt.*; import java.awt.event.*; import javax.swing.*;
public class compute_FC
{public static void main(String args[])
{MyFrame frame=new MyFrame( );
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setVis
ible(true);}}
class MyFrame extends JFrame implements ActionListener
{JLabel prompta,promptb,promptc,output;
JTextField inputa,inputb,inputc;
Container contentPane;JPanel panel;JButton button1;
public MyFrame( )
{setTitle("Application Graphics Frame");
contentPane=getContentPane( );panel=new JPanel( );
prompta=new JLabel("Enter a Number please:");inputa=new
JTextField(20);…
output=new JLabel("");
button1=new JButton("CAL");
panel.add(prompta);panel.add(promptb);…
contentPane.add(panel);
button1.addActionListener(this); }
public void actionPerformed(ActionEvent e){ int a,b,c;
a=Integer.parseInt(inputa.getText( ));
b=Integer.parseInt(inputb.getText( ));
c=Integer.parseInt(inputc.getText( ));
output.setText("\nThe result is " + "X1= " +
(-b+Math.sqrt(b*b-4*a*c))/(2*a) +", "+ "X2=
"+(-b-Math.sqrt(b*b-4*a*c))/(2*a) )}}
------------------画线
package draw;import java.awt.*;import java.awt.event.*;import
javax.swing.*; import java.awt.geom.*;
class DragDrawFrame
{public DragDrawFrame(){
setTitle("DragDraw");setSize(400,300);
DragDrawPanel panel=new DragDrawPanel();
getContentPane().add(panel);}}
class DragDrawPanel extends JPanel
{ int x1,x2,y1,y2;
public DragDrawPanel()
{ addMouseMotionListener(new MouseMotionListener(){
public void mouseMoved(MouseEvent event){};
public void mouseDragged(MouseEvent event){
Graphics2D g=(Graphics2D)getGraphics();x2=event.getX();
y2=event.getY();
g.draw(new Line2D.Double(x1,y1,x2,y2));x1=x2; y1=y2;
g.dispose();}});
addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent event){
x1=event.getX();y1=event.getY();}});}}
public class DragDrawTest
{{public static void main(String args[])
{DragDrawFrame frame=new DragDrawFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.show();
}}
------------------------画图
public class PainterDemo extends JFrame{
JToggleButton[] button=new JToggleButton[3]; //按钮组
PainterPanel painter=new PainterPanel(); //绘图面板
public PainterDemo(){
super("Java 画图程序"); //调用父类构造函数
String[] buttonName={"直线","椭圆","矩形"}; //按钮文字
DrawShapeListener buttonListener=new DrawShapeListener(); //按钮事
件
JToolBar toolBar=new JToolBar(); //实例化工具栏
ButtonGroup buttonGroup=new ButtonGroup(); //实例化按钮组
for (int i=0;i