最新四章类和对象精品课件.ppt

上传人:豆**** 文档编号:27084309 上传时间:2022-07-22 格式:PPT 页数:90 大小:1.06MB
返回 下载 相关 举报
最新四章类和对象精品课件.ppt_第1页
第1页 / 共90页
最新四章类和对象精品课件.ppt_第2页
第2页 / 共90页
点击查看更多>>
资源描述

《最新四章类和对象精品课件.ppt》由会员分享,可在线阅读,更多相关《最新四章类和对象精品课件.ppt(90页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Company Logo主要内容学习目标及重、难点1任务学习2课堂实践3总结与要求4任务介绍任务一 理解类和对象的概念及其关系,会分析和设计银行帐户对象和储户对象任务二 定义平面上任意两个点p1,p2,并计算p1到原点的距离,以及点p1到p2的距离任务三 定义和处理员工信息任务分析支撑知识讲解p 面向对象基本概念p 类的定义 、对象的创建p 构造方法任务实现任务解决任务解决任务小结Company Logo面向对象v对象对象 世界上所有的事物都可以称为对象。 包括有形(一台电视机等)和无形(帐户、一项记录等) 对象两大要素 属性(对象静态特征,可以用某些数据描述) 操作(对象动态特征、又称方法,

2、具有的行为或功能) 如电视 属性有:品牌、尺寸、重量等 操作有:收视、选台、音量调节等 按照子类与父类的关系,把若干个对象类组成一个层次结构的系统 对象彼此之间仅能通过传递消息互相联系。Company LogoCompany Logo课堂思考思考:一只大雁要从北方飞往南方第一步:抽象出对象-大雁第二步:识别该对象的属性-一双翅膀,黑色的羽毛第三步:识别该对象的行为-飞行、觅食等第四步:封装属性和行为来描述大雁这类动物。总结:类是封装对象属性和行为的载体 对象是类的一个实例Company Logo面向对象v类类 对具有相同基本特征对象的一种抽象,是同一类事物的统称 类也是Java中最重要的数据类

3、型,自定义类型 由类定义生成的数据称为这个类的实例或对象。 类和对象关系 类是一个抽象的概念 对象是一个具体的类的实例一个类可以生成多个不同的对象,具有不同的属性值Company Logo例子Company Logo面向对象例如:定义一个类圆class Circle /属性 String color; /颜色 int length; /半径 /方法 void expand() 方法体 /方法:放大 void reduce() 方法体 /方法:缩小对象具有属性和行为。与之相对应,类在定义时,需要声明类的变量(数据)和方法。Circle c1=new Circle() /生成类Circle的实例c

4、1Company Logo类v属性属性-成员变量成员变量 属性称为数据成员,或者成员变量 描述类中所定义的数据,对客观世界实体所具有性质的抽象 类的每个实例都有自己特有的属性值例如Circle类中所定义的代表半径、颜色等的数据成员,就是Circle类的属性Company Logo类v方法方法 在类中实现的操作,它是功能实现的基本单位。 方法描述了对象执行操作的具体实现算法一个方法有以下几个部分构成:n方法名n输入参数(可空)n 返回值(可空)n执行代码段为了使Circle类的对象可以在屏幕上显示自己,可以定义方法show()int show (int i,float j)/ 返回值 方法名 输

5、入参数 /实现代码Company Logo类v消息消息 软件对象通过相互间传递消息来相互作用和通信,一个消息由三部分组成: 接受消息的对象 接收对象要采取的方法 方法需要的参数对象对象B对象对象 A消息消息Company Logo任务学习v 完成任务步骤分析完成任务步骤分析 了解对问题的描述 建立使用实例,分析整个应用实现的场景ATM必须允许用户插入银行卡,选择合适的帐户,然后存钱、取钱、查询余额;一个银行帐户必须记录帐户的ID和当前余额;支票帐户和现金帐户必须支持存钱和取钱。“取钱“是ATM的一个应用实例(存钱、查询余额、验卡、取钱-数目超过余额等也是),步骤有:n选择银行列出的帐户类型n输

6、入取钱的数额(不超过余额)n取出钱n取出卡Company Logo任务学习v 完成任务步骤分析完成任务步骤分析 提取候选类和方法(1)要发现对象以及对象的属性:n在以上使用实例中寻找名词,如帐户(2)要发现方法:n在使用实例中寻找动词,如查询(3)确定哪些是对象,哪些是对象的属性:n一般,属性是一些简单值,如余额。n而对象是由一些简单值组合而成,如帐户包括户名,余额,开户时间等。(4)把找到的方法分配对合适的对象,使其成为对象的成员方法。一些属性和对象:n银行、帐户、余额、银行卡等找到的方法包括:n取钱、选择帐户、查询余额、取卡等Company Logo任务学习v 任务解决任务解决 确定银行帐

7、户对象和储户对象:BankAccountint accountid /帐号double balance/余额void credit(double money)/存入钱到帐户double getbalance(int id)/查询帐户中的余额void debit(double money) /从帐户中取钱Personint id /身份证号int age /年龄String name/姓名void pressButton() /按钮void inputCard()/插卡绿色绿色:属性:属性紫色紫色:方法:方法这两个对象之间存在的关系为:一个储户可以有多个银行帐户,一个帐户只能属于一个储户。Com

8、pany Logo面向对象特性v三个主要特性三个主要特性 继承性 封装性 多态性继承性:指一个新的类继承原有类的基本特征,并可增加新的特性继承具有传递性,Java是单继承封装是一种信息隐蔽技术,封装的目的n隐藏类的实现细节n迫使用户通过接口去访问数据n增强代码的可维护性封装的实现nJava通过访问控制权限来实现封装,访问权限有4种:public, protected, 缺省, private多态性是指一个名称对应有多种不同的功能,提供灵活性类的多态性主要通过方法的重载,覆盖和接口来实现Company Logo面向对象v课堂思考课堂思考 小王本来体重70kg,经过减肥,体重降到45kg,试从这个

9、问题领域中识别对象、类、属性、状态和状态的变化。 1) 类:人。 2) 对象:小王。 3) 属性:体重。 4) 状态:70kg。 5) 状态的变化:小王的减肥行为导致体重下降Company Logo任务学习v 总结总结 介绍面向对象基础知识 类和对象 面向对象分析和设计的方法 三个主要特性: 继承性 封装性 多态性Company Logo任务学习v任务描述任务描述 任务二: 定义平面上任意两个点p1,p2,并计算p1到原点的距离,以及点p1到p2的距离Company Logo任务学习v 支撑知识介绍支撑知识介绍 类的定义 属性的定义 方法的定义 方法定义 方法调用 方法重载 构造方法 主方法访

