面向程序基础设计 4_第1页
面向程序基础设计 4_第2页
面向程序基础设计 4_第3页
面向程序基础设计 4_第4页
面向程序基础设计 4_第5页
已阅读5页,还剩100页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

面向对象程序设计与实践第四章Java面向对象基础面向对象程序设计与实践课程组教学目标教学方式重点知识学习目标1.熟悉类和对象的基本概念和相关知识2.掌握类的设计,包括成员变量、成员函数的定义规则,熟悉类的使用方法3.理解类中封装性、继承性和多态性的概念,并能根据问题需求进行类的设计4.熟悉Java内存的分配机制控制语法进行相关程序设计1.类的定义规则及实现2.对象的定义规则及实现3.数据成员、成员函数的定义规则本章以理论讲解、案例演示、代码分析为主。建议同学们先了解案例描述,带着设计要求学习案例中涉及的知识点,再进行编码实现,需要关注的是:案例4-1学习如何定义类案例4-2封装思想案例4-3继承方式案例4-4多态性的设计实现案例4-5包管理及内存管理目录CONTENTS014-1设计第一个宠物类024-2优化宠物类

034-3宠物多样性设计

034-4宠物店设计

034-5类管理01设计一个宠物类案例描述案例分析关联知识案例实现案例小结案例拓展4-1案例描述使用面向对象的思想设计一个宠物类,该类可以实现如下功能:(1)支持宠物的基本信息设置,包括宠物的名字、毛发颜色、年龄、体重、售价等;(2)支持宠物的基本状态查询;(3)支持宠物的基本信息介绍;实例化该宠物类的多个宠物对象来进行验证。4-1关联知识面向对象思想类的定义对象定义成员变量成员函数构造方法为什么要用面向对象的思想4-1关联知识计算机编程描述现实世界,仅使用基本数据类型表达还不够eg、现要描述两个学生int

stu1Age=20;Stringstu1Name=“张三”;Stringstu1Color=“黄种人”;属性分散,不便于统一管理int

stu2Age=21;Stringstu2Name=“哈里”;Stringstu2Color=“黑种人”;面向对象思想产生需求4-1关联知识计算机语言的发展逐渐向接近人的思维方式在改变面向对象编程-一组对象互相配合通过沟通完成特定功能对象具有对外服务的接口-继承对象具有隐藏内部服务的实现-封装汇编语言C语言Java语言面向机器面向过程面向对象什么是对象4-1关联知识现实世界万物皆对象具有各自状态、呈现各自行为程序世界一切皆对象

状态:通过一个或多个变量来保存其状态行为:通过方法(method)实现他的行为提问:这幅图片中有哪些对象?类与对象4-1关联知识将属性及行为相同或相似的对象归为一类,类是对象的抽象,代表了此类对象所具有的共有属性和行为把学生特性提取出来学生类对象(20岁,“张三”,“黄种人”)对象(21岁,“乔丹”,“黑种人”)对象(23岁,“哈里”,“白种人”)模版通过类构建具体对象,对象具有自己的属性和行为,通过对象之间消息的传递来完成一定的任务面向对象思想4-1关联知识从现实世界出发,将实际生活中的各种具体事物抽象为对象,对象是Java程序的“核心”软件系统中构造多个对象,各对象间通过消息传递调用彼此方法来协同工作封装:继承:多态:将数据和对数据的操作结合为一个整体,对外提供必要的接口,对象可以看作是静态属性(成员变量)和动态属性(方法)的封装体从现有类派生新类,Java只支持单继承同一个操作被不同类型对象调用时可能产生不同的行为抽象:重要特征类的定义4-1关联知识类对象具体事物抽象抽象实例化实例化类是用来创建同一类型的对象的“模板”,在一个类中定义了该类对象所应具有的成员变量及方法对象是对具体事物的抽象,类是对同一类型对象的抽象类的定义4-1关联知识[访问修饰符]class类名[extends父类][implements接口名]{

成员变量;//属于类,不属于任何方法,描述类的静态属性

构造方法;//初始化类的对象-属性赋值

成员函数;//实现类的行为动作-即方法}类的定义4-1关联知识几点要求:1、class符号表示开始定义类,类名由字母、数字、下划线组成,首字母大写,如Pet、Person2、class前的访问修饰符可选,可以有以下几种:public:公共类,可以被任何包中其它类使用

无修饰符:默认情况,类可以被同一源文件或同一包中其它类用abstract:抽象类,不能实例化对象final:最终类,不能依据它创建子类3、类名之后的修饰符可以有:extends:此关键字之后会跟上一个类名X,表示当前定义的类是类X的子类,会继承类X的属性和行为implements:此关键字之后会跟上一个接口名Y,表示当前类会实现接口Y的所有方法类的定义4-1关联知识4、用{}括起来的部分称为类体对象的定义4-1关联知识创建好了类,即可以创建对象2)对象初始化类名

