第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
myobject=new
myclass(int x); |
类 class |
定义对象的状态和行为的模板, Java语言中的程序模块。 |
java语言awt 工具包中的 Graphics 图形类。 |
方法 method |
Java语言中的程序模块, 类似其他语言的函数。 |
setColor(Color.c); 调用Graphics类中的 设置为 系统当前所用的绘画颜色。 |
包 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)
单词和缩写
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)
单词和缩写
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)
单词和缩写
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
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)