四章类和对象1.ppt

上传人:本田雅阁 文档编号:3195293 上传时间:2019-07-29 格式:PPT 页数:89 大小:1.76MB
返回 下载 相关 举报
四章类和对象1.ppt_第1页
第1页 / 共89页
四章类和对象1.ppt_第2页
第2页 / 共89页
四章类和对象1.ppt_第3页
第3页 / 共89页
四章类和对象1.ppt_第4页
第4页 / 共89页
四章类和对象1.ppt_第5页
第5页 / 共89页
点击查看更多>>
资源描述

《四章类和对象1.ppt》由会员分享,可在线阅读,更多相关《四章类和对象1.ppt(89页珍藏版)》请在三一文库上搜索。

1、第四章 类和对象-1,Company Logo,,主要内容,学习目标 重点、难点,Company Logo,回顾,Java 具有8种基本数据类型 boolean、char、byte、int、short、long、float 及 double Java 中的运算符可划分为四大子集 算术运算符、位运算符、关系运算符、逻辑运算符 Java 支持下列控制结构 顺序、选择、循环、跳转 数组 可用来将同一类型的数据存储在连续的内存位置。 声明、初始化,引用,常见应用(数组长度、最值等) 数据的输入输出 main方法参数的使用,本章背景,本章将学习 面向对象的基本概念和特征,面向对象设计方法的基本思想。 如

2、何自定义类,创建和使用对 然后实现方法重载 要求学生 掌握面向对象程序技术的基本概念 掌握类与现实世界的关系,并能根据需求正确对其进行抽象 通过自定义类的设计,掌握类成员变量,成员方法定义和使用,掌握构造函数的定义和使用,掌握方法重载,任务学习,Company Logo,任务描述 任务一:理解类和对象的概念及其关系,会分析和设计银行帐户对象和储户对象,任务学习,Company Logo,支撑知识介绍 面向对象的基本概念 类和对象的概念和关系 封装性、多态性、继承性 面向对象的分析和设计方法,程序语言的发展人类更容易理解,面向机器(机器语言、汇编语言) 可读性、可维护性、移植性差;效率高 面向过

3、程 核心:算法+数据结构 缺陷:随应用程序的规模扩大,操作与数据分离所带来的维护工作量越来越大 不适用于GUI界面、事件驱动编程 面向对象 人类先进的模式应用到计算机模型。能更直接的描述客观存在的事物。 从现实世界中客观存在的事物出发来设计,并在软件开发中运用人类的自然思维方式。,面向对象,对象 世界上所有的事物都可以称为对象。 包括有形(一台电视机等)和无形(帐户、一项记录等) 对象两大要素 属性(对象静态特征,可以用某些数据描述) 操作(对象动态特征、又称方法,具有的行为或功能) 如电视 属性有:品牌、尺寸、重量等 操作有:收视、选台、音量调节等 按照子类与父类的关系,把若干个对象类组成一

4、个层次结构的系统 对象彼此之间仅能通过传递消息互相联系。,Company Logo,Company Logo,课堂思考,Company Logo,思考:一只大雁要从北方飞往南方,第一步:抽象出对象-大雁 第二步:识别该对象的属性-一双翅膀,黑色的羽毛 第三步:识别该对象的行为-飞行、觅食等 第四步:封装属性和行为来描述大雁这类动物。,总结:类是封装对象属性和行为的载体 对象是类的一个实例,面向对象,类 对具有相同基本特征对象的一种抽象,是同一类事物的统称 类也是Java中最重要的数据类型,自定义类型 由类定义生成的数据称为这个类的实例或对象。 类和对象关系 类是一个抽象的概念 对象是一个具体的

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

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

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

8、取候选类和方法,(1)要发现对象以及对象的属性: 在以上使用实例中寻找名词,如帐户 (2)要发现方法: 在使用实例中寻找动词,如查询 (3)确定哪些是对象,哪些是对象的属性: 一般,属性是一些简单值,如余额。 而对象是由一些简单值组合而成,如帐户包括户名,余额,开户时间等。 (4)把找到的方法分配对合适的对象,使其成为对象的成员方法。,一些属性和对象: 银行、帐户、余额、银行卡等 找到的方法包括: 取钱、选择帐户、查询余额、取卡等,任务学习,Company Logo,任务解决 确定银行帐户对象和储户对象:,绿色:属性 紫色:方法,这两个对象之间存在的关系为:一个储户可以有多个银行帐户,一个帐户

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

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

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