对象名;1)对象声明对象名=new类名();eg、用new关键字初始化Pet类的对象pPetp;p=newPet();Java语言中除了基本类型外,其它类型都称为引用类型Java中的对象是通过引用对其操作的对象的定义4-1关联知识3)对象的使用

对象名.数据成员//访问对象的某个属性

对象名.成员函数(实参)//访问对象的某个行为成员变量4-1关联知识一般使用类的成员变量来描述类中的静态特征,成员变量声明语法:[修饰符]类型

成员变量名1,成员变量名2…;(1)成员变量可以是Java语言中任何一种数据类型(2)定义成员变量时可以对其初始化,如果不对其初始化,Java使用默认值对其初始化,见右表(3)成员变量的作用范围是整个类体(4)修饰符可选成员变量4-1关联知识1)实例变量变量类型前没有static修饰的变量存储所有实例共有属性,对象不同,值可不同访问方式为:<对象名>.<实例变量名>4-1关联知识圆形和矩形类classCircle{intradius;}classRectangle{doublewidth=10.128;doubleheight=5.734;}publicclassShapeTester{publicstaticvoidmain(Stringargs[]){Circlex;Rectangley;x=newCircle();y=newRectangle();System.out.println("radius="+x.radius);System.out.println("width="+y.width+"height="+y.height);}}4-1关联知识圆形和矩形类验证优化publicclassShapeTester{publicstaticvoidmain(Stringargs[]){Circlex;Rectangley,z;x=newCircle();y=newRectangle();z=newRectangle();x.radius=50;z.width=68.94;z.height=47.54;System.out.println(x.radius+""+y.width+""+z.width);}}编译后运行结果如下:5010.12868.94解释Circle及Rectangle类对象的状态如图4-1关联知识2)类变量也称为静态变量,类型前加static修饰,定义时即赋初值在整个类中只有一份适用情况1)类中所有对象都相同的属性2)经常需要共享的数据3)系统中用到的一些常量值引用格式<类名|对象名>.<类变量名>4-1关联知识对于一个圆类的所有对象,算圆面积时,都需用到π的值,可在Circle类的声明中增加一个类变量PIpublicclassCircle{staticdoublePI=3.14159265;intradius;}当我们生成Circle类的实例时,在每一个实例中并没有存储PI的值,PI的值存储在类中4-1关联知识实例分析下下述代码中类中定义的变量,体会成员变量、类变量以及局部变量差别classPet{//定义一个名字为Pet的类Stringname;//成员变量Stringcolor;//成员变量intage;//成员变量doubleweight;//成员变量doubleprice; //成员变量

staticintcount=0;

publicvoidAddPrice(){ doublemoney; money=300;price+=money;}…}局部变量,必须初始化,且随着方法的调用结束将自动销毁类变量,在类型名前用static修饰,由所有的类实例共享成员变量,类方法外,没有static修饰,作用在整个Pet类中4-1关联知识成员变量分析Demo4_3.java4-1关联知识成员变量小结:1、成员变量的作用域是整个类,可以被类中方法、构造方法和特定类的语句块访问3、类变量与成员变量区别在于:类变量的存储空间为该类的所有对象所共用2、类的每个对象都有自己不同的变量存储空间,成员变量的引用形式为:对象名.成员变量名4-1关联知识成员方法成员方法描述的是类的任何一个实例对象所具有的功能或操作,定义成员函数的一般格式如下:[修饰符]函数返回值类型函数名字([形式参数表])

{

局部变量列表;

语句块;}形式参数:在方法被调用时用于接收外界输入的数据实际参数:调用方法时实际传给方法的数据实参的数目、数据类型和次序必须和所调用的方法声明的形参列表匹配返回值:方法在执行完毕后返还给调用它的环境的数据返回值类型:返回值的数据类型,可以是Java允许的任何一种类型,如无返回值,必须给出返回类型void成员方法调用形式:

