第4章类与对象.ppt

上传人:本田雅阁 文档编号:2605657 上传时间:2019-04-16 格式:PPT 页数:120 大小:4.16MB
返回 下载 相关 举报
第4章类与对象.ppt_第1页
第1页 / 共120页
第4章类与对象.ppt_第2页
第2页 / 共120页
第4章类与对象.ppt_第3页
第3页 / 共120页
亲,该文档总共120页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

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

1、1,第4章 类 与 对 象,2,主要内容 从抽象到类 构造方法与对象的创建 参数传值 有理数的类封装 对象的组合 实例成员与类成员 方法重载与多态 this关键字 包 import语句 访问权限 难点 参数传值,导学,3,抽象的关键是抓住事物的两个方面:属性和功能 抽象的目的是从具体的实例中抽取出共有属性和功能形成一种数据类型。,4.1 从抽象到类,4,类是组成Java程序的基本要素。类封装了一类对象的属性和功能。类是用来产生对象的一种数据类型。 类的实现包括两部分:类声明和类体。基本格式为: class 类名 类体的内容 class是关键字,用来定义类。“class类名”是类的声明部分,类名

2、必须是合法的Java标识符。两个大括号以及之间的内容是类体。,4.2 类,5,为了给出Vehicle类,需要进行类声明,例如: class Vehicle 其中的“class Vehicle”称作类声明;“Vehicle”是类名。类的名字要符合标识符规定,即名字可以由字母、下划线、数字或美元符号组成,并且第一个字符不能是数字。给类命名时,遵守下列编程风格。,4.2.1 类声明,6,写类的目的是根据抽象描述一类事物共有的属性和功能,给出用于创建具体实例的一种数据类型,描述过程由类体来实现。类声明之后的一对大括号“”,“”以及它们之间的内容称作类体,大括号之间的内容称作类体的内容。 类体的内容由两

3、部分构成:一部分是变量的声明,用来刻画属性;另一部分是方法的定义,用来刻画功能。,4.2.2 类体,7,public class Vehicle double speed; /变量声明部分,刻画速度 int power; /变量声明部分,刻画功率 void speedUp(int s) /方法定义,刻画加速功能 speed=speed+s; void speedDown(int d) /方法定义,刻画减速功能 speed=speed-d; void setPower(int p) power=p; int getPower() return power; double getSpeed() r

4、eturn speed; ,8,类体分为两部分:一部分是变量的声明,另一部分是方法的定义。变量声明部分所声明的变量被称做域变量或成员变量。,4.2.3 成员变量,9,成员变量的类型可以是Java中的任何一种数据类型,包括: 基本类型:整型、浮点型、字符型; 引用类型:数组、对象和接口(对象和接口见后续内容)。,1成员变量的类型,10,1成员变量的类型:举例说明,class Factory float a ; Workman zhang; class Workman double x; ,11,成员变量在整个类内都有效,其有效性与它在类体中书写的先后位置无关。 不提倡把成员变量的定义分散地写在方

5、法之间或类体最后。,2成员变量的有效范围,12,(1)一行只声明一个变量。 (2)变量的名字除了符合标识符规定外,名字的首单词的首字母使用小写;如果变量的名字由多个单词组成,从第2个单词开始的其他单词的首字母使用大写。 (3)变量名字见名知意,避免使用诸如m1,n1等作为变量的名字,尤其是名字中不要将小写的英文字母l和数字1相邻接,人们很难区分“l1”和“ll”。,3编程风格,13,方法的定义包括两部分:方法声明和方法体。一般格式为: 方法声明部分 方法体的内容 ,4.2.4 方法,14,最基本的方法声明包括方法名和方法的返回类型,如: double getSpeed( ) return sp

6、eed; 注意:(1)返回值类型可以是Java中任何数据类型 (2) 方法的参数同C语言函数类似,1方法声明,15,方法声明之后的一对大括号“”,“”以及之间的内容称作方法的方法体。 方法体的内容包括局部变量的声明和Java语句,即方法体内可以对成员变量和该方法体中声明的局部变量进行操作。 在方法体中声明的变量和方法的参数被称作局部变量。 int getSum( int n) int sum= 0; for(int i=1;i=n;i+) sum+=i; return sum; ,2方法体,16,2方法体,和类的成员变量不同的是,局部变量只在声明它的方法内有效,而且与其声明的位置有关。方法的参

