第03章面向象特征g

上传人:仙*** 文档编号:47000547 上传时间:2021-12-16 格式:PPT 页数:126 大小:752.50KB
收藏 版权申诉 举报 下载
第03章面向象特征g_第1页
第1页 / 共126页
第03章面向象特征g_第2页
第2页 / 共126页
第03章面向象特征g_第3页
第3页 / 共126页
资源描述:

《第03章面向象特征g》由会员分享,可在线阅读,更多相关《第03章面向象特征g(126页珍藏版)》请在装配图网上搜索。

1、1Java语言程序设计刘玉江2第三章 面向对象特征授课内容:1.基本概念2.类的定义3.对象4.类的继承和多态5.接口和包6.常用工具类3基本概念n什么是编程语言?n人和计算机进行交流的工具和手段n编程语言的发展n机器语言: 0101001n汇编语言: movn第三代语言: 高级语言,以C语言为代表,过程式编程语言n第四代语言: 非过程化/面向对象的编程语言4n面向对象n面向对象编程(Object Oriented Programming-OOP)n面向对象是一种软件开发的方法,“面向对象的分析与设计” n第一个面向对象的语言: Simula-67n第一个成功的面向对象编程语言: Smallt

2、alknC+, JAVA, C#, PERL等1.用客观世界中描述事物的方法来描述程序中要解决的问题2.万事万物都是对象3.程序便是成堆的对象,彼此通过消息的传递,请求其他对象进行工作 基本概念5n五个基本概念1.对象2.类3.封装性4.继承性5.多态性基本概念61.对象 (object)n对象包含两个特性n状态: 指对象本身的信息(内部信息/内部变量)n行为: 实现对信息的访问/对象的操作n标志: 代表对象的标识符n山地车的状态(两个车轮、一些齿轮、速度、挡数),行为(刹车、加速、减速和换挡)n书包含很多信息,拥有访问所包含信息的方法,一页一页的看,通过目录找到感兴趣的内容基本概念71.对象

3、 (object)n状态变量(variables)n行为方法(method)n对象就是变量和相关方法的软件集合n一个对象可以由其他对象组合而成,窗口(按钮,菜单条,文本框,状态栏等)n程序就是对象的集合,对象之间相互交互和通信完成任务n搭积木基本概念82.类 (class)n现实世界中,存在很多同类的对象,很多桌子、书、自行车n一种原型,一种抽象,一种共性,一个模板n实例,某类对象的一个特定实体,类是对象的一个抽象基本概念93.封装性n模块化-每个对象的源文件可以是相互独立的,可以被不同的程序调用,每个对象是一块积木,可以搭建不同的形状n信息隐藏-通常定义一个公共接口/方法实现对对象的访问,可

4、以调整对象的私有信息和方法,而不会对其他调用它的对象产生影响n可重用性基本概念104.继承性运输工具航空运输工具陆地运输工具水上运输工具人力驱动引擎驱动二轮四轮客运货运基本概念114.继承性n多重继承类A类B类C类D类F类Gn一个类拥有多个父类产生二义性,例类C和类D都有一个同名的方法,类G?nJava中仅仅支持单一继承,同时Java采用Interface(接口)实现多重继承而避免父类二义性基本概念125.多态性n表现在继承中方法的重写n子类从父类继承(extends扩展)而来n多个子类同属一个父类,所有子类有相同的父类n继承父类的方法n在不同的子类中有不同的表现形式n表现在用一个类中方法的重