对象名.方法名(实际参数列表)方法头方法体4-1关联知识成员方法在Java中,允许多个成员函数使用相同的名字,即允许方法重载,但是形式参数必须不同,如参数个数或参数类型的区别(1)无参数无返回publicvoidAdd(){inta=2;intb=3;intc=a+b;System.out.print(c);}(2)有参数无返回publicvoidAdd(inta,intb){intc=a+b;System.out.print(c);}(3)有参数有返回publicintAdd(inta,intb){intc=a+b;System.out.print(c);returnc;}此处3个方法可以同时作为一个类的成员函数吗?4-1关联知识成员方法classCircle{intradius;staticdoublePI=3.14159265;publicdoublecalcArea(){returnPI*radius*radius;}}classRectangle{doublewidth=20.5;doubleheight=30.1;publicdoublecalcArea(){returnwidth*height;}}eg、给圆形类和矩形类,增加面积计算方法publicclassDemo4_5{publicstaticvoidmain(Stringargs[]){Circlex,z;Rectangley;x=newCircle();z=newCircle();y=newRectangle();System.out.println("radius="+x.radius+",area="+x.calcArea());System.out.println("width="+y.width+"height="+y.height+",area="+y.calcArea());x.radius=5;System.out.println("radius="+x.radius+",area="+x.calcArea());System.out.println("inradius,PI="+Circle.PI);System.out.println("inradius,PI="+x.PI);}}4-1关联知识类方法在Java中用static修饰的方法被称为静态方法或类方法,与静态变量类似,该方法是属于整个类的方法。Java语言中使用下述形式调用类方法:

类名.方法名(实际参数列表)或者对象名.方法名(实际参数列表)static

