面向对象特征PPT课件

上传人:痛*** 文档编号:142166033 上传时间:2022-08-24 格式:PPT 页数:126 大小:785KB
收藏 版权申诉 举报 下载
面向对象特征PPT课件_第1页
第1页 / 共126页
面向对象特征PPT课件_第2页
第2页 / 共126页
面向对象特征PPT课件_第3页
第3页 / 共126页
资源描述:

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

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

2、VA,C#,PERL等n用客观世界中描画事物的方法来描画程序中要处理的问题n万事万物都是对象n程序便是成堆的对象,彼此经过音讯的传送,恳求其他对象进展任务 根本概念n五个根本概念n对象n类n封装性n承继性n多态性根本概念n对象(object)n对象包含两个特性n形状:指对象本身的信息(内部信息/内部变量)n行为:实现对信息的访问/对象的操作n标志:代表对象的标识符n山地车的形状(两个车轮、一些齿轮、速度、挡数),行为(刹车、加速、减速和换挡)n书包含很多信息,拥有访问所包含信息的方法,一页一页的看,经过目录找到感兴趣的内容根本概念n对象(object)n形状变量(variables)n行为方法

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

4、根本概念n承继性运输工具航空运输工具陆地运输工具水上运输工具人力驱动引擎驱动二轮四轮客运货运根本概念n承继性n多重承继类A类B类C类D类F类Gn一个类拥有多个父类产生二义性,例类C和类D都有一个同名的方法,类G?nJava中仅仅支持单一承继,同时Java采用Interface(接口)实现多重承继而防止父类二义性根本概念n多态性n表如今承继中方法的重写n子类从父类承继(extends扩展)而来n多个子类同属一个父类,一切子类有一样的父类n承继父类的方法n在不同的子类中有不同的表现方式n表如今用一个类中方法的重载根本概念n多态性n多态性在承继中的表现根本概念n多态性class Square ext

5、ends 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 draw()void erase()class Circle extends Shape void draw()S