7、数在整个方法内有效,方法内的局部变量从声明它的位置之后开始有效。 如果局部变量的声明是在一个复合语句中,那么该局部变量的有效范围是该复合语句,即仅在该复合语句中有效, 如果局部变量的声明是在一个循环语句中,那么该局部变量的有效范围是该循环语句,即仅在该循环语句中有效。,17,public class A int m=10,sum=0;/成员变量 void f( ) if(m9) int z=10;/z为局部变量 z=2*m+z; for(int i=0;im;i+) sum=sum+i; m=sum;/合法 z=i+sum;/非法 ,18,如果局部变量的名字与成员变量的名字相同,则成员变量被隐

8、藏,即这个成员变量在这个方法内暂时失效,3区分成员变量和局部变量,19,分析,class Tom int x=10,y; void f() int x=5; y=x+x; ,class Tom int x=10,y; void f() int x=5; y=x+this.x; ,如果想在该方法中使用被隐藏的成员变量,必须使用关键字this,20,对成员变量的操作只能放在方法中,方法可以对成员变量和该方法体中声明的局部变量进行操作。在声明成员变量时可以同时赋予初值,4.2.5 需要注意的问题,21,class A int a=12; float b=12.56f; class A int a;

9、float b; a=12;/非法 b=12.56f;/非法 ,22,UML(Unified Modeling Language Diagram)图属于结构图,常被用于描述一个系统的静态结构。一个UML中通常包含有类(Class)的UML图,接口(Interface)的UML图以及泛化关系(Generalization)的UML图、关联关系(Association)的UML图、依赖关系(Dependency)的UML图和实现关系(Realization)的UML图。,4.2.6 类的UML类图,23,名字层,变量层,方法层,24,类是面向对象语言中最重要的一种数据类型,那么就可以用它来声明变量

10、。 在面向对象语言中,用类声明的变量被称作对象。和基本数据类型不同,在用类声明对象后,还必须要创建对象,即为声明的对象分配(成员)变量,当使用一个类创建一个对象时,也称给出了这个类的一个实例。通俗地讲,类是创建对象的“模板”,没有类就没有对象。,4.3 构造方法与对象的创建,25,什么是构造方法?它有什么作用?,构造方法是类中的一种特殊方法,当程序用类创建对象时需使用它的构造方法。 构造方法的作用:初始化,26,类中的构造方法的名字必须与它所在的类的名字完全相同,而且没有类型。 允许一个类中编写若干个构造方法,但必须保证它们的参数不同,即参数的个数不同,或者是参数的类型不同。(即重载),4.3

11、.1 构造方法,27,如果类中没有编写构造方法,系统会默认该类只有一个构造方法,即一个无参的且方法体为空的构造方法。如Vehicle类: Vehicle ( ) 如果类里定义了构造方法,Java将不提供默认的构造方法,28,创建一个对象包括对象的声明和为对象分配变量两个步骤。 1对象的声明 一般格式为: 类的名字 对象名字; 如:Vehicle car;,4.3.2 创建对象,29,使用new运算符和类的构造方法为声明的对象分配变量,即创建对象。 如果类中没有构造方法,系统会调用默认的构造方法,默认的构造方法是无参数的,且方法体中没有语句。,2为声明的对象分配变量,30,例4-2:,publi