函数返回值类型函数名字([形式参数表]){…}该方法实现中,只能访问static数据成员和static方法publicclassDemo4_6{intx=5;staticintsx=15;

staticvoidprints(){intx_x=6;sx=x_x;//System.out.println(“x=“+x);System.out.println(“sx=“+sx);}

自学Demo4-6、4-7、4-8成员方法调用时,注意:Java中进行函数调用中传递参数时,遵循值传递的原则基本类型传递的是该数据值本身引用类型传递的是对对象的引用,不是对象本身4-1关联知识4-1关联知识例4-9equals方法的使用4-1关联知识构造方法使用new+构造方法创建一个新的对象,由系统自动调用构造函数,不需要显式调用构造方法是定义在Java类中的一个用来初始化对象的函数构造方法与类同名且没有返回值4-1关联知识创建对象时,使用构造函数初始化对象的成员变量4-1关联知识构造方法当没有指定构造函数时,编译器为类自动添加形如:

类名(){}//系统提供的构造函数4-1关联知识构造方法与普通方法一样,构造方法也可以重载;可以修改Person类的构造方法为:课堂练习:1、自学Demo4_102、利用修改过的Person类,编写程序,分别用三种构造方法创建三个Person对象,如下图所示:4-1案例分析交流与讨论结合案例分析,思考一下几个问题:宠物类定义——宠物类名确定,修饰符确定成员变量——宠物名字、毛发颜色、年龄、体重、售价等成员方法——宠物基本信息查询,如查询名字、毛发颜色、年龄等宠物基本信息构造方法——多种构造函数初始化成员变量对象定义——定义宠物类的对象,成员变量、成员方法访问4-1案例实现4-1案例小结类的定义fen1、构造方法2、成员变量3、成员方法4、对象的定义、初始化、对象成员变量、方法引用4-1案例拓展通过学习本案例,大家应该对如何定义类,如何建立对象有了一定认识,可以在此案例的基础上进一步拓展,如通过提供多个构造方法,以及增加类变量和类方法的定义,实例化多个对象,输出对象属性等,以达到进一步熟悉如何进行类的定义和使用目的。02案例描述案例分析关联知识案例实现案例小结案例拓展优化宠物类4-2案例描述增加修改宠物的基本信息的方法,并且要求宠物的年龄值在0~50之间,否则提示年龄设置有误;要求宠物的体值重在0~100之间,否则提示体重设置有误不允许外部类对宠物的年龄、售价等属性进行直接访问或修改现在需要在案例4-1的基础上对宠物的一些方法进行修改,要求如下所述4-2关联知识封装为什么要封装?防止类之外的代码对类内部的变量进行不适当的访问或修改什么是封装?如何封装?(1)修改属性的可见性来限制对属性的访问。(2)为每个属性创建一个赋值(set)和取值(get)的方法,用于对这些属性的访问。(3)在赋值和取值方法中根据需要增加对属性的存取限制。4-2关联知识封装实例4-2关联知识封装实例4-2关联知识课堂练习1、定义一个“点”(Point)类用来表示三维空间中的点,要求如下: 1)可以生成具有特定坐标的点对象 2)提供可以设置三个坐标的方法 3)提供可以计算该“点”到原点距离平方的方法 4)编写程序验证上述三条2、在已有的Circle类中添加一个方法,该方法计算一个点(上述1中的Point对象)是否在圆(Circle对象)内,并编写程序验证4-2案例分析交流与讨论结合案例分析,思考有以下几个问题:如何对外隐藏类内部信息如何提供恰当的修改和查询方法4-2案例实现4-2案例小节封装1、数据成员name、color、age、weight、price被设置为private访问权限2、数据方法提供了每个数据成员的访问和修改方法被设置为public访问权限4-2案例拓展我们可以在已有学习内容的基础上,进一步增加宠物的属性设置如喜好、品种等,并按照封装性需求来实现属性隐藏,对外提供属性的访问和设置方法,最后实例化并给对象赋值,输出对象属性。03案例描述案例分析关联知识案例实现案例小结案例拓展宠物多样性设计4-3案例描述请基于前一步完成的宠物类满足如下多样化要求的宠物设计(1)在Pet类中增加移动的move方法,打印“我是可以移动的”,增加enjoy方法,打印“我很高兴”。(2)定义Pet类的子类鸟类Bird,属性有爪子数量(number),并重写移动的方法move,打印“我是可以飞的”。重写enjoy方法,打印“我很高兴,啾啾啾”。(3)定义Pet类的子类猫类Cat,属性有品种(kind),并重写移动的方法move,打印“我是可以跑的”,重写enjoy方法,打印“我很高兴,喵喵喵”。(4)测试主类:实现一个Cat对象、一个Bird对象,实现它们的move方法和enjoy方法。4-3关联知识继承继承泛指一个对象直接使用另一对象的属性和方法子类(或派生类)类的继承描述的是类与类之间的“isa”关系,即子类是比父类更为特殊的类,是父类的一种特例通过此种继承派生方式,新类自动包含了原始类的变量和方法,然后可以根据需要将新变量和方法添加到派生的新类中,可以快速地构建一个区别于父类和兄弟类的新类,最大化了现有类重用的可能性父类(或基类、超类)4-3关联知识继承在Java中使用关键字extends实现继承,其基本语法为:classSubclassNameextendsSuperClassName{}例如:classStudent{//类体}classCollegeStudentextendsStudent{ //类体}通过继承,子类自动拥有了基类的所有成员(成员变量和方法)Java只支持单继承,不支持多继承4-3关联知识继承classCatextendsPet{Cat(Stringn,Stringc,inta,doublew,doublep){super(n,c,a,w,p);}}classDogextendsPet{Dog(Stringn,Stringc,inta,doublew,doublep){super(n,c,a,w,p);}}测试类中:Catc=newCat("咪咪","灰色",1,10,5000);c.showInfo();c.setPrice(6000);c.showInfo();Dogd=newDog("旺旺","土黄色",3,30,4000);d.showInfo();d.setColor("金黄色");d.showInfo();在Cat类和Dog类中只定义了构造方法,但是由于都是Pet类的子类,继承了Pet类的方法,可直接使用4-3关联知识Java访问控制权限访问级别访问控制修饰符同

类同包不同类不同包子类不

包公开public√√√√受保护protected√√√×默认没有修饰符√√××私

有private√×××(1)公开级别:用public修饰,对外公开。(2)受保护级别:用protected修饰,对子类和同一个包中的类公开。(3)默认级别:没有修饰符号,向同一个包的类公开。(4)私有级别:用private修饰,只有类本身可以访问,不对外公开。4-3关联知识Java访问控制权限Demo4_15:同一类的A内部,对于任何修饰符限定的成员变量和方法都是可以正常访问的

同一个包的不同类Demo4_15,不能访问A类用private修饰的成员Demo4_16:类A、子类B、类Demo4_16属于同一个包的不同类

子类B可以访问类A的非私有成员变量和非私有成员方法

类Demo4_16对类A中private修饰的成员变量和成员方法也不允许访问学习案例4-15、4-164-3关联知识Object类在Java中,所有类的顶层都是Object类,如果类的定义中没有显式的extends语句,那么该类则默认为是从Object类派生的Object类的两个最常见的方法:1、booleanequals(Object

obj)指明是否有其他对象与当前对象相同2、StringtoString()返回一个描述对象本身的字符串运行Demo4_17,熟悉equals方法和toString方法的调用4-3关联知识Object类在Java中,所有类的顶层都是Object类,如果类的定义中没有显式的extends语句,那么该类则默认为是从Object类派生的Object类的两个最常见的方法:1、booleanequals(Object

obj)指明是否有其他对象与当前对象相同2、StringtoString()返回一个描述对象本身的字符串运行Demo4_17,熟悉equals方法和toString方法的调用4-3关联知识成员变量继承(1)子类继承的是父类的非私有类型的数据成员,子类不能直接访问从父类中继承的私有属性,但可使用公有(及保护)方法进行访问4-3关联知识成员变量继承(2)子类数据成员隐藏1、类B中定义了一个与父类A中已经定义的同名的数据成员,那么子类就有两个同名的数据成员,一个是从父类继承的,一个是子类定义的,f函数中访问该数据成员,会发现从父类继承过来的数据成员被隐藏2、在f函数中再增加一行System.out.println(super.n_public),可以访问父类的同名成员4-3关联知识成员函数继承1、子类可以继承父类的非私有成员函数,父类的private修饰的成员方法不能被继承2、当从父类继承下来的方法不能完全满足子类需要时,可以重写该方法,此时,子类将实现对成员方法的覆盖1)父类的final修饰的方法不允许子类重写2)重写方法必须与父类保持相同的方法名、返回类型、参数个数、类型和顺序。3)子类的该同名方法的访问权限必须大于等于父类方法的访问权限3、如果子类想使用父类被覆盖的方法,那么也必须使用关键字super来完成使用4-3关联知识eg、成员方法同名实例4-3关联知识继承中的构造方法创建一个子类对象时,执行new子类()操作子类对象的构造过程中必须调用基类的构造方法子类可以在自己的构造方法中使用super(参数列表)调用基类的构造方法,实现对从父类继承的成员变量的初始化,再进行子类自身属性初始化如果子类的构造方法没有显式地调用基类构造方法,则系统默认调用基类无参构造方法,如果此时父类中又没有无参构造方法,则编译出错4-3关联知识继承中的构造方法如果子类构造方法中没有显式调用父类构造方法,而父类没有无参数的构造方法,则系统会报编译错误。因此,一般建议父类提供一个不带参数的构造方法。4-3关联知识继承中的构造方法4-3关联知识继承中的构造方法在B()构造函数中,先隐含调用不带参数的构造方法A(),因此,先调用父类的构造方法,再调用子类的构造方法在该构造方法中,同样会先调用父类B类不带参数的构造方法,而B类的构造方法会先调用不带参数的构造方法A()在B()构造函数中,通过super关键字调用父类带参数的构造方法4-3关联知识课堂练习编写程序,程序包含如下内容(1)定义人类Person,包含属性:名字(name)年龄(age)体重(weight)性别(sex)方法:构造方法(name,age,sex)(2)定义教师类Teacher继承Person(extends)属性:职称(post)方法:构造方法(post)(3)定义学生类Student继承Person(extends)属性:职称(school)方法:构造方法(post)(4)主类:实现一个Person对象,一个Teacher对象,一个Student对象4-3关联知识this和super在类的方法定义中使用的this关键字代表使用该方法的对象的引用当必须指出当前使用方法的对象是谁时要使用this关键字,this关键字的常见用法有如下两种:

