第1章 Java语言概述

单词和缩写

  JVM(Java virtual Machine) Java虚拟机

  HTML(HyperText Markup Language) 超文本标记语言

  JDK(Java Development Kit) Java语言开发工具包

  HTTP FTP TCP IP

  Application bytecode

  Applet中的方法(method):

  init( ),paint( ),start( ),stop( ),destory( )

  HTML HEAD TITLE BODY <APPLET> </APPLET> BR P  SPACE HR

  A HREF= IMG SRC TABLE TR TH COLSPAN ROWSPAN HALIGN VALIGN

 FONT face size color  bgcolor backgroud bgsound

  hypertext hypermedia hyperlink link alink vlink

网页制作

 1. Word:所见所得。

 2. FrontPage:所见所得,网站管理。

      可以把控件插件视频插入网页 kjcj

 3. HTML:超文本标记语言(HyperText Markup Language),

        完成特殊功能,方便编辑修改HTML文档。

        互联网数据描述语言的统一格式。

  * 超文本:HyperText不按文本顺序阅读,可按链接进入文档各部分。

1.1.3 Java语言的特点

  1.平台独立性(P2)

     Java语言是C++语言的简化和发展,面向网络的编程语言。

     可以开发Web上的Java语言的小程序。

     Java语言解释器与硬件、软件平台有关。

     互联网、各种操作系统都带

   Java虚拟机(Java virtual Machine)。

  2.面向对象(P3)

    用类定义对象的状态和行为的模板,Java语言中的程序模块。

    对象是对类进行实例化,对象的源代码把数据、变量、

    操作和方法封装在一起。

  3.安全(P3)

    利用原始沙箱模型,严格控制代码的访问权限。

  4.多线程(P4)

    支持多任务和并行处理。

  5.分布式(P5)

    支持基于TCP/IP协议的HTTP和FTP,可借URL访问网络对象。

  6.半编译半解释(P5)

    源程序—编译—字节代码—JVM解释—机器语言。

1.1.4 Java语言的运行系统(P5)

   Java语言源程序(.java)编译;

   字节代码文件(bytecode  类 .class);

   Java虚拟机可在任何硬件、软件平台上解释字节代码;

   执行具体的CPU机器指令。

第2节 简单的Java程序介绍

  Java应用程序(Application)运行在Java虚拟机(JVM)上。

   Java小程序(Applet)运行在Web浏览器(IE)上。

1.2.1 Java应用程序(Application)