6、ystem.out.println(Circle.draw();void erase()System.out.println(Circle.erase();根本概念n多态性public class Test public static Shape randShape()switch(int)(Math.random()*3)default:case 0:return new Circle();case 1:return new Square();case 2:return new Triangle();public static void main(String args)Shape s=ne

7、w 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 print()class B void test()A a=new A();a.x=100;a.print();nprotected(维护变量/维护方法)n允许类本身、子类(有一定限制)以及同一个包中

8、一切类访问(先构造对象,再访问)类成员的访问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;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/legal

9、n无修饰(友好变量/友好方法)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 B void test()A a=new A();a.x=100;a.print();n小结名称访问权修饰符类本身子类包所有类公共public默认-保护protected*私有private*指子类与父类不在同一个包中的情况类成员变量的访问nstatic(静态

10、变量/静态方法)n类的变量/方法,独立于类的对象,可以直接根据类名调用nclass S nstatic int A=12,B=34;nstatic void print()nnclass Test npublic static void main(String args)nSystem.out.println(“A=“+S.A+“B=“+S.B);nS.print();nn类成员变量nstatic(静态变量/静态方法)class Test public void print(int x)System.out.println(x);public static void main(String a

11、rgs)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 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 pri

12、nt(int x)System.out.println(x);public static void main(String args)int x=3;print(x);static方法中仅仅可以调用其他static方法类成员nfinal 变量/方法nfinal变量:定义一个常数,即变量值不能改动nfinal double AVOGADRO=6.022e23;nfinal类:不能有子类nfinal方法:方法不能被重写(overriding)nclass ChessAlgorithm n .n final void nextMove(ChessPiece pieceMoved,n BoardLoc

13、ation newLocation)n .n n .n类成员变量n非访问控制修符n静态方法staticn属于类的方法n最终方法finaln不能被子类重新定义的方法n笼统方法abstractn只需方法阐明,没有详细实现n本地方法nativen以其他言语实现方法功能n同步方法synchronizedn用于多线程程序中的协调和同步类成员方法的访问n例成员方法class Test public static void main(String args)double d_product;Area myArea;myArea=new Area();d_product=myArea.product();Sy

14、stem.out.println(“myArea的面积是:+d_product);class Area double width,height;void setV(double w,double h)width=w;height=h;double product()return width*height;n方法参数成员方法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

15、 Vector();c.addElement(s1);c.addElement(s2);System.out.println(c.size();p.addV(c);System.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:根本类型与复合类型参数传送的结果不同n例成员方法class

16、Test public static void main(String args)ex A=new ex();A.p();class ex int 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 15n方法的重载(overload)n方法名一样,但方法的参数不同n方法描画 方法名(标识符)参数

17、类型 方法前往值 n绝对值 abs(a)int intn绝对值 abs(a)long longn绝对值 abs(a)float floatn绝对值 abs(a)double doublen npublic static int abs(inta)npublic static long abs(longa)npublic static float abs(floata)npublic static double abs(doublea)成员方法n方法的重写(overriding)n子类重写父类的方法成员方法class Father void display();class Son extends

18、 Father void display();Father f=new Father();f.display();Son s=new Son();s.display();构造方法n创建对象/实例化对象new n例1:Apple a=new Apple();(创建对象)n例2:Apple a;(对象的阐明)n a=new Apple();(实例化对象)n对象的实例化经过构造方法(constructor)来实现n构造方法的名字与类名一样n构造方法没有前往值n构造方法可以有多个,构成方法的重载(overload)n例:对象的实例化和初始化class jex6_8 public static void

19、 main(String args)Qangle 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=x;h=y;Qangle(Q

20、angle r)a=r.width();h=r.height();int width()return a;int height()return h;输出结果:2020 5010 20构造方法n方法的重载(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 info()prt(“Tree is +height+“feet height);void info(S

21、tring 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();n默许构造方法n例 class Apple nint color;nnApple a=new Apple();n对象实例的判别:nulln例 Apple a;n if(a=null)nSystem.out.println(“Day dream);构造方法运转时系统

22、自动赋予一个空构造函数如 Apple()n构造方法构造方法 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 void main(String args)/Cmethod c1=new Cmethod();Cmethod c2=new Cmethod(false);class Cmethod Cmethod(b

23、oolean b)Cmethod()public static void main(String args)Cmethod c1=new Cmethod();Cmethod c2=new Cmethod(false);运转时系统自动赋予一个空构造方法,仅仅当该类没定义构造方法的情况下笼统类(abstract class)n一个未完成的类n仅仅笼统类可以包含笼统方法(abstract methods)n笼统方法:仅仅声明了方法,但未实现n有访问修饰词n前往值类型n方法名n参数列表n无方法体笼统类(abstract class)abstract class Point int x=1,y=1;vo

24、id 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()笼统方法:有访问修饰词、前往值类型、方法名和参数列表,无方法体笼统类(abstract class)n笼统类不能被实例化,例Point p=new Point();n子类承继笼统类时,必需重写笼统方法,否那么仍为笼统类abstract class Point int x=1,y=

25、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()Point p=new SimplePoint();import java.awt.*;import java.applet.Applet;public class Car1 extends Applet public void paint(Graphics g)Car

26、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);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;p u b l i c v o i d q j(i n t wz1)wz+=wz1;public void ht(int w

27、z1)wz-=wz1;public int getwz()return wz;例:car位置0car位置70car位置100对象n援用对象的变量n格式:对象名.变量名n援用对象的方法n格式:对象名.方法名n例1nVector v=new Vector();nv.addElement(“hello world);n例2nint a=1,2,3,4,5;nint size=a.length;n例3nSystem.out.println();对象的释放n将对象从内存中去除n内存的管理(枯燥、容易出错)n渣滓回收(Garbage Collection)n渣滓搜集器(Garbage Collector)

28、n周期性地释放不再被援用的对象,自动完成n手动完成,System.gc();npublic static void gc()-Runs the garbage collector.n例 对象用作方法的参数对象的运用class 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()+“,

29、+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 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

30、);System.out.println(“s点的坐标:+s.getX()+“,+s.getY();Trans.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 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,

31、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();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)

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

33、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();子类承继父类的方法和变量,那么这些方法和变量就属于子类,那么子类对象对这些方法和变量的调用是显而易见的 承继性是

34、软件复用的一种方式。承继性是软件复用的一种方式。目的:是为了在创建新类时,可以保管现有类的目的:是为了在创建新类时,可以保管现有类的属性和方法,并能新增,这样就可以充分利用属性和方法,并能新增,这样就可以充分利用现有资源,减少现有资源,减少javajava程序中的反复代码。程序中的反复代码。一、类的承继性承继性是面向对象程序设计言语的最主要承继性是面向对象程序设计言语的最主要的特点,是其他言语如面向过程言语的特点,是其他言语如面向过程言语所没有的。所没有的。与现实世界的遗传关系类似与现实世界的遗传关系类似父类和子类孩子孩子父亲父亲承继承继 父类的属性和方法父类的属性和方法新类新类现有类现有类承

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

36、2类类B11类类可以省略可以省略举例:新类举例:新类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=10;father.j=20;father.showij();son

37、.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);2 2、成员变量的隐藏、成员变量的隐藏隐藏:是指在子类中重新定义的父类的同名变量隐藏:是指在子类中重新定义的父类的同名变量class Aint i,j;void showij()System.out

38、.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=7;son.j=8;son.k=9;son.showij();son.showk();so

39、n.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:243 3、成员方法的覆盖、成员方法的覆盖覆盖:是指在子类中重新定义的父类的同名方法覆盖:是指在子类中重新定义的父类的同名方法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

40、+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(“覆盖了父类的成员方法覆盖了父类的成员方法);finali and j:10 20覆盖了父类的成员覆盖了父类的成员方法方法k:9i+j+k:24i a

41、nd j:10 20i and j:7 8k:9i+j+k:244 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);void sum()System.out.println(i+j+k:+(i+j+k);public class M1pub

42、lic 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:10 20i and j:7 8添加新了的成员方添加新了的成员方法法k:9i+j+k:24i and j:10 20i a

43、nd j:7 8k:9i+j+k:24在子类隐藏了父类的变量时,要用在子类隐藏了父类的变量时,要用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+k);public class M1public static void main(String args)A father=ne

44、w 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=this.j;son.zh();super()和和this()super()可以用来调用父类的构造方法可以用来调用父类的构造方法this()可

45、以用来调用子类的构造方法可以用来调用子类的构造方法留意:留意:1、构造方法与类同名,因此承继构造方法是没有意义的;、构造方法与类同名,因此承继构造方法是没有意义的;2、super()和和this()只能在当前子类中运用只能在当前子类中运用作用是调用构造方法:作用是调用构造方法:类的多态nclass Intsortnpublic String sort(int a,int b)/定义两个数排序的方法n if(ab)return a+b;n else return b+a;npublic String sort(int a,int b,int c)/定义三个数排序的方法n int swap;n i

46、f(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;n第三章 面向对象特征n根本概念n类的定义n对象n类的承继和多态n接口和包n常用工具类n接口是对abstract类的进一步扩展n接口中的方法都是未实现的(类似于笼统方法),目的是在实现接口的类之间建立一种协议n接口中的变量都是常量n定义n一个类符合某个或一组接口,利用implements接口(interface)public interface 接口名 成员变量;方法声明;class 类名 implements 接口

47、1,接口2 n接口名修饰npublic:无任何访问限制n无修饰:仅限于本包中n接口变量默许都是“public static final接口(interface)JavaJava程序中把一些常用的常量和方法无方法体程序中把一些常用的常量和方法无方法体放在一同,提供应包中一切类运用,称作接口放在一同,提供应包中一切类运用,称作接口。目的:实现多重承继目的:实现多重承继接口(interface)1、系统类接口、系统类接口2、自定义接口、自定义接口public class Max extends Applet implements ActionListenerinterface N1class c1

48、implements N1import java.awt.*;import java.awt.event.*;import java.applet.Applet;p u b l i c c l a s s M e x t e n d s A p p l e t i m p l e m e n t s MouseListener,MouseMotionListener int x1,y1,x2,y2;p u b l i c v o i d i n i t()a d d M o u s e L i s t e n e r(t h i s);addMouseMotionListener(this);

49、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(MouseEvent e)public void mouseEntered(MouseEvent e)public void mouseRelease

50、d(MouseEvent e)p u b l i c v o i d m o u s e D r a g g e d(M o u s e E v e n t e)x2=e.getX();y2=e.getY();repaint();public void mouseMoved(MouseEvent e)1 1、系统类接口、系统类接口2 2、自定义接口、自定义接口1创建格式:创建格式:修饰符修饰符 interface N1例6.4_1:interface N1 int year=2006;/year默以为static final常量 int age();/无方法体,在运用时需参与方法体 void

51、output();2接口承继:接口承继:单承继和多承继单承继和多承继static finalabstractpublic 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();public static void main(String aa)M a=new M(张弛张弛,1988);a.output();例:例:1、接口的单承继

52、、接口的单承继例:例:interface Avoid F1();interface B extends A void F2();class M1 implements B /援用接口援用接口B void F1()void F2()例:例:interface Avoid F1();interface Cvoid F3();interface B extends A,C void F2();class M1 implements B /援用接口援用接口B void F1()void F2()void F3()2、接口的多承继、接口的多承继 n为什么需求包?n使Java类更容易发现和运用n防止命名冲

53、突n进展访问控制 n层次构造,特定的功能nA package is a collection of related classes and interfaces providing access protection and namespace management.nimport包(package)Java允许把多个类搜集在一同成为一组,称作包允许把多个类搜集在一同成为一组,称作包package。目的:组织类的存放位置目的:组织类的存放位置一、包类的容器,由类和接口组成一、包类的容器,由类和接口组成包包文件夹文件夹类类文件文件例:例:比喻:比喻:windows文件存放方式文件存放方式包和文件

54、夹包和文件夹P1P2包包F:cx文档文档123.txt运用时:运用时:java.applet.Appletjava.applet.*详细类详细类 P1Class1_1 Class1_n interface1Class2_1 Class2_n interface2 包的组成:包的组成:包由类和接口组成:包由类和接口组成:例:例:package p1;class Aclass B implements Cinterface C可选可选1 1、javajava系统包系统包由由java系统提供,又称系统提供,又称APIApplication program interface特点:系统包以特点:系统包

55、以“java.开头,有固定的开头,有固定的功能,用户不能修正,只能运用。功能,用户不能修正,只能运用。JavaJava常用包常用包API包功 能java.applet提供通用Applet的支持,是所有Applet的基类java.awt组建标准GUI,包含了众多的图形组件、方法和和事件java.lang 包含java语言的核心类库实现java网络功能的类库java.io标准输入输出类java.util提供各种使用工具类2 2、包的援用、包的援用1导入包语句导入包语句与变量运用前一样,包在运用前也有声明引入。与变量运用前一样,包在运用前也有声明引入。例:例:import java.awt.*;im

56、port java.lang;默许,可省默许,可省2 2包的途径见下页包的途径见下页设置系统环境变量:设置系统环境变量:Classpath值:值:;c:j2sdk1.4.1lib;f:P1用户当前用户当前运转目录运转目录系统类库系统类库API目录目录用户自定用户自定义目录义目录2 2包的途径包的途径classpathclasspathP1P2包包F:cxtxt123.txtWindows文件和文件和Java类在运用时的对比:类在运用时的对比:java.applet.Appletjava.applet.*详细类详细类3.3.自定义包自定义包1创建自定义包:创建自定义包:package ;留意:该

57、语句写在程序第一行,每个程序只能有一句,假设没有留意:该语句写在程序第一行,每个程序只能有一句,假设没有包语句那么为默许包包语句那么为默许包2设置包途径设置包途径(classpath)程序编译后,他可以像援用系统类那样来援用自定义类。程序编译后,他可以像援用系统类那样来援用自定义类。3包援用格式:包援用格式:import;如没有包援用语句如没有包援用语句,那么为援用默许包那么为援用默许包 import java.lang;)例:例:package P1;/程序包语句程序包语句 import java.awt.*;/包包引入语句引入语句 public class Class1 implement

58、s A /类类定义定义 class Class2 /类定类定义义 interface A /接接口的定义口的定义 package P2;import P1.*;class Class3 保管为保管为Class1.java保管为保管为Class3.java保管途径为保管途径为f:cx程序调试过程:程序调试过程:1、保管:、保管:f:cxClass1.java2、编译:、编译:javac d Class1.java编译结果:编译结果:f:cxP1 Class1.class Class2.class A.class3、运转:、运转:java P1.Class1f:cx第三章 面向对象特征n根本概念n

59、类的定义n对象n类的承继和多态n接口和包n常用工具类常用工具类 nJava 2 Platform PackagesnJavaTM 2 Platform,Standard Edition,v 1.4.1 API SpecificationnJava言语根底类、Java类库n定义描画见Java2SDK文档n个包(package)njava.applet;java.awt;java.awt.eventnjava.io;java.lang;njava.sql;java.text;java.utilnjavax.swingn n2723个类(class)和接口(interface)n实现d:j2sdk1

60、.4.1_01jrelibrt.jar(22.4MB)njar tvf rt.jar|more常用工具类 njava.lang包nObject类nSystem类nMath类n根本数据类型的包装类n字符串操作类nString类nStringBuffer类nStringTokenizer类(java.util包)nRuntime类java.lang.Object类 nClass Object is the root of the class hierarchy.Every class has Object as a superclass.nAll objects,including arrays,

61、implement the methods of this class.n子类可以对Object类的方法进展重写构造方法-public Object()实例方法protected Object clone()throws CloneNotSupportedExceptionpublic boolean equals(Object obj)protected void finalize()throws Throwablepublic final Class getClass()public int hashCode()public final void notify()public final

62、void notifyAll()public String toString()public final void wait()throws InterruptedExceptionpublic final void wait(long timeout)throws InterruptedExceptionpublic final void wait(long timeout,int nanos)throws InterruptedExceptionjava.lang.System类n静态变量npublic static final InputStream in(规范输入流)npublic s

63、tatic final PrintStream 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 java.lang.System类n获取当前时间npub

64、lic 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)long start=System.currentTimeMillis();long end=System.currentTimeMillis();System.out.println(en

65、d-start);java.lang.Math类n静态变量npublic static final double Enpublic static final double PIn静态方法npublic static double abs(double a)npublic static double ceil(double a)npublic static double floor(double a)npublic static double max(double a,double b)n 根本数据类型的包装类 n根本数据类型:byte,short,int,long,float,double,b

66、oolean,char n对应的包装类:Byte,Short,Integer,Long,Float,Double,Boolean,Charactern作用n包装类对象中包含有一个对应根本类型的值n提供有根本类型和字符串(String)之间的转换函数n定义有一些常数和方法根本数据类型的包装类n常数定义byte largestByte=Byte.MAX_VALUE;/127short largestShort =Short.MAX_VALUE;/32767int largestInteger =Integer.MAX_VALUE;/2147483647long largestLong =Long.MAX_VALUE;/9223372036854775807float largestFloat =Float.MAX_VALUE;/3.40282e+38double largestDouble=Double.MAX_VALUE;/1.79769e+308根本数据类型的包装类n根本类型和字符串(String)之间的转换nInteger类举例n字符串转换为整数npublic static int

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