1、this.成员变量-----当成员变量名与局部变量名重名时区分使用2、this(参数)-----调用同类的其他构造方法this:4-3关联知识this和super在类的方法定义中使用super关键字引用父类的成分super关键字的常见用法有如下两种:

1、super.成员变量-----使用super关键字调用被子类隐藏的父类的成员变量2、super.成员方法-----使用super关键字调用被子类隐藏的父类的成员方法3、super(参数)-----调用父类的构造方法super4-3案例分析交流与讨论结合案例分析,思考一下几个问题:基类Pet修改——增加成员方法move方法和enjoy方法子类Bird和Cat——定义各自的属性和重写move方法和enjoy方法验证——主类定义实现4-3案例实现…4-3案例实现4-3案例小结类的继承循环结构1、父类定义在前,子类继承再后2、子类定义从父类继承成员变量

从父类继承成员方法

子类自身的成员变量

子类自身定义的成员方法

构造方法3、子类对象创建构造4-3案例拓展在学习完本案例之后,你应该对如何基于已有类快速创建一个新类有了比较清晰的认识,可以进一步在本案例的基础上,完成如下拓展。(1)定义Pet类的子类狗类Dog,属性为品种(kind),并重写move方法,打印“我是可以跑的”,重写enjoy方法,打印“我很高兴,汪汪汪”。(2)在子类中增加toString()方法,描述类的属性信息。04案例描述案例分析关联知识案例实现案例小结案例拓展宠物店设计4-4案例描述现有一个宠物店,里面经营鸟、猫、狗等若干类型宠物,现在想要实现对宠物进行喂食,不同宠物喂食不同食物且呈现出不同的高兴状态4-4关联知识多态性多态是面向对象程序设计的一个重要特征,利用多态性可以设计并实现一个易于扩展的系统。在Java中多态的本质是多个相似功能的方法用同一个方法名向不同的对象发送同一个消息,不同对象在接收时会产生不同的行为4-4关联知识多态性是否可以将基类的对象赋值给派生类的引用呢?如:4-4关联知识多态性publicclassDemo4_25{publicstaticvoidmain(String[]args){

Bird

b

;b=newPet("Polly",

"白色",2,12,2000);

b.enjoy();

Catc;c=newPet("Tom",

"灰色",10,10,1000);c.enjoy();}}4-4关联知识多态实现要素1)动态绑定技术在运行时根据具体对象的类型进行绑定,通过对象的类型再调用适当的方法,找到正确的方法主体2)继承和重写实现继承的层次关系子类重写了父类的方法父类的方法引用指向子类对象,调用重写的方法4-4关联知识多态性示例4-4案例分析交流与讨论结合案例分析,思考一下几个问题:如何实现不同宠物喂食不同食物的效果如何让不同宠物呈现不同高兴状态验证——主类定义实现4-4案例实现…4-4案例小结多态性循环结构1、要有继承2、要有重写3、父类引用指向子类对象当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,再去调用子类的同名方法。多态好处:可以使程序有良好的扩展,并可以对所有类的对象进行通用处理。