12、素。它封装了一类对象的属性和方法,是这一类对象的原型。,类体,1 Java 类的定义,类名 必须符合Java标识符的命名规则 以字母、字符”_”或”$”开头 不能使用与Java关键字相同的类名 类名通常以大写字母开头,如果类名由多个单词组成,则每一个单词的开头字母要大写 类名应尽量有意义,便于程序阅读者的理解和程序的维护,养成良好的编程习惯。,2、类的修饰符,访问控制修饰符 public 公开类:类成员可以被本包和不同包得任何类、对象所用;反之非公开类通常为同一个包中其它非公开类或公开类服务。 缺省 只能被同一个 包中的其他类、对象引用或继承。 protected 不能用 private 不能

13、用 抽象类修饰符 abstract 后面学 最终类修饰符 final 后面学,注意:abstract和final是矛盾的,不能同时选择,要么都不用,要么只能选一个。,3、成员变量定义-语法规范,变量修饰字 变量数据类型 变量名1,变量名2=变量初值;,public | protected |缺省| private static final transient volatile,成员变量的类型 可以是基本类型 也可以是引用类型(类,接口,数组) 在一个类中的成员变量唯一 变量必须先定义,后使用 可以设置初值,如果没有设置,则会有默认值 整型 (byte、int、short、long)0 字符型

14、(char)u0000 布尔型 (boolean)false 实型 (float double)0.0 引用类型 (数组、类、接口)null,3、成员变量定义,例如: public class Date1 /类声明 int year,month,day; /成员变量声明 或者: byte b; double d1=0.23,d2=56.7; boolean mycom=true; char mc=b; String s“abc”;,成员变量定义-修饰符,访问控制修饰符有4种 public、protected、缺省、 private,用来规定变量的访问权限 static 指明该变量是一个类变量(

15、静态变量);若无,则为实例变量(属于对象) final 指该变量是一个常量,不可改变,ccit,33,4、访问修饰符的控制范围,:可访问,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 ar

16、gs) A pt=new A();/通过new运算符生成一个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=10;/不可以

17、,是实例变量,必须先创建对象后才能使用 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,同一个类内可以访问任何访问权限的变量。,package test; public class Demo2 void test() Demo1 dm1=new Demo1(); dm1.priInt

18、=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() priInt=1; proInt=1; defInt=1; pubInt=1; ,package test.t1; import test.Demo1; public class Dem

19、o4 void 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;) /方法体:方法的内容 ,public | protected|缺省 | private static final | abstract native synchronized,返回类型 可

20、以是任意的Java数据类型 当一个方法不需要返回值时,返回类型为void。 参数的类型 可以是简单数据类型 也可以是引用数据类型(数组、类或接口) 参数传递方式是值传递。 方法体 对方法的实现 包括局部变量的声明以及所有合法的Java指令。 局部变量的作用域只在该方法内部。,举例:方法定义,举例: final void move(int dx,int dy) throws IOException x+=dx; y+=dy; 举例: class Test int a,b; void change(Test obj) obj.a=50; obj.b=40; /可以在函数中改变对象状态 void s

21、etTest(int x,int y) a=x; b=y; ,6、方法定义-修饰符,方法命名 符合标识符规则 Java中允许同名方法存在,但方法的参数列表应不同(方法的重载) 访问控制权限 public 、pretected、缺省、private含义同成员变量 其他修饰符 static 类方法(静态方法),可直接用类名来调用,随时可用。 abstract 抽象方法,只有声明部分,方法体由子类来实现 final 最终方法,不能被子类重构 native 本地方法,由本地其他语言代码实现 synchronized 同步,将在“多线程”中介绍,static 用于修饰类的数据成员和方法,表示该成员为静态