[例1.1](P7)

   //Java应用程序HelloWorld.java

   public class HelloWorld   //类名要与文件名相同

   {

    public static void main(String args[])  

                             //参数args[],字符串数组

    {

     System.out.println("Hello world!");

                             //“."运算符引用对象成员

1.2.3 Java小程序(Applet)

[例1.2](P10)

   //Java小程序HelloApplet.jaba

   import java .applet .Applet;

     //引入  java语言  applet包   Applet小程序类

   import java .awt .Graphics;

     //引入  java语言  awt工具包  Graphics图形类

    //awt抽象窗口工具包(Abstract Window Toolkit)

   public class HelloApplet extends Applet

   //继承java.applet.Applet类的功能

   {

    public void paint(Graphics g)  //Graphics类的对象g

     {

       g.drawString("Hello World!",10,50);  //坐标10,50

      }

    }

[例1.3] 创建HTML文件 Helloapplet.html

    <HTML>  //源文档

    <TETLE>HelloApplet   2002/2/28 </TITLE>  //标题

    <BODY>  //文档主体

    <APPLET

       CODE="Helloapplet.class"

       WIDTH=100

       HEIGHT=50

     >

     </APPLET>

     </BODY>

     </HTML>

   在浏览器中运行HelloApplet.html

 

Java语言的基本名词

名称

说明

举例

程序

program

Java应用程序(Application)

运行在Java虚拟机(JVM)上。

Java小程序(Applet)

运行在Web浏览器(IE)上。

网页上的图形图像、动画、声音。

对象

object

类中的实例,对象的源代码把数据、

变量、操作和方法封装在一起。

小车是汽车类中的实例。

class myclass
  {
    myclass myobject;

    myobject=new myclass(int x);
   }

class

定义对象的状态和行为的模板,

Java语言中的程序模块。

java语言awt 工具包中的

Graphics 图形类。

方法

method

Java语言中的程序模块,

类似其他语言的函数。

setColor(Color.c);

调用Graphics类中的
 setColor( )方法,
把创建好的Color对象

设置为 系统当前所用的绘画颜色。

packge

类的集合,类和接口的程序段组成,

相当于C++的类库。

Java核心包:lang io util net

Java其他包:awt applet swing

接口

interface

抽象方法和变量的集合,

应用程序接口API

Java.awt抽象窗口工具集,支持GUI

Java.applet创建Java小程序。

 

作业(P13)

1.3 Java程序如何运行?(P5)

1.10 Java应用程序和Java小程序Applet有何区别?(P7、P10)

 

2章 数据类型、操作符和表达式

单词和缩写

    Boolean final string array args argument length 

  Object clone Vector  Capacity 

第1节 基本数据类型

  Java语言中的主要数据类型(P14)

      基本类型、引用类型、null(空)类型。

2.1.1 基本数据类型(P14)

Java的基本数据类型

类型 描述 初始值
byte 8位符号整数,-128—127
八进制前导符:0,
十六进制前导符:0x
(byte)0
short 16位符号整数 (float)0
int 32位符号整数 0
long 64位符号整数 0L
float 32位单精度浮点数 0.0f
double 64位双精度浮点数 0.0d
Boolean 布尔型只有两个值
真(true)、假(false)
'\u0000'
char 16位字符 false

2.1.2 常量

  4.字符型(P16)

Java的转义符(P16)

转义序列 含义
\n 回车(\u000a)
\t 水平制表符(\u0009)
\b 空格(\u0008)
\r 换行(\u000d)
\f 换页(\u000c)
\' 单引号(\u0027)
\" 双引号(\u0022)
\\ 反斜杠(\u005c)
\ddd 三位八进制
\udddd 四位十六进制

6. final变量(P17)

 [例2.1]final终值变量赋值后,在程序中不再改变。

 class Point

 {

  int x,y;

  int useCount;

  Point(int x,int y)  //定义Point方法

   {

    this.x=x;

    this.y=y;

   }

  final static Point.origin=new Point(0,0);

  //把坐标(0,0)赋值给终值Point类的origin对象

 }

第2节 操作符和表达式

2.2.1 操作符的优先级(P18)

 [例2.2] b=5;a=b=19; 左结合,运算结果a=19 b=19

Java操作符的优先级表

描述 操作符
最高优先级 . [] ()
一元 ~ ! ++ --
* / %
加减(二元) + -
移位 << >> >>>
关系 < <= >= >
等于或不等于 == !=
按位与 &
按位异或 ^
按位或 |
条件与 &&
条件或 ||
条件(三元) ?:
赋值 =

2.2.4 类型转换

  1.隐式类型转换由系统自动完成。(P22)

    例如, 3.2/2转换成3.2/2.0

  2.显示类型转换(强制类型转换)

    例如,(double)3/2.0

2.2.6 条件操作符

  1.关系操作符(P23)

    >  >=  <  <=  ==  !=

  2.逻辑操作符(P24)

    !  &  |  ^  &&  ||

  3.三元操作符(?:)(P25)

2.2.7 位操作

  1.位操作符

    按位与(&)、按位或(|)、按位异或(^)。

  2.移位操作符(P26)

    左移(<<)、带符号右移(>>)、不带符号右移(>>>)。

第3节 String 类

2.3.1 创建String类对象

  1.隐式创建字符串String对象(P26)

    g.drawString("This is a string",50,50);

  2.显示创建字符串String对象(P26)

    string str=new String("This is a string");

第4节 数组

  数组(P29)

  一组类型相同的有序数据,

  这些数据按顺序存放在内存中一片连续的地址中。

2.4.1 数组的创建与使用

 例如:

   int[] ai;  //声明整数数组类型ai

   point p[]; //声明点point类型数组p[]

   int[] ai=new ai[10];

              //声明数组类型,同时为数组分配空间,创建数组对象

第5节 Vector类

  Vector类(P33)

  可以存储多个对象,用索引值来检索这些对象。

  空间用完后会自动增长

2.5.1 产生一个Vector

  Vector有三个构造器(P33)

  1.产生一个空Vector

    public Vector()

  2.产生一个Vector,其初始大小由initialCapacity规定。

    public Vector(int initialCapacity)

  3.产生一个Vector,

    其初始大小为initialCapacity,增长速度为capacityIncrement

    public Vector(int initialCapacity,int capacityIncrement)

 

习题(P37)

  2.1 Java的基本数据类型有哪些?

      它们与其他编程语言的最大不同在哪里?(P14倒3)

  2.11 请写出下列逻辑表达式的结果:(P23)

     (3<5)||(6==5)||(3!=3)

     (5!=10)&&((3==2+1)||(4<2+5))

     !(5==2+3)&&!(5+2!=7-5)

3 程序的流程控制

单词和缩写

  if else switch for while do break continue return

第1节 条件选择

3.1.1 if 语句(P40)

    单分支语句

3.1.2 if-else 语句(P41)

    多分支语句

3.1.3 switch 语句(P42)

    开关语句:控制传递给以表达式的值为标号的语句。

第2节 重复

3.2.1 for 语句(P44)

    for(初值;终值;步级)

     {

      语句;

     }

3.2.2 while 语句(P45)

    先判型:先判断,后执行。

3.2.3 do-while 语句(P45)

    后判型:后执行,先判断。

第3节 跳转

    break,continue ,return。

换笔增叶 hbzy.java

// 多叶曲线:
// 线宽、花叶颜色、各叶片色、背景色、叶数、位置、显示速度

// r,g,b: 背景颜色 画笔颜色
// x, y : 水平移动图形 x=0--639 垂直移动图形 y=0--479
// r1,r2: 水平方向半径 r1=0--320 垂直方向半径 r2=0--240
// i, j : 心形曲线叶片 i=1--24 心形曲线弧度 j=0--2*PI

import java.awt.*; //导入java语言awt抽象窗口工具包的所有类
import java.applet.*; //导入java语言小程序applet包的所有类
import java.awt.Graphics; //导入java语言awt包的Graphics类

public class hbzy extends Applet{ 
    //换笔增叶hbzy类继承Java小程序Applet类
int i;
double PI=3.141596,j,j1=PI/5555;

double fx(double j){   //定义求x轴投影和x轴坐标的方法
return (Math.cos(i*j)*Math.cos(j)+1.1)*size().width*0.45;
}

double fy(double j){   //定义求y轴投影和y轴坐标的方法
return (Math.cos(i*j)*Math.sin(j)+1.06)*size().height*0.45;
}

public void paint(Graphics g){
for(i=0;i<4;i++){      //用i循环递增改变画笔和增加花叶
switch(i){
case 0:
g.setColor(new Color(255,0,0));   //设置画笔为红色
setBackground(Color.green);       //设置背景为绿色
break;
case 1:
g.setColor(new Color(255,255,0)); //设置画笔为黄色
setBackground(Color.orange);      //设置背景为橙色
break;
case 2:
g.setColor(new Color(0,255,255)); //设置画笔为青色
setBackground(Color.yellow);      //设置背景为黄色
break;
case 3:
g.setColor(new Color(0,0,255));   //设置画笔为蓝色
setBackground(Color.green);       //设置背景为绿色
break;
}

for (j=0;j<=2*PI;j+=j1){
g.drawLine
  ((int)fx(j),(int)fy(j),(int)fx(j+j1),(int)fy(j+j1));
}
}
}
}

习题(P49)

  3.6 (参考P26 String, P44例3.5)

第4章 类、接口和包

单词和缩写

  OOP(Object-oriented Programing)

  object data method class extends interface prototype packge

  public private protected static final native

 abstract this super

第1节 面向对象程序设计的基本概念

4.1.1 对象(Object)(P50)

名称

说明

举例

对象

object

类中的实例,对象的源代码把数据、

变量、操作和方法封装在一起。

小车是汽车类中的实例。

class myclass
  {
    myclass myobject;

    myobject=new myclass(int x);
   }

class

定义对象的状态和行为的模板,

Java语言中的程序模块。

java语言awt 工具包中的

Graphics 图形类。

4.1.2 类(class)(P50)

  构成 行为
物体 属性 方式
汽车 发动机、车轮 发动、行驶
对象 数据 方法

    类的组成(P51)

    public class Stack        //类Stack的声明

    {

     private Vector items;    //变量items

     public stack() {         //构造器Stack

       items=mew Vector(10);  //构造器大小Vector(10)

     }

     public Object push(Object item){  //方法push

       items.addElement(item);

       return item;

     }

4.1.3 封装(P51)

  1.封装(encapsulation)是把类的数据、变量、操作和方法

    封装在类体中,使之与外界分隔开。

  2.外界访问类对象:

    通过类中公共的数据方法访问私有的数据和方法。

4.1.4 类的继承

  1.类的继承(extends)(P52)

    新的类继承原有类的基本特性。

  2.新的类:子类、派生类。

  3.原有类:父类、超类(superclass)、基类。

4.1.5 类的多态性

  1.类的多态性(polymophism)(P53)

    一个名称有多种功能,或者相同的接口有多种实现方法。

  2.类的多态性的实现

    通过方法的重载(overloading)、复盖(overriding)

    和接口来实现。

  3.方法的重载

    多个方法具有相同的名称,但各个方法的参数表不同,

    即参数的类型和参数的数量不同。

  例如,求一个数的立方(cube)

    int cube (int i);

    float cube (float a);

    double cube (double d);

    调用时系统自选方法。

  例如,cube(5),cube(3.2f),cube(6.7)。

  4.复盖:子类中的方法复盖父类中同名的方法。

  5.接口:特殊的类,只有方法的原型,

    方法的实现在其子类中具体定义。

第2节 类的声明

   类的声明格式(P53)

   [类修饰符] class 新类名 [extends 超类名] [implement 接口名]

4.2.1 类修饰符(P54)

  1.public 公有成员,可以被任何对象使用或扩展。

  2.protected 保护成员,仅能被该类及其派生类访问。

  3.private 私有成员,仅能被该类的其他成员访问。

  4.abstract 未完成的类,只是声明方法,而不实现方法。

  5.final 终类,完整的,不能有子类。

4.2.3 超类(P56)

  扩展超类:得取该类的副本,可在副本上添加其他功能。

  [例4.3]

     import java.awt.*;

     public class TestThisSuper extends Frame

            //声明类TestThisSuper

     {

       int b;   //新增变量

       public TestThisSuper(String a)  //TestThisSuper方法

       {

         this(a,0);     //当前类TestThisSuper

        }

       public TestThisSuper(String a,int b)

       {

         super(a);    //引用超类对象

         this.b=b;

        }

       }

 

第四节 方法的声明

  方法:可以被调用的代码,传递固定数量的参数。(P60)

  方法声明格式:

  方法修饰符 结果类型 方法名([参数列表]){方法体}throws子句

4.4.2 方法修饰符

  1.abstract方法(P61)

    不提供方法的实现,方法体为空。

  [例4.9]abstract类Point

   abstract class Point   //抽象类,方法体空

   {

     int x,y;

     public abstract String toString(); //抽象方法指向String

     Protected string objString(){      //String对象

         return super.tostring();

     }

    }

    class ColoredPoint extends Point  //色点继承点

    {

     int color;

     //实现Point类中的抽象方法toString

     public String toString(){

         return objString()+":color"+color;

       }

     }

  2.static方法(P62)

    称为类方法(class method),

    Math类中含有数学计算方法:指数、对数、三角函数。

  3.native方法(P62)

    用依赖平台的代码实现,native方法使用其他的编程语言编写,

    例如:C++语言。

4.4.3 向方法传递信息(P64)

    public static long max(long a,logn b){

        return (a>=b) ? a : b;

     }

  [例4.13]

   class Circle {

    int x,y,radius;  //成员变量x,y

    public Circle(int x,int y,int radius)  //构造器参数x,y

    {

      this.x=x;   //赋值给当前对象的变量x

      this.y=y;

      this.radius=radius;

     }

   }

4.4.6 main方法(P66)

  main方法:程序执行的起点。

  定义格式:public static void main(String args[]){方法体}

第5节 类的构造器、对象与成员

4.5.1类的构造器(P68)

  Java类有构造器,用于初始化类的新对象,构造器与类同名。

  例如:Stack类的构造器

    public stack(){

      items=new Vector(10);

    }

4.5.2 类的实例与成员(P70)

  类的实例(类的对象)

  格式:类 实例名 [=new 类的构造器]

  例如:Point origin1=new Point(23,45);

        Rectangle rect1=new Rectangle(origin1,100,200);

第7节 接口

4.7.1 接口的概念(P73)

  接口(interface):类的原型(prototype),

      接口规划出类的共同行为,具体类实现特殊功能。

  例如:java.applet.AppletContext接口的getImage方法

      使运行Applet的浏览器下载图片。

4.7.2 声明接口(P75)

  public interface 接口名[extends 接口列表]

4.7.3 接口体(P76)

  不指定方法的实现,只指定方法的属性。

第8节 包

4.8.1 概述(P77)

  包(package):相当子目录,

    包与文件系统的目录对应,用圆点(.)指明目录的层次。

    相关类的集合,类和接口的群,类似其他语言的库。

  例如:java.awt.Graphics

4.8.2 声明包(P77)

  package 包的名称;

4.8.3 导入包中的类(P78)

  例如:

    import java.awt.color;

    import java.awt.Graphics;

    import java.awt.Image;

    import java.awt.*;

  导入整个包,浏览器必须从网上下载包中的所有类文件,浪费时间。

习题(P82)

4.2 Java类主要由哪几个部分组成?(P51)

4.9 请写出方法和构造器的异同点。(P69倒8)