5、载基本概念135.多态性n多态性在继承中的表现基本概念145.多态性class Square extends Shape void draw() System.out.println(Square.draw(); void erase() System.out.println(Square.erase()“); class Triangle extends Shape void draw() System.out.println(Triangle.draw(); void erase() System.out.println(Triangle.erase(); class Shape void

6、 draw() void erase() class Circle extends Shape void draw() System.out.println(Circle.draw(); void erase() System.out.println(Circle.erase(); 基本概念155.多态性public class Test public static Shape randShape() switch(int)(Math.random() * 3) default: case 0: return new Circle(); case 1: return new Square();

7、 case 2: return new Triangle(); public static void main(String args) Shape s = new Shape9; for(int i = 0; i s.length; i+) si = randShape(); for(int i = 0; i javac A.javax has private access in A a.x = 100; print() has private access in A a.print(); 2 errors类成员的访问class A private int x;private void pr

8、int() class B void test() A a = new A();a.x = 100;a.print();29nprotected (保护变量/保护方法)n容许类本身、子类(有一定限制)以及同一个包中所有类访问(先构造对象,再访问)类成员的访问class A protected int x;protected void print() class B void test() A a = new A();a.x = 100;a.print();package abc;class A protected int x;protected void print() package xyz

9、;import abc.A;class B extends A void test(A a, B b) a.x = 100;a.print();b.x = 100;b.print();/illegal/illegal/legal/legal30n无修饰 (友好变量/友好方法)n容许类本身以及同一个包中所有类访问类成员的访问class A int x;void print() class B void test() A a = new A();a.x = 100;a.print();package abc;class A int x;void print() package abc;class

10、B void test() A a = new A();a.x = 100;a.print();31n小结名称访问权修饰符类本身子类包所有类公共public默认-保护protected *私有private* 指子类与父类不在同一个包中的情况类成员变量的访问32nstatic (静态变量/静态方法)n类的变量/方法,独立于类的对象,可以直接根据类名调用class S static int A = 12, B = 34;static void print() class Test public static void main(String args) System.out.println(“A

11、=“ + S.A + “ B=“ + S.B);S.print();类成员变量33nstatic (静态变量/静态方法)class Test public void print(int x) System.out.println(x); public static void main(String args) int x = 3;print(x);D:javac Test.javaTest.java:9: non-static method print(int) cannot be referenced from a static context print(x); 1 errorclass

12、Test public void print(int x) System.out.println(x); public static void main(String args) int x = 3;Test t = new Test();t.print(x);class Test public static void print(int x) System.out.println(x); public static void main(String args) int x = 3;print(x);static方法中仅仅可以调用其他static方法类成员34nfinal 变量/方法nfina

13、l变量: 定义一个常数,即变量值不能改变final double AVOGADRO = 6.022e23;nfinal类: 不能有子类nfinal方法: 方法不能被重写(overriding)class ChessAlgorithm . . . final void nextMove(ChessPiece pieceMoved, BoardLocation newLocation) . . . .类成员变量35n非访问控制修符n静态方法staticn属于类的方法n最终方法finaln不能被子类重新定义的方法n抽象方法abstractn只有方法说明,没有具体实现n本地方法nativen以其他语言

14、实现方法功能n同步方法synchronizedn用于多线程程序中的协调和同步类成员方法的访问36n例成员方法class Test public static void main(String args) double d_product;Area myArea;myArea = new Area(); d_product = myArea.product();System.out.println(“myArea的面积是: ” + d_product);class Area double width, height; void setV(double w, double h) width = w

15、;height = h; double product() return width*height;37n方法参数成员方法public static void main(String args) int x=3, y=4;Test p = new Test();System.out.println(x + + y);p.addI(x, y);System.out.println(x + + y);Vector c = new Vector();c.addElement(s1);c.addElement(s2);System.out.println(c.size();p.addV(c);Syst

16、em.out.println(c.size();import java.util.Vector;class Test private void addV(Vector v) v.addElement(s3); private void addI(int i1, int i2) i1 +; i2 +; 形参和实参D:java Parameter3 43 423注意1: 类型匹配注意2:基本类型与复合类型参数传递的结果不同38n例成员方法class Test public static void main(String args) ex A = new ex();A.p();class ex in

17、t u, v;void p2(int x, int y) int i, j;for (i=1; i=x;i+) j = y+i; System.out.print(j+“ ”); void p( ) u=3; v=2; p2(u, v);System.out.println();u+=v; v*=u; p2(u, v); u=3; v=2;u=5; v=10;输出结果:3 4 511 12 13 14 1539n方法的重载(overload)n方法名相同,但方法的参数不同方法描述 方法名(标识符) 参数类型 方法返回值 绝对值 abs(a) int int绝对值 abs(a) long lon

18、g绝对值 abs(a) float float绝对值 abs(a) double double public static int abs(inta) public static long abs(longa) public static float abs(floata)public static double abs(doublea) 成员方法40n方法的重写(overriding)n子类重写父类的方法成员方法class Father void display( ) ; class Son extends Father void display() ; Father f = new Fat

19、her();f.display();Son s = new Son();s.display();41构造方法n创建对象/实例化对象new 例1: Apple a = new Apple(); (创建对象)例2: Apple a; (对象的说明) a = new Apple(); (实例化对象)1.对象的实例化通过构造方法(constructor)来实现2.构造方法的名字与类名相同3.构造方法没有返回值4.构造方法可以有多个,构成方法的重载(overload)42n例: 对象的实例化和初始化class jex6_8 public static void main(String args) Qan

20、gle q1 = new Qangle(); Qangle q2 = new Qangle(20, 50); Qangle q3 = new Qangle(q1); System.out.println(q1.width() +“ ” +q1.height(); System.out.println(q2.width() +“ ” +q2.height(); System.out.println(q3.width() +“ ” +q3.height();class Qangle int a, h;Qangle () a = 10; h = 20;Qangle(int x, int y) a =

21、 x; h = y;Qangle(Qangle r) a = r.width(); h = r.height();int width() return a;int height() return h;输出结果:10 2020 5010 20构造方法43n方法的重载(overload)构造方法class Tree int height; Tree() prt(“Planting a seeding”); height = 0; Tree(int i) prt(“Creating new Tree that is ” + i + “ feet tall”);height = i; void inf

22、o() prt(“Tree is ” + height + “ feet height”); void info(String s) prt(s + “: Tree is ” + height +“ feet height”); static void prt(String s) System.out.println(s); for (int i =0; i 5; i+) Tree t = new Tree(i); t.info(); t.info(“my tree”);new Tree();44n默认构造方法例 class Apple int color; Apple a = new App

23、le();n对象实例的判断: null例 Apple a; if (a = null) System.out.println(“Day dream”);构造方法运行时系统自动赋予一个空构造函数如 Apple() 45n构造方法构造方法 class Cmethod Cmethod (boolean b) public static void main (String args) Cmethod c1 = new Cmethod(); Cmethod c2 = new Cmethod(false); class Cmethod Cmethod (boolean b) public static v

24、oid main (String args) /Cmethod c1 = new Cmethod(); Cmethod c2 = new Cmethod(false); class Cmethod Cmethod (boolean b) Cmethod () public static void main (String args) Cmethod c1 = new Cmethod(); Cmethod c2 = new Cmethod(false); 运行时系统自动赋予一个空构造方法,仅仅当该类没定义构造方法的情况下46抽象类(abstract class)n一个未完成的类n仅仅抽象类可以包

25、含抽象方法(abstract methods)n抽象方法: 仅仅申明了方法,但未实现n有访问修饰词n返回值类型n方法名n参数列表n无方法体47抽象类(abstract class)abstract class Point int x = 1, y = 1;void move(int dx, int dy) x += dx;y += dy;alert();abstract void alert();abstract class ColoredPoint extends Point int color;class SimplePoint extends Point void alert() 抽象方

26、法: 有访问修饰词、返回值类型、方法名和参数列表,无方法体48抽象类(abstract class)n抽象类不能被实例化,例Point p = new Point(); n子类继承抽象类时,必须重写抽象方法,否则仍为抽象类abstract class Point int x = 1, y = 1;void move(int dx, int dy) x += dx;y += dy;alert();abstract void alert();abstract class ColoredPoint extends Point int color;class SimplePoint extends P

27、oint void alert() Point p = new SimplePoint();49import java.awt.*;import java.applet.Applet;public class Car1 extends Applet public void paint(Graphics g) Car mycar=new Car(); g . d r a w S t r i n g ( 起 始 位 置+mycar.getwz(),10,20); g.drawString(前进100,10,35); mycar.qj(100); g.drawString(后退30,10,50);

28、mycar.ht(30); g . d r a w S t r i n g ( 当 前 位 置+mycar.getwz(),10,65); class Car private int wz; public Car()wz=0; public void qj(int wz1)wz+=wz1; public void ht(int wz1)wz-=wz1; public int getwz()return wz; 例:car位置0car位置70car位置10050对象n引用对象的变量n格式: 对象名.变量名n引用对象的方法n格式: 对象名.方法名n例1nVector v = new Vector(

29、);nv.addElement(“hello world”);n例2nint a= 1, 2, 3, 4, 5; nint size = a.length;n例3nSystem.out.println();51对象的释放n将对象从内存中清除n内存的管理(枯燥、容易出错)n垃圾回收(Garbage Collection)n垃圾搜集器(Garbage Collector)n周期性地释放不再被引用的对象,自动完成n手动完成,System.gc();npublic static void gc() - Runs the garbage collector. 52n例 对象用作方法的参数对象的使用cla

30、ss jex6_10 public static void main(String args) Spot s = new Spot(2, 3); System.out.println(“s点的坐标:” + +s.getX()+“,”+s.getY(); Trans ts = new Trans(); ts.move(s, 4, 5); System.out.println(“s点的坐标:” + +s.getX()+“,”+s.getY();class Spot private int x, y;Spot (int u, int v) setX(u); setY(v);void setX(int

31、 x1) x=x1;void setY(int y1) y=y1;int getX() return x;int getY() return y;class Trans void move(Spot p, int h, int k) p.setX(p.getX() + h);p.setY(p.getY() + k);class jex6_10 public static void main(String args) Spot s = new Spot(2, 3); System.out.println(“s点的坐标:” + s.getX()+“,”+s.getY(); Trans.move(s

32、, 4, 5); System.out.println(“s点的坐标:” + s.getX()+“,”+s.getY();class Spot private int x, y;Spot (int u, int v) setX(u); setY(v);void setX(int x1) x=x1;void setY(int y1) y=y1;int getX() return x;int getY() return y;class Trans static void move(Spot p, int h, int k)p.setX(p.getX() + h);p.setY(p.getY() +

33、 k);class jex6_10 public static void main(String args) Spot s = new Spot(2, 3); System.out.println(“s点的坐标:” + s.getX()+“,”+s.getY(); s.move(4, 5); System.out.println(“s点的坐标:” + s.getX()+“,”+s.getY();class Spot private int x, y;Spot (int u, int v) setX(u); setY(v);void setX(int x1) x=x1;void setY(int

34、 y1) y=y1;int getX() return x;int getY() return y;void move(int h, int k)x = x + h;y = y + k;53第三章 面向对象特征1.基本概念2.类的定义3.对象4.类的继承和多态5.接口和包6.常用工具类54类的继承n父类与子类的关系 (extends)n基本内容1.子类可调用父类的方法和变量,子类可增加父类中没有的方法和变量2.子类可重新定义父类的静态/实例变量3.子类可重新定义父类的静态/实例方法4.继承中的构造方法5.类成员访问修饰符与继承的关系55类的继承n子类可调用父类的方法和变量n子类可增加父类中没有

35、的方法和变量class Vehicle String brand;void setB(String s) brand = s; void showB() System.out.println(brand); class Bus extends Vehicle int gas;void setG(int g) gas = g; void showG() System.out.println(gas); Bus b = new Bus();b.setB(“audi”); /*b.setG(100);b.showB(); /*b.showG();子类继承父类的方法和变量,则这些方法和变量就属于子类,

36、则子类对象对这些方法和变量的调用是显而易见的56 继承性是软件复用的一种形式。继承性是软件复用的一种形式。目的:是为了在目的:是为了在时,可以保留现有类的时,可以保留现有类的属性和方法,并能新增,这样就可以充分属性和方法,并能新增,这样就可以充分,减少,减少javajava程序中的重复代码。程序中的重复代码。一、类的继承性继承性是面向对象程序设计语言的最主要继承性是面向对象程序设计语言的最主要的特点,是其他语言(如面向过程语言)的特点,是其他语言(如面向过程语言)所没有的。所没有的。 57 与现实世界的遗传关系类似与现实世界的遗传关系类似父类和子类孩子孩子父亲父亲继承继承 父类的属性和方法父类

37、的属性和方法新类新类现有类现有类继承继承继承的内容:继承的内容: 父亲的外貌和性格等父亲的外貌和性格等58n继承中的super对象类的继承父类子类实例化一个子类对象thissuper调用父类的变量和方法调用子类的变量和方法591 1、实现继承的方法、实现继承的方法Java类的继承关系图:类的继承关系图:实现继承的方法:实现继承的方法:class extends 例:例:1.import java.applet.Applet; public class cari1 extends Applet 2.class B extends A 3.public class car extends obje

38、ct objectB类类A类类C类类B1类类B2类类B11类类可以省略可以省略60举例:新类举例:新类B变量:变量:i , j , k方法:显示方法:显示i, j ;显示;显示k ; 显示(显示(i+j+k) class B extends Aint k;void showk()System.out.println(k:+k);void sum()System.out.println(i+j+k:+(i+j+k);public class M1public static void main(String args)A father =new A();B son=new B();father.i

39、=10;father.j=20;father.showij();son.i=7;son.j=8;son.k=9;son.showij();son.showk();son.sum();i and j:10 20i and j:7 8k:9i+j+k:24private int i; int j;变量:变量:i, j方法:显示方法:显示i, j现有类现有类Aclass Aint i,j;void showij()System.out.println(i and j:+i+ +j);612 2、成员变量的隐藏、成员变量的隐藏隐藏:是指在子类中重新定义的父类的同名变量隐藏:是指在子类中重新定义的父类的

40、同名变量class Aint i,j;void showij()System.out.println(i and j:+i+ +j);class B extends Aint k;void showk()System.out.println(k:+k);void sum()System.out.println(i+j+k:+(i+j+k);public class M1public static void main(String args)A father =new A();B son=new B();father.i=10;father.j=20;father.showij();son.i=

41、7;son.j=8;son.k=9;son.showij();son.showk();son.sum();int i,j;i and j:10 20i and j:0 0k:9i+j+k:24i and j:10 20i and j:7 8k:9i+j+k:24623 3、成员方法的覆盖、成员方法的覆盖覆盖:是指在子类中重新定义的父类的同名方法覆盖:是指在子类中重新定义的父类的同名方法class Aint i,j;void showij()System.out.println(i and j:+i+ +j);class B extends Aint k;void showk()System.o

42、ut.println(k:+k);void sum()System.out.println(i+j+k:+(i+j+k);public class M1public static void main(String args)A father =new A();B son=new B();father.i=10;father.j=20;father.showij();son.i=7;son.j=8;son.k=9;son.showij();son.showk();son.sum();void showij()System.out.println(“覆盖了父类的成员方法覆盖了父类的成员方法”);f

43、inali and j:10 20覆盖了父类的成员方法覆盖了父类的成员方法k:9i+j+k:24i and j:10 20i and j:7 8k:9i+j+k:24634 4、supersuper(父类父类 )和)和thisthis(子类子类)在需要给从父类继承的成员方法添加功能时,要使用在需要给从父类继承的成员方法添加功能时,要使用supperclass Aint i,j;void showij()System.out.println(i and j:+i+ +j);class B extends Aint k;void showk()System.out.println(k:+k);vo

44、id sum()System.out.println(i+j+k:+(i+j+k);public class M1public static void main(String args)A father =new A();B son=new B();father.i=10;father.j=20;father.showij();son.i=7;son.j=8;son.k=9;son.showij();son.showk();son.sum();void showij()super.showij();System.out.println(“添加了新的成员方法添加了新的成员方法”);i and j

45、:10 20i and j:7 8添加新了的成员方法添加新了的成员方法k:9i+j+k:24i and j:10 20i and j:7 8k:9i+j+k:2464在子类隐藏了父类的变量时,要用在子类隐藏了父类的变量时,要用this区分该同名变量的归属区分该同名变量的归属class Aint i,j;void showij()System.out.println(i and j:+i+ +j);class B extends Aint k;void showk()System.out.println(k:+k);void sum()System.out.println(i+j+k:+(i+j

46、+k);public class M1public static void main(String args)A father =new A();B son=new B();father.i=10;father.j=20;father.showij();son.i=7;son.j=8;son.k=9;son.showij();son.showk();son.sum();int i,j;i and j:10 20i and j:0 0k:9i+j+k:24i and j:10 20i and j:7 8k:9i+j+k:24void zh()super.i=this.i; super.j=thi

47、s.j;son.zh();65super()和和this()super()可以用来调用父类的构造方法可以用来调用父类的构造方法this()可以用来调用子类的构造方法可以用来调用子类的构造方法注意:注意: 1、构造方法与类同名,因此继承构造方法是没有意义的;、构造方法与类同名,因此继承构造方法是没有意义的; 2、super()和和this()只能在当前子类中使用只能在当前子类中使用作用是调用构造方法:作用是调用构造方法:66类的多态nclass Intsortnpublic String sort(int a,int b) /定义两个数排序的方法n if(ab)return a+” ”+b;n

48、else return b+” ”+a;npublic String sort(int a,int b,int c) /定义三个数排序的方法n int swap;n if(ab)swap=a;a=b;b=swap;n if(ac)swap=a;a=c;c=swap;n if(bc)swap=b;b=c;c=swap;n return a+” ”+b+” ”+c;n67第三章 面向对象特征1.基本概念2.类的定义3.对象4.类的继承和多态5.接口和包6.常用工具类68n接口是对abstract类的进一步扩展n接口中的方法都是未实现的(类似于抽象方法),目的是在实现接口的类之间建立一种协议n接口中

49、的变量都是常量n定义n一个类符合某个或一组接口,利用implements接口 (interface) public interface 接口名 成员变量;方法声明; class 类名 implements 接口1, 接口2 69n接口名修饰npublic: 无任何访问限制n无修饰: 仅限于本包中n接口变量默认都是“public static final”接口 (interface)70JavaJava程序中把一些常用的常量和方法(无方法体)程序中把一些常用的常量和方法(无方法体)放在一起,提供给包中所有类使用,称作接口放在一起,提供给包中所有类使用,称作接口。目的:实现多重继承目的:实现多重继

50、承接口(interface)1、系统类接口、系统类接口2、自定义接口、自定义接口public class Max extends Applet implements ActionListenerinterface N1class c1 implements N171import java.awt.*;import java.awt.event.*;import java.applet.Applet;public class M extends Applet implements MouseListener,MouseMotionListener int x1,y1,x2,y2; public

51、void init()addMouseListener(this); addMouseMotionListener(this);public void paint(Graphics g)g.drawLine(x1,y1,x2,y2);g.drawString(x1:+x1+ y1:+y1+ x2:+x2+ y2:+y2,50,50); public void mousePressed(MouseEvent e) x1=e.getX();y1=e.getY();public void mouseClicked(MouseEvent e)public void mouseExited(MouseE

52、vent e)public void mouseEntered(MouseEvent e)public void mouseReleased(MouseEvent e)public void mouseDragged(MouseEvent e)x2=e.getX();y2=e.getY();repaint();public void mouseMoved(MouseEvent e) 1 1、系统类接口、系统类接口722 2、自定义接口、自定义接口(1)创建格式:)创建格式:修饰符修饰符 interface N1例6.4_1:interface N1 int year=2006; /year默认

53、为默认为static final常量常量 int age(); /无方法体,在使用时需加入方法体无方法体,在使用时需加入方法体 void output(); (2)接口继承:)接口继承:单继承和多继承单继承和多继承static finalabstract73public class M implements N1 String xm;int sr; M(String a,int b)xm=a;sr=b; public int age()return year-sr; public void output()System.out.println(xm+的年龄为:的年龄为:+this.age();

54、 public static void main(String aa) M a=new M(张弛张弛,1988); a.output(); 例:例:741、接口的单继承、接口的单继承例:例:interface Avoid F1(); interface B extends A void F2(); class M1 implements B /引用接口引用接口B void F1() void F2() 75例:例:interface Avoid F1(); interface Cvoid F3(); interface B extends A,C void F2(); class M1 imp

55、lements B /引用接口引用接口B void F1() void F2() void F3() 2、接口的多继承、接口的多继承 76n为什么需要包?n使Java类更容易发现和使用n防止命名冲突n进行访问控制 n层次结构,特定的功能nA package is a collection of related classes and interfaces providing access protection and namespace management. nimport包 (package)77Java允许把多个类收集在一起成为一组,称作包(允许把多个类收集在一起成为一组,称作包(pac

56、kage)。)。目的:组织类的存放位置目的:组织类的存放位置一、包(类的容器,由类和接口组成)一、包(类的容器,由类和接口组成)包包文件夹文件夹类类文件文件例:例:比喻:比喻:windows文件存放方式文件存放方式78包和文件夹包和文件夹P1P2包包F:cx文档文档123.txt使用时:使用时:java.applet.Appletjava.applet.*具体类具体类79 P1Class1_1 Class1_n interface1Class2_1 Class2_n interface2 包的组成:包的组成:包由类和接口组成:包由类和接口组成:例:例:package p1;class Acla

57、ss B implements Cinterface C可选可选801 1、javajava系统包系统包由由java系统提供,又称系统提供,又称API(Application program interface)特点:系统包以特点:系统包以“java.”开头,有固定的开头,有固定的功能,用户不能修改,只能使用。功能,用户不能修改,只能使用。81JavaJava常用包常用包API包功 能java.applet 提供通用Applet的支持,是所有Applet的基类java.awt组建标准GUI,包含了众多的图形组件、方法和和事件java.lang包含java语言的核心类库实现java网络功能的类库

58、java.io标准输入输出类java.util提供各种使用工具类82832 2、包的引用、包的引用(1)导入包语句)导入包语句与变量使用前一样,包在使用前也有声明(引入)。与变量使用前一样,包在使用前也有声明(引入)。例:例:import java.awt.*; import java.lang;(默认,可省)(默认,可省)(2 2)包的路径(见下页)包的路径(见下页)设置系统环境变量:设置系统环境变量:Classpath值:值: ; c:j2sdk1.4.1lib; f:P1用户当前用户当前运行目录运行目录系统类库系统类库API目录目录用户自定用户自定义目录义目录84(2 2)包的路径()包

59、的路径(classpathclasspath)P1P2包包F:cxtxt123.txtWindows文件和文件和Java类在使用时的对比:类在使用时的对比:java.applet.Appletjava.applet.*具体类具体类853.3.自定义包自定义包(1)创建自定义包:)创建自定义包:package ;注意:该语句写在程序第一行,每个程序只能有一句,若没有包注意:该语句写在程序第一行,每个程序只能有一句,若没有包语句则为默认包语句则为默认包(2)设置包路径)设置包路径(classpath)程序编译后,你可以像引用系统类那样来引用自定义类。程序编译后,你可以像引用系统类那样来引用自定义类

60、。(3)包引用格式:)包引用格式:import ;如 没 有 包 引 用 语 句如 没 有 包 引 用 语 句 , 则 为 引 用 默 认 包则 为 引 用 默 认 包 (import java.lang;)86 例:例: package P1; / 程序包语句程序包语句 import java.awt.*; / 包引入语句包引入语句 public class Class1 implements A / 类定义类定义 class Class2 / 类定义类定义 interface A / 接口的定义接口的定义 package P2; import P1.*;class Class3 保存为保存

61、为Class1.java保存为保存为Class3.java保存路径为保存路径为f:cx87程序调试过程:程序调试过程:1、保存:、保存: f:cxClass1.java2、编译:、编译:javac d Class1.java编译结果:编译结果: f:cxP1 Class1.class Class2.class A.class3、运行:、运行:java P1.Class1f:cx88第三章 面向对象特征1.基本概念2.类的定义3.对象4.类的继承和多态5.接口和包6.常用工具类89常用工具类 nJava 2 Platform PackagesnJavaTM 2 Platform, Standar

62、d Edition, v 1.4.1 API SpecificationnJava语言基础类、Java类库n定义描述见Java2SDK文档n135个包(package)njava.applet; java.awt; java.awt.eventnjava.io; java.lang; njava.sql; java.text; java.utilnjavax.swingn n2723个类(class)和接口(interface)n实现d:j2sdk1.4.1_01jrelibrt.jar(22.4MB)njar tvf rt.jar | more90常用工具类 njava.lang包nObje

63、ct类nSystem类nMath类n基本数据类型的包装类n字符串操作类nString类nStringBuffer类nStringTokenizer类(java.util包)nRuntime类91java.lang.Object类 nClass Object is the root of the class hierarchy. Every class has Object as a superclass. nAll objects, including arrays, implement the methods of this class. n子类可以对Object类的方法进行重写构造方法 -

64、 public ObjectObject()实例方法1.protected Object clone() throws CloneNotSupportedException2.public boolean equals(Object obj)3.protected void finalize() throws Throwable4.public final Class getClass()5.public int hashCode()6.public final void notify()7.public final void notifyAll()8.public String toStri

65、ng()9.public final void wait() throws InterruptedException10. public final void wait(long timeout) throws InterruptedException11. public final void wait(long timeout, int nanos) throws InterruptedException92java.lang.System类n静态变量npublic static final InputStream in (标准输入流)npublic static final PrintSt

66、ream out (标准输出流)npublic static final PrintStream err (标准错误输出流)n静态方法npublic static void arraycopy(Object src, int srcPos, Object dest, int destPos,int length)npublic static void exit(int status)npublic static void gc()npublic static long currentTimeMillis()n 93java.lang.System类n获取当前时间npublic static long currentTimeMillis()nReturns: the difference, measured in milliseconds, between the current time and midnight, January 1, 1970 UTC (Universal time coordinated).public static void main(String args)

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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