4-4案例拓展可以考虑在本案例的基础上进一步完成如下拓展练习。(1)增加方法,统计该宠物店现有的宠物数量以及预期总售价。(2)增加方法,在每个类中增加toString方法,描述每个类的静态属性值。(3)优化PetShop类中的feed()方法,将该方法中的如下语句:System.out.println("我是"+petList[i].getName());替换为:System.out.println(petList[i]);05案例描述案例分析关联知识案例实现案例小结案例拓展类的管理4-5案例描述为了方便对案例4-4宠物商店设计的多个类进行管理,并便于后续二次开发,现要求将类纳入指定的包进行管理4-5关联知识包的管理Java语言提供了很多常用的包,例如,java.util、java.awt、java.lang等,这些包中存放着最常用的基本类用户可以将自己定义的类放置到指定的包中,以方便使用4-5关联知识包的管理包的作用:1)划分类名空间来解决类命名冲突,即相同名字的类不能放入一个包中,不同包中的类可以重名2)用于控制类之间的访问,同一个包中的不同类除了private限定的类的方法和变量外都可以访问,不同包中的类访问需要受到访问控制符限制。包的使用包的创建:1)在默认情况下,Java系统会为每一个.java源文件创建一个无名包,该包中的类不能被其他包引用2)创建方法:

package自定义包名;//Java文件的首行,包名必须小写import包;4-5关联知识包的管理4-5关联知识举例例4-28包的创建及使用实例packagestudentpg;//把本文件中所有的类都纳入studentpg包中publicclassStudent{

…}1、文件名:Student.java2、文件名:PupilStu.javapackagestu

温馨提示

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

评论

0/150

提交评论