22、成员 基本形式: static 数据类型 变量名; static 返回类型 方法名(参数列表) /方法体 ,修饰符static,class A static int b=0; /静态成员变量 static void get() /静态方法 ,static修饰的 类成员或静态成员 在定义时就静态分配了内存空间,在生成类对象之前就可以使用静态成员 静态成员是属于整个类的,一个类的多个对象可以共享该静态成员 无static修饰的 实例成员 属于某个对象或实例,必须要定义对象才能使用,修饰符static,对静态成员的访问方法 先生成该类的实例(对象),然后再通过点运算符访问 A a=new A();

23、a.b=5; a.get() 是不生成实例,直接在类名后加上点运算符和静态成员名 A.b=5; A.get(),Company Logo,static方法内部随时可以访问static成员变量和方法,要访问非static成员变量或方法,必须先创建一个对象。非static方法随时访问,静态方法不能被重载和重写,修饰符static,对静态成员的访问方法 static方法内部 可以访问static成员变量和方法 不能访问非static成员变量或方法,必须先创建一个对 非static方法 可以访问static成员变量和方法 可以访问非static成员变量和方法,Company Logo,class Po

24、int static int x; int y; public static void main(String args) x=10;/可以,类变量随时可以使用 y=20;/不可以。必须先创建一个类对象 Point pt=new Point(); pt.y=20;/可以通过对象pt来访问pt对象中的变量y ,修饰符-final,final关键字 最终的,不能修改 可以修饰类,成员变量和方法。 最终类,不能再有子类; 最终方法,不能再被重写; 最终属性,初始化后,不能再被赋值。常量,Company Logo,final class A final double PI=3.1416; final

25、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(5.0); ,a.PI=100或重写方法area()都是错误的,修饰符 abstract,抽象方法 用abstract修饰的方法, 抽象方法只有方法的返回值、名称和参数列表,没有函数体。 抽象类 用abstract修饰的类 抽象类是一种没有完全实现的类。 不能用它产生具体的实例,Company Logo,7、方法,

26、类成员方法 方法定义 方法调用 方法重载 构造方法 主方法,Company Logo,方法定义,返回值类型 可以是基本数据类型、数组或类 如果方法不返回任何值,必须声明为void(空) 参数列表 由零个或多个参数构成,参数之间用逗号分隔,每个参数由一个数据类型和一个标识符构成 方法体 定义了该方法具体是如何实现的,是整个方法的核心和重点 局部变量 方法体中定义的变量 参数列表,Company Logo,方法修饰符 返回值类型 方法名 (参数列表) 方法体 ,方法调用,调用方法 实参在调用时会代替方法定义中的形参。 要求实参的类型、个数和顺序必须与定义中的形参表一致。 方法调用的形式有两种 一种

