● Java类
5-1 Programming in Java Java 类 Lecture5
徒肉 5 ·Java的类 >系统定义的类(Java APIs) >用户程序自定义的类 。类的定义 ·对象 ·类成员的修饰符
5-2 Programming in Java 提纲 • Java 的类 ¾系统定义的类(Java APIs) ¾用户程序自定义的类 • 类的定义 • 对象 • 类成员的修饰符
Java类库 -Java.lang -Java.corba -Java.io -Java.lang.reflect -Java.util -Java.rmi -Java.awt Java.security -Java.awt.image Java.util.zip -Java.awt.peer -Java.awt.datatransfer -Java.applet -Java.awt.event -Java.net -Java.sql
5-3 Programming in Java • Java 类库 Java APIs –Java.lang –Java.io –Java.util –Java.awt –Java.awt.image –Java.awt.peer –Java.applet –Java.net –Java.corba –Java.lang.reflect –Java.rmi –Java.security –Java.util.zip –Java.awt.datatransfer –Java.awt.event –Java.sql
度用Java APLS的万a 继承系统类 ·创建系统类的对象 ·直接使用系统类 如何使用?一import 例如: import java.awt.*; import java.awt.event.*;
5-4 Programming in Java 使用 Java APIs的方法 • 继承系统类 • 创建系统类的对象 • 直接使用系统类 • 如何使用?——import 例如: import java.awt.*; import java.awt.event.*;
Class Declaration Class Body public class Stack Variable private Vector items; public Stack(){ Constructor items new Vector(10); public Object push(object item){ items.addElement(item); return item; public synchronized Object pop(){ int len items.size(); Object obj null; if (1en ==0) Methods throw new EmptyStackException(); obj items.elementAt(1en -1) items.removeElementAt(1en -1); return obj; public boolean isEmpty(){ if (items.size()=0) return true; else return false; protected void finalize()throws Throwable items nulli Cleanup super.finalize();
5-5 Programming in Java 类的组成
Pnonecara( 5 Class PhoneCard{ long cardNumber; private int password; double balance; String connectNumber; boolean connected; boolean performConnection(long cn,int pw){ if (cn =cardNumber &pw =password){ connected true; return; else connected false; return false;}
5-6 Programming in Java Class PhoneCard { long cardNumber; private int password; double balance; String connectNumber; boolean connected; boolean performConnection(long cn, int pw) { if (cn == cardNumber && pw == password) { connected = true; return; } else { connected = false; return false;} } PhoneCard(1)
Pnonecara(z 5 double getBalance({ if(connected) return balance; else return -1; } void performDialO){ if(connected) balance -=0.5; 3
5-7 Programming in Java double getBalance() { if (connected) return balance; else return –1; } void performDial() { if (connected) balance -=0.5; } } PhoneCard(2)
天利炎人 5 定义 [类修饰符]class类名[extends超类笱[implements 接口名,接口 {类体 ·修饰符 一访问控制符 -抽象类(abstract) - 最终类(final)
5-8 Programming in Java 类的定义 • 定义 [类修饰符] class 类名 [extends 超类名] [implements 接口名{,接口名} {类体} • 修饰符 – 访问控制符 – 抽象类(abstract) – 最终类(final)
对的别 对象变量的声明 type objectName; ● 对象的创建: 一New运算符:new(object type and arguments)) PhoneCard myCard new PhoneCardOj 一系统自动为对象分配内存空间 对象的初始化: —采用默认的初始化值; 一声名变量时初始化; 一使用“初始化块” —使用构造函数初始化
5-9 Programming in Java • 对象的创建: —New运算符: new (object type and arguments) PhoneCard myCard = new PhoneCard(); —系统自动为对象分配内存空间 对象的创建 • 对象变量的声明 type objectName; • 对象的初始化: —采用默认的初始化值; —声名变量时初始化; —使用“初始化块” —使用构造函数初始化
闪适改 ·与方法相似,但不同之处如下: 一构造函数名与类名相同; —构造函数没有返回类型; 一构造函数的作用是完成对对象的初始化工作; 一构造函数一般不能由编程人员显式地直接调用; 一在创建一个类的新对象的同时,系统会自动调用该类 的构造函数为新对象初始化 ·初始化过程 一采用默认的初始化值(0,u0000,false,nul) 一声名变量时初始化 一使用“初始化块” 构造函数
5-10 Programming in Java 构造函数 • 与方法相似,但不同之处如下: —构造函数名与类名相同; —构造函数没有返回类型; —构造函数的作用是完成对对象的初始化工作; —构造函数一般不能由编程人员显式地直接调用; —在创建一个类的新对象的同时,系统会自动调用该类 的构造函数为新对象初始化 • 初始化过程 —采用默认的初始化值(0, \u0000, false, null) —声名变量时初始化 —使用“初始化块” —构造函数