10、问控制修饰符其他修饰符Company Logo类的定义v类类 类是封装对象的属性和行为的载体 Java中最重要最基本的数据类型,由两种基本成员构成: 数据(属性) 可以是基本数据类型 也可以是某个类的实例 方法 表示对象具有的行为,与函数类似,只能在类内定义Company Logo271 Java 类的定义-语法规范类的修饰符n 访问控制权限修饰符(public、缺省 、private和protected不能)n抽象和最终类修饰符(final,abstract,static不能用 )n类修饰符为可选项extendsn继承父类implements n实现接口n类是组成Java程序的基本要素。它封

11、装了一类对象的属性和方法,是这一类对象的原型。类的修饰符类的修饰符 class 类名称类名称 extends 父类名称父类名称implements 接口名称列表接口名称列表 成员变量定义及初始化;成员变量定义及初始化; 构造函数定义构造函数定义; 方法定义及方法体;方法定义及方法体;类体,其类体,其中定义了该类中所有的变量和中定义了该类中所有的变量和该类所支持的方法,称为成员变量和成该类所支持的方法,称为成员变量和成员方法。员方法。类体1 Java 类的定义v类名类名 必须符合Java标识符的命名规则 以字母、字符”_”或”$”开头 不能使用与Java关键字相同的类名 类名通常以大写字母开头,

