java applet
Download
Skip this Video
Download Presentation
JAVA Applet 小应用程序示例

Loading in 2 Seconds...

play fullscreen
1 / 53

JAVA Applet 小应用程序示例 - PowerPoint PPT Presentation


  • 93 Views
  • Uploaded on

JAVA Applet 小应用程序示例. 小应用程序的例子。输出“ Hello World !” 。源程序代码如下: // 程序文件名称为 HelloApplet.java import java.awt.Graphics; import java.applet.Applet; public class HelloApplet extends Applet { public void paint (Graphics g ) { g.drawString ("Hello World!",50,25); } }.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' JAVA Applet 小应用程序示例' - ezekiel-hewitt


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide2
小应用程序的例子。输出“Hello World!” 。源程序代码如下:
      • //程序文件名称为HelloApplet.java
      • import java.awt.Graphics;
      • import java.applet.Applet;
      • public class HelloApplet extends Applet
      • {
      • public void paint (Graphics g )
      • {
      • g.drawString ("Hello World!",50,25);
      • }
      • }
slide4

HelloApplet will appear below in a Java enabled browser.

CODEBASE = "."

CODE = "HelloApplet.class"

NAME = "TestApplet"

WIDTH = 400

HEIGHT = 300

HSPACE = 0

VSPACE = 0

ALIGN = middle

>

slide5
命令:Appletviewer HelloApplet.html

命令行演示

Eclipse演示

slide7
Java源程序分为两大部分:程序头包的引用和类的定义。

1. 程序头包的引用

主要是引用JDK软件包自带的包,也可以是自己定义的类。引用之后程序体中就可以自由应用包中的类的方法和属性。

slide8
2. 类的定义

Java源程序中可以有多个类的定义,但必须有一个主类,这个主类是Java程序运行的入口点

在应用程序中,主类为包含main方法的类

在Java源程序中,主类的名字同文件名一致

类的定义又包括类头声明和类体定义

类体中包括属性声明和方法描述

slide9
属 性

//程序文件名称为WelcomeApplet.java 注释语句

init方法

引入包

public class WelcomeApplet extends Applet implements ActionListener 主类类头

{

slide10
actionPerformed

方法

main主方法

slide12
Java源程序物理上由三部分构成,分别为语句、块和空白。

(1) 语句指一行以分号“;”结束的语句

(2) 块指用括号对{}界定的语句序列,块可以嵌套使用。

(3) 空白指语句之间、块内部或者块之间的空白行。

空白不影响Java源程序的编译和运行,适当地运用空白, 可以形成良好的代码风格。

slide13
在前面的例子中
      • Label lblName;
      • TextField txtName;
      • TextField txtDisp;
  • 都是语句,而
  • {
  • lblName = new Label("请输入您的名字:");
  • txtName = new TextField(8);
  • txtDisp = new TextField(20);
  • add(lblName);
  • add(txtName);
  • add(txtDisp);
  • txtName.addActionListener(this);
  • }
  • 是块,语句之间、块之间或块内部的空行都为空白。
slide14
第四章 Java面向对象特性

对象与类

对象生命周期

类的创建

重载

子类

slide15
对象的基本概念

面向对象程序语言三个关键特点:

封装 ( Encapsulation )

继承 ( Inheritance )

多态 ( Polymorphism )

slide16
类和对象

类是特定类型对象的定义,包括:对象包含的

数据,对象的创建及对象对自身数据操作的方法

类是一个模板

对象是在其类模型基础上构造出的,是具体的

实例

slide17
类和对象举例

类定义:

Class EmpInfo{

String name;

String designation;

String department;

void print( ){ System.out.println(name+“is”+

designation+“at”+department);}

}

对象的生成与使用:

EmpInfo employee = new EmpInfo( );

employee.name = “ Robert Javaman”;

employee.designation = “Manager”;

employee.department = “Coffee shop”;

employee.print( ); ...

slide18
类声明的基本格式:

访问说明符 class类名 extends超类名 implements接口名

其中:

(1)访问说明符为public或者缺省

public用来声明该类为公有类,可以被别的对象访问

声明为public的类存储的文件名为类名

如果类声明中没有public,只有与该类定义在同一包中的

类才可以访问该类

slide19
类声明的基本格式:

访问说明符 class类名 extends超类名 implements接口名

其中:

(1) 访问说明符 …

(2) 类名:用户自定义的标识符,用来标志这个类的引用

(3) 超类名:是指已经存在的类,可以是用户已经定义的,也可以是系统类

(4) 接口名:后面会讲到

slide20
例如:public class HelloApplet extends Applet{

… …

}

访问说明符为public,类名HelloApplet,扩展类为JDK包自带的java.applet.Applet类。由于public的存在,所以文件名必须存为HelloApplet.java,同类名保持一致。

slide21
类体:(包括成员变量和方法)

(1) 成员变量:指类的一些属性定义,标志类的静态特征,

格式如下:

访问说明符 数据类型变量名

其中:

●访问说明符有public、private和protected三种:

public(省略时默认为public):可以由外部对象进行访问

private:私有类型,只允许在同一类的成员方法中使用,其他类的方法禁止访问,从而实现了类的数据隐藏。

Protected:受保护类型,自身、子类及同一个包中类可以访问

● 数据类型包括基本类型以及用户自定义的扩展类型。

slide22
(2) 方法:是类的操作定义,标志类的动态特征,它的基本格式如下:

访问说明符 数据类型 方法名(数据类型1 变量名1, 数据类型2 变量名2)

其中:

●访问说明符为public、private和protected,其使用方法与成员变量访问说明符的使用方法一致。

●数据类型:包括基本数据类型和用户自定义的扩展类型。

●数据类型为参数。

slide23
类的构造方法(构造函数)
  • 构造方法定义:
  • public 类名(参数){ … }
  • 注意:
    • 方法名必须与类名相同
    • 不能带返回类型
slide24
缺省构造函数

如果在类定义中无构造函数,Java在编译时

可缺省加入构造方法。如 public Employee( ){ };

一旦在类中有一个自己声明的构造函数,则缺省

的构造函数将不被加到源程序中。

Employee示例

slide25
对象生命周期