27、是把方法调用作为一个表达式语句 另一种是作为一个表达式,Company Logo,方法重载,方法重载 一个类中多个方法具有相同的方法名,但参数的类型或参数的数量不同 静态多态:编译系统调用方法时,系统自动根据实际参数的数量和类型匹配,Company Logo,public class MethodOverload public static void main(String args ) MethodOverload obj=new MethodOverload(); System.out.println(obj.square(3)+” ”+obj.square(1.5); int squar

28、e( int x ) return x * x; double square( double y ) return y * y; ,构造方法,类的特殊的方法,用来初始化对象 要求 构造函数的方法名与类名一致 构造函数没有返回类型,不能有void 只能通过new关键字在创建对象的时候调用 注意 在创建一个类的新对象时,系统会自动调用该类的构造函数为新对象初始化 每一个类至少都有一个构造方法 当某个类的没有声明构造方法时,系统会为其自动生成一个默认构造方法(无参数、无方法体)。 构造方法使用其参数初始化新对象的状态。 构造函数可以重载(参数序列不同)。,当创建对象时,首先用new分配该对象的内存空

29、间,然后调用某一个构造方法,对该对象内存空间初始化。,Main方法,主方法 是Java应用程序执行的起点 与其它方法相似,它必须在类的内部定义 注意: 一个Java源文件可以包含一个或多个类 但在Java的Application中 必须有而且只能有一个类包含main方法 且该程序文件的名称必须与包含main方法的类的类名一致。,Company Logo,main方法必须是公有的(public),静态的(static),没有返回值,有一个字符串数组参数,用于进行参数的传递。,任务学习,Company Logo,完成任务步骤分析 一是如何通过类定义描述一个具体的点 一个类Point表示抽象的点,定

30、义两个成员变量x, y表示点对应的具体位置 二是如何计算点到原点的距离 Math中已经实现了求平方根的方法sqrt() 三是如何计算点与点之间的距离 同上 编写主类,测试调用,任务学习,Company Logo,任务解决 编写程序 递交,任务学习,Company Logo,总结 类的定义主要包括成员变量和成员方法的定义 一般语句不能单独放在类中,必须放到方法中 成员变量的作用范围为整个类 成员方法(方法的返回值,方法的局部变量,可以重载) 主方法 访问控制修饰符 public 、protected、缺省、private 修饰类 修饰成员变量或成员方法 其他修饰符 static final ab

31、stract,任务学习,Company Logo,任务描述 任务三:定义和处理员工信息,任务学习,Company Logo,支撑知识介绍 成员变量和局部变量 作用范围 变量隐藏 this关键字 对象 对象创建 访问对象 对象消除 包 package Import 再淡static成员变量和成员方法,成员变量和局部变量,成员变量 在类体中定义 在整个类中都有效 局部变量 在方法中定义 方法体中声明 方法中的形参 只在本方法中有效,Company Logo,class Data int x=12,y=5; /成员变量 public void sum() int s; /局部变量 s=x+y; ,c

32、lass Data int x=12,y=5; public void sum() int x=3; /局部变量x屏蔽了成员变量 int s; s=x+y; ,名字隐藏:局部变量名与成员变量名相同,则成员变量被屏蔽,名字隐藏和this关键字,名字隐藏 局部变量与类的成员变量同名,则局部变量会隐藏成员变量,称为名字隐藏。 若要访问被隐藏的成员变量,则必须使用this来访问。 this 用于代表当前正在使用或访问的对象 每一个对象内部都有一个this变量,用于指明自身地址,Public class Point private int x; private int y; public Point()

33、x=0;y=0; public Point(int x)/int x为局部变量与成员变量x同名,成员x隐藏 this.x=x;y=0;/局部变量x的值赋给成员变量x public Point(int x,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;

34、public void setPoint(Point pt)x=pt.x;y=pt.y; ,this关键字,this 表示对当前对象的引用 表示使用类的成员变量,而非局部变量,尤其是()在成员变量(名字隐藏)与局部变量同名时 用于构造方法中引用满足指定参数类型的构造方法 只能用一个,且必须放在方法体的第一个语句,Company Logo,public class Employee private String name; private int salary; public Employee() this(“Unknown”); public Employee(String n, int s)

35、 name = n; salary = s; public Employee(String n) this(n,0); /引用本类的构造方法,只能放在第一 ,对象,对象 是类的实例;创建类的目的是以类为模板创建对象。 对象的声明周期 创建对象 使用对象 删除对象,一个类可以有多个实例,对象的创建,对象的创建 需要两个步骤 对象创建之前要先进行声明,但没有分配空间,为null,不能使用 Car demoCar; 然后通过new操作符创建一个对象实例,真正引用一个对象: demoCar = new Car(); 也可以两步合一: Car demoCar new Car(); 对象的构造过程 为对象

36、开辟空间,并对对象的成员变量进行缺省的初始化; 对成员变量进行指定的初始化; 调用构造方法。,new 先为该对象从堆中申请内存空间,自动调用构造行数对该对象内存进行初始化,最后返回对象的引用,若内存不够,返回null。,对象的使用,对象的使用 访问对象的成员变量和方法 对象做类的成员 方法中使用对象 对象数组,对象的使用访问对象的成员变量和方法,访问对象的成员变量和方法 通过运算符“.”进行访问对象的成员变量和方法 例如: MyDate date = new MyData(); int day; day = date.day; /引用date的成员变量day date.tomorrow();

37、/调用date的方法tomorrow(),引用对象类型,复合(引用)类型 类 数组 接口 引用类型 指向一个对象在内存中的位置,本质上它是一种带有很强的完整性和安全性限制的指针 引用型变量只支持有限的逻辑判断: 相等判断(是否同一个对象的引用):= 和!= 类型判断(是否为一个类的实例):instanceof,示例:使用对象1,class Point public 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;

38、public void setXY(int x,int y) this.x=x; this.y=y; ,class Testp public 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 in

39、t year,month,day; Date1(int y,int m,int d) year=y; month=m; day=d; void print() 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

40、,day; void setDate(int y,int m,int d) year=y; month=m; day=d; void print() System.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(); ,对象的使用对象作为类的成员,类的成员变量可以是对象 注意:在使用前必须为该对象分配空间,class Date int year,mont

41、h,day; Date(int y,int m,int d) year=y;month=m;day=d; void showDate() System.out.println(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);/为成员变量对象分配空间 ,对象的使用方法中使用对象,对象作为方法的参数和返回值 注意:是引用传递

42、。,/passObject.java 类对象作为方法参数,并且在方法中改变对象 class A int x=5; void change(A a) System.out.println(“a.x=“+a.x); a.x=331; System.out.println(“a.x=“+a.x); class passObject public static void main(String args) A aa=new A(); aa.change(aa); System.out.println(“aa.x= “+aa.x); ,对象的使用对象数组,数组中的每个元素是对象。 public clas

43、s ObjectArray public static void main() Date d=new Date(2); d0=new Date(1999,12,31); d1=new Date(2000,1,1); d0.showDate(); ,对象的清除,定义对象时,必须用new分配空间,但使用后的释放是系统自动完成的。 Java运行时系统通过垃圾收集(Garbage Collection)周期性地监测释放无用对象所使用的内存,完成对象的清除。 除了自动垃圾收集外,通过调用方法System.gc()要求进行垃圾收集时。 当一个对象的内存空间被回收时,系统自动调用该对象的方法finalize

44、(),进行删除工作。,包,包 是类和接口的集合,提供一种高层访问保护和名空间管理 包得作用:避免同名冲突 包名本身又对应一个目录(用一个目录表示)。 包名可以有层次,以小数点分割。包名一般全小写,Company Logo,包( package),package package pk1. pk2.pk3.; 如package first.second.third ,则系统对应在磁盘上建立目录:根路径firstsecondthird 包名建议 package cn.js.ccit.www; /命名要注意唯一性,可使用WWW域名的倒写 public class ComplexNumber 如果pac

45、kage未指定,则所有的 class都被组合到一个未命名的缺省default package包中,不能被其他包中的类引用 package说明必须是非注释非空行的第一行,package语句后对应的是包的层次结构,包名之间是通过点号来分隔的,包( package),使用包 使用import语句 import pk1.pk2.pk3(类名或*) 注意:import语句要放在程序的最前面。 使用前缀包名 在每个要引入的类前,给出该类所在的包名。,import java.applet.Applet; /引入包java.applet中的类Apple import java.io.*; /引入包java.a

46、pplet中的类Apple,java.applet.Applet a=new java.applet.Applet(),import java.applet.Applet; Applet a=new Applet();,使用其他包中的类,import语句 将指定包中的类引入当前的程序中,即告诉编译到哪去找程序中使用的类。 import语句 必须出现在所有类定义之前。,例:import java.util.* ; 该语句引入整个utility 类库(标准Java库的一部分) 例:import java.util.Vector ; 该语句只引入Vector类,但utility类库中的其他类不可用。

47、,主要包介绍,再谈static,static 类(静态)成员变量 类(静态)方法 例子 不正确的使用,Company Logo,类方法和类变量 static,类方法(静态方法)或类变量(静态变量) static 用在变量或方法之前,表明它们是属于类的 实例的方法和变量 若无static修饰,则变量和方法分别是某个实例对象的,class ABCD char data; static int share_data; class Demo ABCD a,b,c,d; ,类方法和类变量 static,static 类变量 生存期不依赖于对象,无需创建实例对象,可以直接通过类名访问。 也可以通过该类的实例对象访问 任何一个类的实例访问或操作这个成员,都是对这同一个内存单元的访问和操作 类方法 可以直接通过类名访问 只能访问该类的类变量和类方法,不能直接访问实例的变量和方法(无static) 若无static修饰,则变量和方法分别是实例的方法和变量 实例(非static)方法可以访问该类的类变量和类方法 遵循对象的生命周期,随着对象的创建而创建,随着对象的消亡而消亡,static示例:使用静态变量,public class StaticEx static int gCount=0; public static void main(String a

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1