12、如果类名由多个单词组成,则每一个单词的开头字母要大写 类名应尽量有意义,便于程序阅读者的理解和程序的维护,养成良好的编程习惯。2、类的修饰符v 访问控制修饰符访问控制修饰符 public 公开类:类成员可以被本包和不同包得任何类、对象所用;反之非公开类通常为同一个包中其它非公开类或公开类服务。 缺省 只能被同一个 包中的其他类、对象引用或继承。 protected 不能用 private 不能用v 抽象类修饰符抽象类修饰符 abstract 后面学v 最终类修饰符最终类修饰符 final 后面学注意:abstract和final是矛盾的,不能同时选择,要么都不用,要么只能选一个。3、成员变量定

13、义-语法规范变量修饰字变量修饰字 变量数据类型变量数据类型 变量名变量名1,变量名变量名2=变量初值变量初值;public | protected |缺省缺省| private static final transient volatilen 成员变量的类型可以是基本类型也可以是引用类型(类,接口,数组)n 在一个类中的成员变量唯一n 变量必须先定义,后使用n 可以设置初值,如果没有设置,则会有默认值整型 (byte、int、short、long)0字符型 (char)u0000布尔型 (boolean)false实型 (float double)0.0引用类型 (数组、类、接口)null3、

14、成员变量定义例如例如: public class Date1 /类声明 int year,month,day; /成员变量声明 v 或者:或者:byte b;double d1=0.23,d2=56.7;boolean mycom=true;char mc=b;String s“abc”;成员变量定义-修饰符v访问控制修饰符有4种 public、protected、缺省、 private,用来规定变量的访问权限vstatic 指明该变量是一个类变量(静态变量);若无,则为实例变量(属于对象)vfinal 指该变量是一个常量,不可改变Company Logo334、访问修饰符的控制范围访问修饰符

15、本类同一包中的类不同类不同包中的不同类publicprivateprotected缺省 :可访问class A public int x;/任何类的对象都能对它读写完全暴露给使用者,除非特殊,一般不定义 pretected int y;/同一个包中任何类或不同包中该类子类对象能进行读写 private int z;/只有本类自身成员才能访问 int w;/同一个包中任何类对象可以进行读写 void setX(int a) z=a;/可以,在A类内部public class TestA public static void main(String args) A pt=new A();/通过ne

16、w运算符生成一个A类对象 pt.x=10; /因为是public,可对A类的对象中x成员进行读写 pt.y=20;/如果在同一个包,是可以的。否则不可以 pt.z=30;/不行,只有在A类内部才可以访问,外部无权 假设两个类定义在同一个包中Class Point static int x;/静态(类)变量静态(类)变量 int y; /实例变量实例变量Public class TeatPoint public static void main(String args) Point.x=10;/可以。可以。X一直存在,随时可用,与有无对象无关一直存在,随时可用,与有无对象无关 Point.y=1

17、0;/不可以,是实例变量,必须先创建对象后才能使用不可以,是实例变量,必须先创建对象后才能使用 Point p1=new Point(),p2=new Point(),p3=new Point(); p1.y=10; /可以。可以。P1对象内部含有自己的变量对象内部含有自己的变量 p2.y=20; /可以。可以。P1对象内部含有自己的变量对象内部含有自己的变量 p3.y=30; /可以。可以。P1对象内部含有自己的变量对象内部含有自己的变量 p1.x=20;/可以,所有对象共享一个类成员变量可以,所有对象共享一个类成员变量x,它一直存在,随时可,它一直存在,随时可用用 示例:控制范围-1同一个

18、类内可以访问任何访问权限的变量。package test;public class Demo2void test() Demo1 dm1=new Demo1(); dm1.priInt=1; /错误 dm1.proInt=1; dm1.defInt=1; dm1.pubInt=1;在同一个包下,但Demo2对Demo1中的private成员没有访问权限。package test;public class Demo1 private int priInt; protected int proInt; int defInt; public int pubInt; void test() priIn

19、t=1; proInt=1; defInt=1; pubInt=1; package test.t1;import test.Demo1;public class Demo4void test() Demo1 dm1=new Demo1(); dm1.priInt=1; /错误 dm1.proInt=1;/错误 dm1.defInt=1;/错误 dm1.pubInt=1;不同包下,只能访问Demo1中的public成员。5、方法定义-语法规范方法修饰字方法修饰字 返回类型返回类型 方法名称方法名称(参数参数1,参数参数2,) throws exceptionList (statements;)