12、c class Example4_2 public static void main(String args) Vehicle car1,car2; /声明2个对象 car1 = new Vehicle(); /为对象car1分配变量,使用new 运算符和默认的构造方法 car2 = new Vehicle(); /为对象car2分配变量,使用new 运算符和默认的构造方法 car1.setPower(128); car2.setPower(76); System.out.println(“car1的功率是:“+car1.getPower(); System.out.println(“car2

13、的功率是:“+car2.getPower(); car1.speedUp(80); car2.speedUp(100); System.out.println(“car1目前的速度:“+car1.getSpeed(); System.out.println(“car2目前的速度:“+car2.getSpeed(); car1.speedDown(10); car2.speedDown(20); System.out.println(“car1目前的速度:“+car1.getSpeed(); System.out.println(“car2目前的速度:“+car2.getSpeed(); ,31

14、,(1)声明对象时的内存模型。 car1,3对象的内存模型,32,3对象的内存模型,(2)为对象分配变量后的内存模型。 当系统见到 car1 = new Vehicle();时会 Vehicle类中的成员变量speed和power被分配内存空间,然后执行构造方法中的语句。 返回一个引用给car1,33,关于成员变量的默认值,如果构造方法里没有给出初始值,那么Java虚拟机将赋给成员变量默认值 整形变量:默认初值为0 浮点型:默认初值为0.0 布尔型:默认初值为false 引用类型:默认初值为null,34,一个类通过使用new运算符可以创建多个不同的对象,不同对象被分配的变量占有着不同的内存空

15、间 因此,改变其中一个对象的变量不会影响其他对象的变量,即改变其中一个对象的状态不会影响其他对象的状态。,4创建多个不同的对象,35,抽象的目的是产生类,而类的目的是创建具有属性和功能的对象。对象不仅可以操作自己的变量改变状态,而且能调用类中的方法产生一定的行为。 通过使用运算符“.”,对象可以实现对自己变量的访问和方法的调用。,4.3.3 使用对象,36,对象创建之后,就有了自己的变量,即对象的实体。通过使用运算符“.”,对象可以实现对自己的变量的访问,访问格式为: 对象.变量;,1对象操作自己的变量(对象的属性),37,对象创建之后,可以使用运算符“.”调用创建它的类中的方法,从而产生一定

16、的行为功能,调用格式为: 对象.方法;,2对象调用类中的方法(对象的功能),38,当对象调用方法时,方法中出现的成员变量就是指分配给该对象的变量。 在讲述类的时候我们讲过:类中的方法可以操作成员变量。当对象调用方法时,方法中出现的成员变量就是指分配给该对象的变量。 如:car1.setPower(128); car2.setPower(76);,3体现封装,39,1避免使用空对象 没有实体的对象称作空对象,空对象不能使用,即不能让一个空对象去调用方法产生行为。假如程序中使用了空对象,程序在运行时会出现异常:NullPointerException。由于对象是动态地分配实体,所以Java的编译器

17、对空对象不做检查。因此,在编写程序时要避免使用空对象。,4.3.4 对象的引用和实体,40,一个类声明的两个对象如果具有相同的引用,那么二者就具有完全相同的实体,而且Java有所谓“垃圾收集”机制,这种机制周期地检测某个实体是否已不再被任何对象所拥有(引用),如果发现这样的实体,就释放实体占有的内存。,2垃圾收集,41,举例说明,Vehicle car1 = new Vehicle(); Vehicle car2 = new Vehicle(); 若有car1 = car2;/即把car2保存的引用赋值给car1,此时,car1和car2指向相同的内存单元。,42,例 4-3,public c

18、lass Example4_3 public static void main(String args) Vehicle carOne,carTwo,carThree; carOne = new Vehicle(); carTwo = new Vehicle(); carOne.speedUp(60); carTwo.speedUp(90); System.out.println(“carOne目前的速度:“+carOne.getSpeed(); System.out.println(“carTwo目前的速度:“+carTwo.getSpeed(); carOne = carTwo; carT

19、hree = carTwo; System.out.println(“carOne目前的速度:“+carOne.getSpeed(); System.out.println(“carTwo目前的速度:“+carTwo.getSpeed(); System.out.println(“carThree目前的速度:“+carOne.getSpeed(); carOne=null; /carOne成为一个空对象 System.out.println(“carOne目前的速度:“+carOne.getSpeed(); /发生NullPointerException异常 ,43,方法中最重要的部分之一就是

20、方法的参数,参数属于局部变量,当对象调用方法时,参数被分配内存空间,并要求调用者向参数专递值,即方法被调用时,参数变量必须有具体的值。,4.4 参 数 传 值,44,在Java中,方法的所有参数都是“传值”的,也就是说,方法中参数变量的值是调用者指定的值的拷贝。 例如,如果向方法的int型参数x传递一个int值,那么参数x得到的值是传递的值的拷贝。因此,方法如果改变参数的值,不会影响向参数“传值”的变量的值,反之亦然。参数得到的值类似生活中的“原件”的“复印件”,那么改变“复印件”不影响“原件”,反之亦然。,4.4.1 传值机制,45,对于基本数据类型的参数,向该参数传递的值的级别不可以高于该

21、参数的级别。 例如,不可以向int型参数传递一个float值,但可以向double型参数传递一个float值。,4.4.2 基本数据类型参数的传值,46,例4_4,public class Circle double radius,area; void setRadius(double r) if(r0) radius=r; double getRadius() return radius; double getArea() area=3.14*radius*radius; return area; ,47,public class Example4_4 public static void

22、main(String args) Circle circle=new Circle(); double w=12.76; circle.setRadius(w); System.out.println(“圆的半径:“+circle.getRadius(); System.out.println(“圆的面积:“+circle.getArea(); System.out.println(“更改向方法参数r传递值的w的值为100“); w=100; System.out.println(“w=“+w); System.out.println(“圆的半径:“+circle.getRadius();

23、,48,Java的引用型数据包括前面刚刚学习的对象,以及后面将要学习的数组和接口。当参数是引用类型时,“传值”传递的是变量中存放的“引用”,而不是变量所引用的实体。 需要注意的是,对于两个同类型的引用型变量,如果具有同样的引用,就会用同样的实体,因此,如果改变参数变量所引用的实体,就会导致原变量的实体发生同样的变化;但是,改变参数中存放的“引用”不会影响向其传值的变量中存放的“引用”,反之亦然,4.4.3 引用类型参数的传值,49,例4-5:,public class TV int channel; /电视频道 void setChannel(int m) if(m=1) channel=m;

24、 int getChannel() return channel; void showProgram() switch(channel) case 1 : System.out.println(“综合频道“); break; case 2 : System.out.println(“经济频道“); break; case 3 : System.out.println(“文艺频道“); break; case 4 : System.out.println(“国际频道“); break; case 5 : System.out.println(“体育频道“); break; default : S

25、ystem.out.println(“不能收看“+channel+“频道“); ,50,public class Chineses TV homeTV; void buyTV(TV tv) homeTV=tv; void remoteControl(int m) homeTV.setChannel(m); void seeTV() homeTV.showProgram(); System.out.println(“用户买回的电视是在“+homeTV.getChannel()+“频道“); ,51,public class Example4_5 public static void main(S

26、tring args) TV haierTV = new TV(); haierTV.setChannel(5); System.out.println(“卖给用户的haierTV目前的频道是“+haierTV.getChannel(); Chineses zhangsan = new Chineses(); zhangsan.buyTV(haierTV); System.out.println(“zhangsan开始看电视节目“); zhangsan.seeTV(); int m=2; System.out.println(“zhangsan用遥控器将买回的电视更改到“+m+“频道“); z

27、hangsan.remoteControl(m); System.out.println(“现在卖给用户的haierTV目前的频道是“+haierTV.getChannel(); System.out.println(“zhangsan再看电视节目“); zhangsan.seeTV(); ,52,可变参数(The variable arguments)是JDK 1.5新增的功能。 可变参数是指在声明方法时不给出参数列表中从某项直至最后一项参数的名字和个数,但这些参数的类型必须相同。可变参数使用“”表示若干个参数,这些参数的类型必须相同,最后一个参数必须是参数列表中的最后一个参数。 对于一个参

28、数代表,如x,那么x.length等于x所代表的参数个数 参数代表可以通过下标来表示参数列表中的具体参数,如x0,x1,4.4.4 可变参数,53,public class Computer public int getSum(int. x) /x是可变参数的参数代表 int sum=0; for(int i=0;ix.length;i+) sum=sum+xi; return sum; ,54,public class Example4_6 public static void main(String args) Computer computer=new Computer(); int r

29、esult=computer.getSum(203,178,56,2098); System.out.println(“1203,178,56,2098的和:“+result); result=computer.getSum(66,12,5,89,2,51); System.out.println(“66,12,5,89,2,51的和:“+result); ,55,4.6 对象的组合,一个类可以把对象作为自己的成员变量,如果用这样的类创建对象,那么该对象中就会有其他对象。,56,4.6.1 圆锥体,对圆锥体作一个抽象: 属性:底圆,高 功能:计算体积 例4-8,57,public class

30、Circular Circle bottom; double height; void setBottom(Circle c) bottom=c; void setHeight(double h) height=h; double getVolme() return bottom.getArea()*height/3.0; double getBottomRadius() return bottom.getRadius(); public void setBottomRadius(double r) bottom.setRadius(r); ,58,public class Example4_

31、8 public static void main(String args) Circle circle = new Circle(); circle.setRadius(29); Circular circular = new Circular(); circular.setBottom(circle); circular.setHeight(128.76); System.out.println(“圆锥底圆的半径:“+circular.getBottomRadius(); System.out.printf(“圆锥的体积(保留3位小数):%5.3fn“,circular.getVolme(

32、); circular.setBottomRadius(208); System.out.println(“圆锥底圆的半径:“+circular.getBottomRadius(); System.out.printf(“圆锥的体积(保留3位小数):%5.3fn“,circular.getVolme(); ,59,4.6.2 关联关系和依赖关系的UML图 1关联关系 如果A类中成员变量是用B类声明的对象,那么A和B的关系是关联关系,称A关联于B或A组合了B。,4.6 对象的组合,60,关联关系,如果A关联于B,那么UML使用一个实线连接A和B的UML图,实线的起始端是A的UML图,终点端是B的

33、UML图,但终点端使用一个指向B的UML图的方向箭头表示实线的结束。,61,如果A类中某个方法的参数是用B类声明的对象或某个方法返回的数据类型是B类对象,那么A和B的关系是依赖关系,称A依赖于B。,2依赖关系,62,依赖关系,如果A依赖于B,那么UML使用一个虚线连接A和B的UML图,虚线的起始端是A的UML图,终点端是B的UML图,但终点端使用一个指向B的UML图的方向箭头表示虚线的结束。,63,4.7.1 实例变量和类变量的声明 成员变量可细分为实例变量和类变量。 在声明成员变量时,用关键字static给予修饰的称作类变量,否则称作实例变量(类变量也称为static变量,静态变量) cla

34、ss Dog float x;/实例变量 static int y;/类变量 ,4.7 实例成员与类成员,64,1不同对象的实例变量互不相同 分配给不同的对象的实例变量占有不同的内存空间。 2所有对象共享类变量 3通过类名直接访问类变量,4.7.2 实例变量和类变量的区别,65,public class Lader double 上底,高; /实例变量 static double 下底; /类变量 void 设置上底(double a) 上底 = a; void 设置下底(double b) 下底 = b; double 获取上底() return 上底; double 获取下底() retu

35、rn 下底; ,66,public class Example4_9 public static void main(String args) Lader.下底=100; /Lader的字节码被加载到内存,通过类名操作类变量 Lader laderOne=new Lader(); Lader laderTwo=new Lader(); laderOne.设置上底(28); laderTwo.设置上底(66); System.out.println(“laderOne的上底:“+laderOne.获取上底(); System.out.println(“laderOne的下底:“+laderOne

36、.获取下底(); System.out.println(“laderTwo的上底:“+laderTwo.获取上底(); System.out.println(“laderTwo的下底:“+laderTwo.获取下底(); ,67,0x123,0,上底,0,高,100,下底,0x123,0,0,landerone,landertwo,图4.20:对象共享类变量,68,类中的方法也可分为实例方法和类方法。 方法声明时,方法类型前面不加关键字static关键字修饰的是实例方法,加static关键字修饰的是类方法(静态方法)。,4.7.3 实例方法和类方法的定义,69,1对象调用实例方法 (1)当类的

37、字节码文件被加载到内存时,类的实例方法不会被分配入口地址,只有该类创建对象后,类中的实例方法才分配入口地址,从而实例方法可以被类创建的任何对象调用执行。,4.7.4 实例方法和类方法的区别,(2)实例方法中不仅可以操作实例变量,也可以操作类变量。,70,public class A int x; static int y; pubic void test( ) System.out.println(x);/合法 Systm.out.println(y);/合法 ,71,对于类中的类方法,在该类被加载到内存时,就分配了相应的入口地址。 实例方法不能通过类名调用,只能由对象来调用。,2类名调用类方

38、法,72,注意事项:,(1)类成员方法中除使用本方法中声明的局部变量外,只可以访问类成员变量,不能访问实例成员变量; 而实例成员方法中除可以使用本方法中声明的局部变量,还可以访问类成员变量及实例成员变量。,73,class Demo int a; static int b; static int f1() System.out.println(a); /不可以访问变量a System.out.println(b);/合法 ,74,注意事项:,(2) 类成员方法中只能调用类成员方法,不能调用实例成员方法; 而实例成员方法既可以调用类成员方法,也可以调用实例成员方法。 由于main() 方法是类成

39、员方法,所以在main()方法中,只能调用类成员方法。,75,例4-10,class Sum int x,y,z; static int getContinueSum(int start,int end) int sum=0; for(int i=start;i=end;i+) sum=sum+i; return sum; public class Example4_10 public static void main(String args) int result=Sum.getContinueSum(0,100); System.out.println(result);,76,方法重载的意

40、思是,一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同。,4.8 方法重载与多态,77,class A float add(int a,int b) return a+b; float add(long a,int b) return a+b; double add(double a,int b) return a+b; ,78,例4_11:重载举例,public class Tixing double above,bottom,height; Tixing(double a,double b,double h) above = a;

41、 bottom = b; height = h; double getArea() return (above+bottom)*height/2; ,79,public class People double computerArea(Circle c) double area=c.getArea(); return area; double computerArea(Tixing t) double area=t.getArea(); return area; ,80,public class Example4_11 public static void main(String args)

42、Circle circle = new Circle(); circle.setRadius(196.87); Tixing lader = new Tixing(3,21,9); People zhang = new People(); System.out.println(“zhang计算圆的面积:“); double result=puterArea(circle); System.out.println(result); System.out.println(“zhang计算梯形的面积:“); result=puterArea(lader); System.out.println(re

43、sult); ,81,this是Java的一个关键字,表示某个对象。this可以出现在实例方法中,但不可以出现在类方法中。 实例方法可以操作类的成员变量,当实例成员变量在实例方法中出现时,默认的格式是: this.成员变量 在构造方法中,可以通过this调用本类中具有不同参数表的构造方法。形式如下: this(参数列表),4.9 this关键字,82,class Point int x,y; public Point(int x,int y) This.x=x;this.y=y; System.out.println(“+this.x+”,”+this.y+”); public Point()

44、 this(5,5); ,83,包是Java语言中有效地管理类的一个机制。不同Java源文件中可能出现名字相同的类,如果想区分这些类,就需要使用包名。包名的目的是有效地区分名字相同的类,不同Java源文件中两个类名字相同时,它们可以通过隶属不同的包来相互区分。,4.10 包,84,通过关键字package声明包语句。package语句作为Java源文件的第一条语句,指明该源文件定义的类所在的包,即为该源文件中声明的类指定包名。package语句的一般格式为: package 包名; 如果源程序中省略了package语句,源文件中所定义命名的类被隐含地认为是无名包的一部分,只要这些类的字节码被存

45、放在相同的目录中,那么它们就属于同一个包,但没有包名。,4.10.1 包语句,85,如果一个类有包名,那么就不能在任意位置存放它,否则虚拟机将无法加载这样的类。 有某程序声明如下: package tom.jiafei 要将源文件编译得到的字节码文件保存在tomjiafei的目录中(源文件可以任意存放),4.10.2 有包名的类的存储目录,86,如果主类的包名是tom.jiafei,那么主类的字节码一定存放在tomjiefei目录中,那么必须到tomjiefei的上一层(即tom的父目录)目录中去运行主类。假设tomjiefei的上一层目录是1000,那么,必须使用如下格式来运行: C:100

46、0java tom.jiafei.主类名 即运行时,必须写主类的全名。因为使用了包名,主类全名是:“包名.主类名”(类似于大连的全名是:“中国.辽宁.大连”)。,4.10.3 运行有包名的主类,87,例4-12,package tom.jiafei; public class Student int number; Student(int n) number=n; void speak() System.out.println(“Student类的包名是tom.jiafei,我的学号:“+number); ,88,package tom.jiafei; public class Example

47、4_12 public static void main(String args) Student stu=new Student(10201); stu.speak(); System.out.println(“主类的包名也是tom.jiafei“); ,89,如果一个类想要使用的那个类和它不在一个包中,它怎样才能使用这样的类呢?这正是import语句要帮助完成的使命。,4.11 import 语句,90,Java为我们提供了大约130多个包 java.lang 包含所有的基本语言包 javax.swing 抽象窗口工具集中的图形、文本、GUI等 java.io 包含所有的输入输出类 jav

48、a.util 包含实用类 java.sql 包含操作数据库的类 包含所有实现网络功能的类 java.applet 包含所有的实现java applet的类,4.11.1 引入类库中的类,91,例4-13,import java.util.Date; public class Example4_12 public static void main(String args) Date date=new Date(); System.out.println(“本地机器的时间:“); System.out.println(date); ,92,用户程序也可以使用import语句引入非类库中有包名的类 用户为了能使自己的

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

当前位置:首页 > 其他


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