 创建对象

 使用对象

 清除不用的对象

slide26
创建对象

创建对象的三个步骤:

 声明 (Declaration )

实例化(Instantiation)

初始化(Initialization)

Class EmpInfo{

String name;

String designation;

String department;

void print( ){ System.out.println(name+“is”+

designation+“at”+department);}

}

例:

EmpInfo Employee_one;

Employee_one = new EmpInfo( );

EmpInfo Employee_one.name =“Bob”;

EmpInfo Employee_one.designation=“Manager”;

EmpInfo Employee_one.department =“CoffeShop”;

Employee示例

slide27
对象的回收

垃圾收集机制(garbage collection):Java运行环境当确定

某个对象不再被使用时,将其删除

一个对象在没有引用指向它时,可作为垃圾收集

垃圾搜集器:Java运行环境中的垃圾搜集器周期性地释放

不用对象占用的空间。

slide28
a b c

b c

(指针悬空)

a b c

b c

垃圾收集机制

C++:A *a=new A( );

A *b=a;

A *c=a;

//a 使用完,将其删除

delete a;

Java :A a=new A( );

A b=a;

A c=a;

//a 使用完,将其删除

a= null ;

slide29
数据封装与隐藏
  • 封装:将基本数据和对数据进行的操作方法相结合
  • 优点:
    • 隐藏类中具体实现的细节
    • 强迫程序员使用统一的接口访问数据
    • 提高了代码可维护性
  • 数据隐藏:使用private定义的成员变量,只能
  • 在成员方法中使用,其它方法中禁止使用
  • 优点: 保证对象中数据的一致性
slide30
数据隐藏与封装举例

Class Date{

private int day, month, year;

void setDate( int a, int b, int c){

day = a;

month = b;

year = c ;

}

}

Date d1;

d1.new Date( );

d1.setDate(30,9,2001);

...

Date程序示例

d1.day = 30;(错误!)

slide31
“this “引用

关键字this 用来指向当前对象本身。

例:class Date {

private int day, month,year;

public Date getTommorrow( ){

this.day++;

}

请课后自己运行理解

slide32
重载(Overloading)
  • 含义:在同一个类中一个方法名被用来定义多个
  • 方法。
  • classScreen {
  • public void print( int i){ … }
  • public void print( float i){ … }
  • public void print( String str ){ … }
  • }
  • 重载必须遵守原则:
    • 参数表必须不同,以此区分不同方法体。
    • 返回类型、修饰符可相同或不相同。
slide33
激活重载的构造方法

在一个构造方法中可以利用另一个构造方法。

class Employee{

private String name;

private int salary;

public Employee(String n, int s){

name = n ;

salary = s;

}

public Employee( String n){ this(n,0); }

public Employee( ){ this(“Unknown”); }

}

slide34
子类

子类表示类之间一种“属于”( is a )关系。

例:public class Employee {

String name ;

Date hireDate ;

Date dateofBirth ;

String jobTitle ;

int grade ;

}

public class Manager {

String name ;

Date hireDate ;

Date dateofBirth ;

String jobTitle ;

int grade ;

String department ;

Employee [ ] subordinates;

}

slide35
Extends 关键字

 Java中用 extends 关键字定义子类。

public class Employee {

String name ;

Date hireDate ;

Date dateofBirth ;

String jobTitle ;

int grade ;

}

public class Manager extends Employee{

String department ;

Employee [ ] subordinates;

}

子类是从已有的类创建新类的一种方法。

slide36
子类

子类继承父类的属性、功能(方法),子类中只

需声明特有的东西(父类中所没有的)。

带private 修饰符的属性、方法是不能被继承的。

构造函数不能被继承。

在方法中调用构造方法用this()。

调用父类的构造方法用super()。

-- super 指向该关键字所在类的父类。

slide37
构造不同类型数据的集合

Java中允许构造如下类型的数组:

Employee [ ] staff = new Employee[1024];

staff[0] = new Manager( );

staff[1] = new Worker();

staff[2] = new Employee();

---- staff 是由多种类型的对象组成的。

Java中任何一个子类的实例都可作为父类的实例

使用,可以调用父类具有的方法。

slide38
单继承
  • Java是单继承的,即只能从一个类继承,
  • extends后类名只能有一个。
  • 单继承的优点:
    • 代码更可靠
    • 可以用接口弥补
    • 用一个类实现多个接口,达到多继承效果。
    • (在介绍接口的时候讲)
slide39
重写(Overriding methods)

子类可以改变从父类继承的行为。

被重写方法的返回值、方法名、参数列表要

与父类中的方法完全一样。

slide40
方法重写的规则

必须返回与原来方法完全相同的返回值。

方法的访问权限不能缩小。

不能抛出新的例外。

slide41
多 态
  •  Java允许父类对象的变量作为子类对象的变量 使用。
  • 如:Employee e = new Manager( );
  • 但通过该变量(如e)只能访问父类的方法,子类特有的部分被隐藏。
  • 运行时确定使用父类还是子类的方法。
slide42
Super关键字

Super指向该关键字所在类的父类。

Public class Empolyee {

private String name ;

private int salary;

public String getDetails( ){

return “Name: ”+name+“\nSalary:”+salary;

}

}

public class Manager extends Empolyee {

private String department ;

public String getDetails( ){

return super.getDetailes( )+‘\nDepartment: “+

department;

}

}

课后运行例子

slide43
“instanceof”及类型强制转换

Instanceof 测试对象类型

Empolyee a = new Manager();

则a instanceof Manager 为true;

类型转换

父类弱、子类强,指向父类的引用不能直接按子类引用,

必须要强制类型转换后才能作为子类的引用使用。

例:public void method( Employee e){

if (e instanceof Manager){

Manager m = (Manager) e ;

m.department = “…”;

}

}

slide44
子类对象的初始化
  • 初始化对象是很结构化的。
  • 在对对象初始化时,分三步:
    • 分配空间,并初始化为“0”值。
    • 按继承关系从顶向下显式初始化。
    • 按继承关系从顶向下调用构造函数。
slide45
调用父类构造方法

缺省是不带参数的构造方法。

如果需要调用特殊的父类构造方法,则需在

子类构造方法中第一行通过super( … )调用。

class Employee{ ...

public Employee( String n){

name=n;

}

}

class Manager entends Emplyee{

public Manager( String s,String d){

super(s);

... }

}

object
Object 及其子类

Object定义了所有对象都需要的状态和行为。如对象之间的比较、将对象转换为字符串、等待某个条件变量、当某条件变量改变时通知相关对象以及返回对象的类。

object1
Object 及其子类

在Object子类中可以重写的方法:

  • clone
  • equals
  • finalize
  • toString:返回对象的字符串表示,表达的内容因具体的对象而异

在Object子类中不能重写的方法:

  • getClass
  • notify
  • notifyAll
  • wait
object clone
Object的clone方法

 aCloneableObject.clone(); //从已有的对象创建新的对象

注意:

  • aCloneableObject必须实现了Cloneable接口
  • Object.clone()是shallow copy 而不是 deep copy
object clone1
Object的clone方法

public class Stack implements Cloneable {

private Vector items;

// code for Stack's methods and constructor not shown

protected Object clone() {

try {

Stack s = (Stack)super.clone(); // clone the stack

s.items = (Vector)items.clone(); // clone the vector

return s; // return the clone

} catch (CloneNotSupportedException e) { }

}

}

object tostring
Object 的toString方法

返回对象的字符串表示,表达的内容因具体的对象而异 。

例:

System.out.println(Thread.currentThread().toString());

对于Integer的对象是所包含的整型数的字符表示。

Thread[main,5,main]

object2
分析object类
  • 该类的组成
  • 有哪些属性?
  • 有哪些方法,都是用来干什么的?
  • 每个方法有什么特点?
slide53
作业2
  • 将第二次作业写得类用JAVA实现,并生成对象。
ad