20、 /方法体:方法的内容方法体:方法的内容public | protected|缺省 | private static final | abstract native synchronizedn 返回类型可以是任意的Java数据类型当一个方法不需要返回值时,返回类型为void。n 参数的类型可以是简单数据类型也可以是引用数据类型(数组、类或接口)参数传递方式是值传递。n 方法体对方法的实现包括局部变量的声明以及所有合法的Java指令。局部变量的作用域只在该方法内部。举例:方法定义v 举例:举例:final void move(int dx,int dy) throws IOException x

21、+=dx; y+=dy; v 举例:举例:class Test int a,b; void change(Test obj) obj.a=50; obj.b=40; /可以在函数中改变可以在函数中改变对象状态对象状态 void setTest(int x,int y)void setTest(int x,int y) a=x; a=x; b=y; b=y; 6、方法定义-修饰符v 方法命名 符合标识符规则 Java中允许同名方法存在,但方法的参数列表应不同(方法的重载)v 访问控制权限 public 、pretected、缺省、private含义同成员变量v 其他修饰符static 类方法(静

22、态方法),可直接用类名来调用,随时可用。abstract 抽象方法,只有声明部分,方法体由子类来实现final 最终方法,不能被子类重构native 本地方法,由本地其他语言代码实现synchronized 同步,将在“多线程”中介绍v static 用于修饰类的数据成员和方法,表示该成员为静态成员 基本形式: static 数据类型 变量名; static 返回类型 方法名(参数列表) /方法体 修饰符staticclass A static int b=0; /静态成员变量 static void get() /静态方法 n static修饰的 类成员或静态成员在定义时就静态分配了内存空间

23、,在生成类对象之前就可以使用静态成员静态成员是属于整个类的,一个类的多个对象可以共享共享该静态成员n 无static修饰的 实例成员属于某个对象或实例,必须要定义对象才能使用Company Logo修饰符staticv对静态成员的访问方法对静态成员的访问方法 先生成该类的实例(对象),然后再通过点运算符访问 A a=new A(); a.b=5; a.get() 是不生成实例,直接在类名后加上点运算符和静态成员名 A.b=5; A.get()static方法内部随时可以访问static成员变量和方法,要访问非static成员变量或方法,必须先创建一个对象。非static方法随时访问静态方法不能

24、被重载和重写Company Logo修饰符staticv对静态成员的访问方法对静态成员的访问方法 static方法内部 可以访问static成员变量和方法 不能访问非static成员变量或方法,必须先创建一个对 非static方法 可以访问static成员变量和方法 可以访问非static成员变量和方法class Point static int x; int y; public static void main(String args) x=10;/可以,类变量随时可以使用 y=20;/不可以。必须先创建一个类对象 Point pt=new Point(); pt.y=20;/可以通过对象p

25、t来访问pt对象中的变量y Company Logo修饰符-finalvfinal关键字关键字 最终的,不能修改 可以修饰类,成员变量和方法。 最终类,不能再有子类; 最终方法,不能再被重写; 最终属性,初始化后,不能再被赋值。常量final class A final double PI=3.1416; final double area(double r) return (PI*r*r); class FinalTest static public void main(String arg) A a = new A( ); System.out.println(area= +a.area(

26、5.0); a.PI=100或重写方法area()都是错误的Company Logo修饰符 abstractv抽象方法 用abstract修饰的方法, 抽象方法只有方法的返回值、名称和参数列表,没有函数体。v抽象类 用abstract修饰的类 抽象类是一种没有完全实现的类。 不能用它产生具体的实例Company Logo7、方法v类成员方法 方法定义 方法调用 方法重载 构造方法 主方法Company Logo方法定义v 返回值类型返回值类型 可以是基本数据类型、数组或类 如果方法不返回任何值,必须声明为void(空)v 参数列表参数列表 由零个或多个参数构成,参数之间用逗号分隔,每个参数由一

27、个数据类型和一个标识符构成v 方法体方法体 定义了该方法具体是如何实现的,是整个方法的核心和重点v 局部变量局部变量 方法体中定义的变量参数列表方法修饰符 返回值类型 方法名 (参数列表) 方法体Company Logo方法调用v调用方法 实参在调用时会代替方法定义中的形参。 要求实参的类型、个数和顺序必须与定义中的形参表一致。 方法调用的形式有两种 一种是把方法调用作为一个表达式语句 另一种是作为一个表达式Company Logo方法重载v方法重载 一个类中多个方法具有相同的方法名,但参数的类型或参数的数量不同 静态多态:编译系统调用方法时,系统自动根据实际参数的数量和类型匹配public

28、class MethodOverload public static void main(String args ) MethodOverload obj=new MethodOverload(); System.out.println(obj.square(3)+” ”+obj.square(1.5); int square( int x ) return x * x; double square( double y ) return y * y; 构造方法v 类的特殊的方法,用来初始化对象类的特殊的方法,用来初始化对象 要求 构造函数的方法名与类名一致 构造函数没有返回类型,不能有void

29、 只能通过new关键字在创建对象的时候调用 注意 在创建一个类的新对象时,系统会自动调用该类的构造函数为新对象初始化 每一个类至少都有一个构造方法 当某个类的没有声明构造方法时,系统会为其自动生成一个默认构造方法(无参数、无方法体)。 构造方法使用其参数初始化新对象的状态。 构造函数可以重载(参数序列不同)。当创建对象时,首先用new分配该对象的内存空间,然后调用某一个构造方法,对该对象内存空间初始化。Company LogoMain方法v主方法主方法 是Java应用程序执行的起点 与其它方法相似,它必须在类的内部定义 注意: 一个Java源文件可以包含一个或多个类 但在Java的Applic

30、ation中 必须有而且只能有一个类包含main方法 且该程序文件的名称必须与包含main方法的类的类名一致。main方法必须是公有的(public),静态的(static),没有返回值,有一个字符串数组参数,用于进行参数的传递。Company Logo任务学习v 完成任务步骤分析完成任务步骤分析 一是如何通过类定义描述一个具体的点 一个类Point表示抽象的点,定义两个成员变量x, y表示点对应的具体位置 二是如何计算点到原点的距离 Math中已经实现了求平方根的方法sqrt() 三是如何计算点与点之间的距离 同上 编写主类,测试调用Company Logo任务学习v 任务解决任务解决 编写

31、程序 递交Company Logo任务学习v 总结总结 类的定义主要包括成员变量和成员方法的定义 一般语句不能单独放在类中,必须放到方法中 成员变量的作用范围为整个类 成员方法(方法的返回值,方法的局部变量,可以重载) 主方法 访问控制修饰符 public 、protected、缺省、private 修饰类 修饰成员变量或成员方法 其他修饰符 static final abstractCompany Logo任务学习v任务描述任务描述 任务三:定义和处理员工信息Company Logo任务学习v 支撑知识介绍支撑知识介绍 成员变量和局部变量 作用范围 变量隐藏this关键字对象 对象创建 访问

32、对象 对象消除包 package Import再淡static成员变量和成员方法Company Logo成员变量和局部变量v 成员变量成员变量 在类体中定义 在整个类中都有效v 局部变量局部变量 在方法中定义 方法体中声明 方法中的形参 只在本方法中有效class Data int x=12,y=5; /成员变量 public void sum() int s; /局部变量 s=x+y; class Data int x=12,y=5; public void sum() int x=3; /局部变量x屏蔽了成员变量 int s; s=x+y; 名字隐藏:局部变量名与成员变量名相同,则成员变量

33、被屏蔽 名字隐藏和this关键字v名字隐藏名字隐藏 局部变量与类的成员变量同名,则局部变量会隐藏成员变量,称为名字隐藏。 若要访问被隐藏的成员变量,则必须使用this来访问。 this 用于代表当前正在使用或访问的对象 每一个对象内部都有一个this变量,用于指明自身地址Public class Point private int x; private int y; public Point()x=0;y=0; public Point(int x)/int x为局部变量与成员变量x同名,成员x隐藏 this.x=x;y=0;/局部变量x的值赋给成员变量x public Point(int x

34、,int y) this.x=x;this.y=y; public int getX()return x; public int getY()return y; public void setX(int x)this.x=x; public void setY(int y)this.y=y; public void setPoint(int x,int y)this.x=x;this.y=y; public void setPoint(Point pt)x=pt.x;y=pt.y;Company Logothis关键字vthis 表示对当前对象的引用 表示使用类的成员变量,而非局部变量,尤其是

35、()在成员变量(名字隐藏)与局部变量同名时 用于构造方法中引用满足指定参数类型的构造方法 只能用一个,且必须放在方法体的第一个语句public class Employee private String name; private int salary; public Employee() this(“Unknown”); public Employee(String n, int s) name = n; salary = s; public Employee(String n) this(n,0); /引用本类的构造方法,只能放在第一 对象v对象对象 是类的实例;创建类的目的是以类为模板创

36、建对象。 对象的声明周期 创建对象 使用对象 删除对象一个类可以一个类可以有多个实例有多个实例对象的创建对象的使用对象的清除对象的创建v 对象的创建对象的创建 需要两个步骤需要两个步骤 对象创建之前要先进行声明,但没有分配空间,为null,不能使用 Car demoCar; 然后通过new操作符创建一个对象实例,真正引用一个对象:demoCar = new Car(); 也可以两步合一: Car demoCar new Car();v 对象的构造过程对象的构造过程 为对象开辟空间,并对对象的成员变量进行缺省的初始化; 对成员变量进行指定的初始化; 调用构造方法。new 先为该对象从堆中申请内存

37、空间,自动调用构造行数对该对象内存进行初始化,最后返回对象的引用,若内存不够,返回null。对象的使用v对象的使用对象的使用 访问对象的成员变量和方法 对象做类的成员 方法中使用对象 对象数组对象的使用访问对象的成员变量和方法v 访问对象的成员变量和方法访问对象的成员变量和方法 通过运算符“.”进行访问对象的成员变量和方法 例如: MyDate date = new MyData(); int day; day = date.day; /引用date的成员变量day date.tomorrow(); /调用date的方法tomorrow()引用对象类型v 复合(引用)类型 类数组接口 v 引用

38、类型指向一个对象在内存中的位置,本质上它是一种带有很强的完整性和安全性限制的指针v 引用型变量只支持有限的逻辑判断:相等判断(是否同一个对象的引用):= 和!=类型判断(是否为一个类的实例):instanceof示例:使用对象1class Pointpublic int x=0, y=0;public Point(int x,int y)this.x=x;this.y=y;public int getX() return x;public int getY() return y;public void setXY(int x,int y) this.x=x; this.y=y; class T

39、estppublic static void main(String args)Point pa=new Point(23,94);pa.x=44; /如 x声明为private则无法使用此句,改为 setXY(44,2);System.out.println(pa=(+pa.getX()+ ,+pa.getY()+);示例:使用对象2/ Date1( )是构造方法, main()方法是类Date1中的方法 public class Date1 int year,month,day; Date1(int y,int m,int d) year=y; month=m; day=d; void p

40、rint() System.out.println(year+ +month+ +day); public static void main(String args) Date1 a=new Date1(2004,9,20); a.year=2005; a.print(); 示例:使用对象3/ main()方法是类UseDate2中的方法, main()使用类另一个 类Date2的对象class Date2 int year,month,day; void setDate(int y,int m,int d) year=y; month=m; day=d; void print() Syste

41、m.out.println(year+ +month+ +day); public class UseDate2 public static void main(String args) Date2 b=new Date2(); b.setDate(2004,9,1); b.print(); 对象的使用对象作为类的成员v类的成员变量可以是对象v注意:在使用前必须为该对象分配空间class Date int year,month,day; Date(int y,int m,int d) year=y;month=m;day=d; void showDate() System.out.printl

42、n(year+”,”+month+”,”+day);public class Student String no,name; Date birth; void setStu(String s1,String s2,int y,int m,int d) no=s1; name=s2; birth=new Dare(y,m,d);/为成员变量对象分配空间对象的使用方法中使用对象v对象作为方法的参数和返回值v注意:是引用传递。/passObject.java类对象作为方法参数,并且在方法中改变对象class Aint x=5;void change(A a)System.out.println(a.

43、x=+a.x);a.x=331;System.out.println(a.x=+a.x);class passObjectpublic static void main(String args) A aa=new A();aa.change(aa);System.out.println(aa.x= +aa.x);对象的使用对象数组v数组中的每个元素是对象。 public class ObjectArray public static void main() Date d=new Date(2); d0=new Date(1999,12,31); d1=new Date(2000,1,1); d

44、0.showDate(); 对象的清除v 定义对象时,必须用new分配空间,但使用后的释放是系统自动完成的。 Java运行时系统通过垃圾收集(Garbage Collection)周期性地监测释放无用对象所使用的内存,完成对象的清除。 除了自动垃圾收集外,通过调用方法System.gc()要求进行垃圾收集时。 当一个对象的内存空间被回收时,系统自动调用该对象的方法finalize(),进行删除工作。Company Logo包v包包 是类和接口的集合,提供一种高层访问保护和名空间管理 包得作用:避免同名冲突 包名本身又对应一个目录(用一个目录表示)。 包名可以有层次,以小数点分割。包名一般全小写

45、包( package)v package package pk1. pk2.pk3.; 如package first.second.third ,则系统对应在磁盘上建立目录:根路径firstsecondthird 包名建议 package cn.js.ccit.www; /命名要注意唯一性,可使用WWW域名的倒写 public class ComplexNumber 如果package未指定,则所有的 class都被组合到一个未命名的缺省default package包中,不能被其他包中的类引用 package说明必须是非注释非空行的第一行package语句后对应的是包的层次结构,包名之间是通

46、过点号来分隔的包( package)v使用包使用包 使用import语句 import pk1.pk2.pk3(类名或*) 注意:import语句要放在程序的最前面。 使用前缀包名 在每个要引入的类前,给出该类所在的包名。import java.applet.Applet; /引入包java.applet中的类Appleimport java.io.*; /引入包java.applet中的类Apple java.applet.Applet a=new java.applet.Applet()import java.applet.Applet;Applet a=new Applet();使用其他

47、包中的类v import语句 将指定包中的类引入当前的程序中,即告诉编译到哪去找程序中使用的类。v import语句 必须出现在所有类定义之前。 例:import java.util.* ; 该语句引入整个utility 类库(标准Java库的一部分) 例:import java.util.Vector ; 该语句只引入Vector类,但utility类库中的其他类不可用。主要包介绍Company Logo再谈staticvstatic 类(静态)成员变量 类(静态)方法v例子v不正确的使用类方法和类变量 staticv类方法(静态方法)或类变量(静态变量) static 用在变量或方法之前,

48、表明它们是属于类的v实例的方法和变量 若无static修饰,则变量和方法分别是某个实例对象的class ABCD char data; static int share_data;class Demo ABCD a,b,c,d;object achar dataobject cchar dataObject bchar datastatic intshare_dataobject dchar data类方法和类变量 staticvstatic 类变量 生存期不依赖于对象,无需创建实例对象,可以直接通过类名访问。 也可以通过该类的实例对象访问 任何一个类的实例访问或操作这个成员,都是对这同一个内

49、存单元的访问和操作 类方法 可以直接通过类名访问 只能访问该类的类变量和类方法,不能直接访问实例的变量和方法(无static)v若无static修饰,则变量和方法分别是实例的方法和变量 实例(非static)方法可以访问该类的类变量和类方法 遵循对象的生命周期,随着对象的创建而创建,随着对象的消亡而消亡static示例:使用静态变量public class StaticExstatic int gCount=0;public static void main(String args)StaticEx e1=new StaticEx();StaticEx e2=new StaticEx();e1

50、.gCount+;e2.gCount+;System.out.println(gCount of e1=+e1.gCount);System.out.println(gCount of e2=+e2.gCount);System.out.println(gCount=+StaticEx.gCount);static示例:实例计数器class Countprivate int serial;private static int counter=0;static int x=100;Count()counter+;/实例计数器serial=counter; int getSerial()retur

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