面向对象的编程(基本语法).ppt

上传人:max****ui 文档编号:3286548 上传时间:2019-12-11 格式:PPT 页数:96 大小:3.05MB
返回 下载 相关 举报
面向对象的编程(基本语法).ppt_第1页
第1页 / 共96页
面向对象的编程(基本语法).ppt_第2页
第2页 / 共96页
面向对象的编程(基本语法).ppt_第3页
第3页 / 共96页
点击查看更多>>
资源描述
第3章面向对象编程(基本语法),第3章面向对象的编程(基本语法),3.1面向对象程序设计概述3.2类的定义3.3类中的方法3.4方法中的参数传递3.5访问控制,程序设计语言的发展,机器语言由计算机硬件系统可以识别的二进制指令组成的语言,这种语言中的指令都是由0,1组成的序列,称这样的序列为一条机器指令。如101101110001汇编语言由机器指令映射出来的容易被人读懂的助记忆符,如ADDDXCX高级语言机器码低级高级,面向过程的程序设计,设计思路自顶向下、逐步求精。采用模块分解与功能抽象,自顶向下、分而治之。程序结构按功能划分为若干个基本模块,形成一个树状结构。各模块间的关系尽可能简单,功能上相对独立;每一模块内部均由顺序、选择和循环三种基本结构组成。其模块化实现的具体方法是使用子程序。优点有效地将一个较复杂地程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护。,面向过程的程序设计的局限,在面向过程程序设计中,被操作的数据仍然是嵌入在编程语句中的,并且与程序逻辑混合在一起,计算机的信息世界与现实世界之间的映射关系仍然不直接,不明确。用面向过程的方法开发较大的软件系统,数据缺乏保护。使用面向过程程序设计方法建立的应用程序是很难修改。,面向对象程序设计的概念,面向对象程序设计是建立在结构化程序设计基础上的,但它不再是从功能入手,而是从对象(人、地方、事情等)入手;面向对象程序设计以类作为构造程序的基本单位,它具有封装、数据抽象、继承、多态等特点;,面向对象的方法学,世界是由什么组成的?,对象,一般意义上的对象是现实世界中的一个实际存在的事物,可以是有形的(比如一辆汽车),也可以是无形的(比如一项计划),是构成世界的一个独立单位,具有:对象标识:即对象名,是一个对象区别于其他对象标识符。对象状态:可以用某种数据来描述对象行为:对象所表现的行为或具有的功能,对象,有各自不同的状态,对象,布兰尼,朱丽叶,顾客姓名:朱丽叶年龄:28体重:52千克操作:购买商品,姓名:布兰尼职衔:收银员年龄:35体重:60千克操作:收款打印账单,对象的特征属性,属性对象具有的各种特征每个对象的每个属性都拥有特定值例如:布兰尼和朱丽叶的体重不一样,60kg,布兰尼,属性,35岁,对象的特征方法,方法对象执行的操作,打单,收银,方法,刷卡,对象的属性和方法,列出尼古拉斯凯奇驾驶的这辆法拉利F360Spider的属性和方法列出小狗对象的属性和方法,属性:品牌:法拉利型号:F360Spider颜色:黄色价格:380万元方法:发动停止加速,属性:颜色:白色方法:叫跑吃,说一说教室里的对象描述他们的属性和方法,颜色:黑色品牌:BENQ投影,姓名:张三年龄:20学习,抽象,分类人类通常的思维方式分类所依据的原则抽象忽略事物的非本质特征,只注意那些与当前目标有关的本质特征,从而找出事物的共性,把具有共同性质的事物划分为一类,得出一个抽象的概念。,抽象,对象类(抽象化),Shape,从对象抽象出“类”,抽取出下列对象的属性和方法的共同特征,轿车,顾客,类,面向对象方法中的“类”具有相同属性和方法的一组对象的抽象的描述。类的数据成员是对对象属性的抽象,类的方法成员是对对象行为的抽象,而类本身就是对对象的抽象。类与对象的关系犹如模具和铸件之间的关系,一个属于某类的对象称为该类的一个实例。,对象类(抽象化)类对象(具体化),王艳2年级3班,刘强5年级1班,范小飞2年级1班,Student,类,类和对象,小汽车,类的实例化,是由类具体化对象,类,产地,车体颜色,行驶,刹车,归纳一组相似对象的共性,对象,属性,方法,封装,把对象的属性和方法结合成一个独立的系统单位对象的属性和方法通常被封装在一起,共同体现事物的特性,二者相辅相承,不能分割,封装,封装第一个涵义是,把对象的全部属性和全部服务结合在一起,形成一个不可分割的独立单位(即对象)。第二个涵义也称作“信息隐蔽”,即尽可能隐蔽对象的内部细节,对外形成一个边界(或者说形成一道屏障),只保留有限的对外接口使之与外部发生联系。,继承,继承是面向对象语言的另一特性。类与类之间可以组成继承层次,一个类的定义(子类)可以定义在另一个已定义类(父类)的基础上。子类可以继承父类中的属性和操作,也可以定义自己的属性和操作。因而具有继承这一特性所带来的优势,大大增加了程序的重用性。,面向对象的方法学,继承,多态,多态性多态性是指不同类型的对象接收相同的消息时产生不同的行为。如电梯系统中,当向按钮对象发送消息pressButton()时,不同按钮对象如电梯内部按钮(ElevatorButton)和楼层按钮(FloorButton)会自动判断自己的所属类并执行相应的服务。,消息机制,在面向对象技术中,对象间的交互是通过消息的传递来完成的。消息处理方法就是对象的成员方法。Windows操作系统也是以消息为基础,事件为驱动的。,3.2类的定义,类是对象的模板,使用对象前必须先创建类,修饰符class类名extends父类implements接口名成员变量声明;/描述对象的状态方法声明;/实现对象的行为,publicclassCustomerpublicstringname;publicdoublecreditLimit;publicintcustomerID;,类访问修饰符默认为:friendly,3.2类的定义,类是组成Java程序的基本要素。类封装了一类对象的状态和方法。类是用来定义对象的模板。类的实现包括两部分:类声明和类体。“classCustomer”叫做类声明;“Customer”是类名。习惯上类名的第一个字母大写,但这不是必须的。类声明之后的一对大括号“”,“”以及它们之间的内容称做类体。,3.2类的定义,类修饰符:public公共类、private私有类、protected受保护类;abstract抽象类;final最终类。class:是关键字,是声明类的必须的符号。类名:是类设计者指定的标识符。父类:如果正在定义的类需要从另一个类中继承所有的成员,被继承的类就是父类。,类的访问控制,顶层类只能是public或默认访问级别public级别的类可以被同一个包或者其他包中的类访问默认级别的类只能被同一个包中的类访问,publicclassSample/public级别classSample/默认访问级别protectedclassSample/非法privateclassSample/非法,classtrapeziafloatsupside,subside,high,area;/变量定义部分floatcomputeArea()/方法定义area=(supside+subside)*high/2.0f;returnarea;voidmodifyHigh(floath)/方法定义high=h;,3.2类的定义,成员变量,成员变量是用来描述事物的静态特征的。,修饰符,修饰符数据类型变量名;,public:可被所有其他类引用。private:仅可被该类自身引用和修改,不能被其他任何类(包括子类)引用。protected:该类自身、子类、同一包中的其他类。缺省:本包中的类。static:类成员变量,对所有的实例一致,引用时前缀可使用类名或对象名。final:数值不变常量,定义同时应对其进行初始化。,成员变量和局部变量,类中变量定义部分所定义的变量被称为类的成员变量。在方法体中定义的变量和方法的参数被称为局部变量。成员变量在整个类内都有效,局部变量只在定义它的方法内有效。如果局部变量的名字与成员变量的名字相同,则成员变量被隐藏。这时如果想在该方法内使用成员变量,必须使用关键字this。,变量1类型变量1;变量2类型变量2;变量3类型变量3;,public返回类型方法1()变量4类型变量4;public返回类型方法2()变量5类型变量5;,publicclassAutoLion,AutoLion类的方法别的类的方法,谁能使用这些变量?,方法1,方法2,成员变量,局部变量,局部变量,成员变量和局部变量,publicclassAutoLionStringcolor=黄色;publicvoidrun()/方法1:跑System.out.println(正在以0.1米/秒的速度向前奔跑。);publicStringbark()/方法2:叫Stringsound=吼;returnsound;publicStringgetColor()/方法3:获得颜色属性returncolor;publicStringshowLion()/方法4:输出类的描述信息return这是一个+getColor()+的玩具狮子!叫声是+sound;,可以调用吗?,成员变量和局部变量,类的方法,(2)类的方法类的方法,用来规定类属性上的操作,实现类对外界提供的服务,也是类与外界交流的接口。Java中声明方法的语法如下:,修饰符返回值类型方法名(参数列表)throws异常1/方法体声明局部变量声明;语句序列;,类和对象,类:相对对象而言,类似于蓝图包含方法和数据,对象:是类的实例使用关键字new创建对象具有行为,对象,类,3.2.2创建类的实例对象,创建一个对象包括对象的声明和为对象分配内存两个步骤。(1)对象的声明。一般格式为:,PersonzhangPing;,类的名字对象名字;,如:,3.2.2创建类的实例对象,(2)为声明的对象分配内存使用new运算符为声明的对象分配内存。如:,zhangPing=newPerson();,classPersonfloatheight,weight;Stringname;voidspeak(Strings)System.out.println(s);classProgrampublicstaticvoidmain(Stringargs)PersonzhangPing;/声明对象zhangPing=newPerson();,(3)对象的内存模型,3.2.2创建类的实例对象,当用Person类声明一个变量,即对象zhangPing时,如例子中的对象:PersonzhangPing;内存模型如左图所示,3.2.2创建类的实例对象,当系统见到:zhangPing=newPerson();时,就会做两件事:,为height,weight,name各个变量分配内存,即Person类的成员变量被分配内存空间。new运算符在为变量height,weight,name分配内存后,将返回一个引用给对象变量zhangPing。,3.2.2创建类的实例对象,值类型与引用类型,JAVA数据类型分为两类:值类型和引用类型。值类型:包括简单类型、枚举类型。引用类型:包括类、接口、数组。一般把引用类型的变量称为对象。,值类型与引用类型区别,堆栈,堆,5,6,i,j,实际数据,12345H,obj,publicclassSchool/定义属性StringschoolName;/学校的全称intclassNum;/教室的数目intlabNum;/机房的数目/定义方法publicStringtoString()returnschoolName+n+配备:+classNum+教室+labNum+机房;,定义类的toString()方法,用于输出类相关的信息,publicStringtoString()return字符串;/方法体,成员变量,使用对象,使用对象:使用“.”进行以下操作给类的属性赋值:对象名.属性调用类的方法:对象名.方法名(),school.Name=“西亚斯学院;/给属性赋值school.toString();/调用类的方法,该方法中的操作将被执行,publicclassInitSchoolpublicstaticvoidmain(Stringargs)Schoolschool=newSchool();System.out.println(school);school.Name=“郑州轻工业学院;school.classNum=100;school.labNum=20;System.out.println(school);,创建和使用对象示例,说一说看到什么效果?,编写学生类,输出学生相关信息编写教师类,输出教师相关信息,3.3构造函数,Studentzhang=newStudent();zhang.Name=张靓靓;zhang.Age=20;zhang.Hobby=唱歌歌;,班级来了新学生添加学生对象,学生类实例化对象、设置属性,初始属性若太多,设置麻烦,能否在实例化时设置属性?,publicStudent(stringname,intage,stringhobby)this.Name=name;this.Age=age;this.Hobby=hobby;,Studentzhang=newStudent(张靓靓,20,唱歌歌);,一次设置完成,类中加入这个方法,添加的方法叫做构造函数,构造函数,访问修饰符()/构造函数的主体,publicclassEmployee/默认构造函数Employee()qualification=研究生;,构造函数,是类中的一种特殊的方法构造函数名与类名相同,不返回任何值可初始化成员变量,每次创建类的实例都会调用此方法,staticvoidMain(Stringargs)/调用默认构造函数EmployeeobjEmployee=newEmployee();System.out.println(“资格=+objEmployee.qualification);System.out.println(“薪水=+objEmployee.salary);,构造函数,classEmployee,privateStringname;privatechargender;privateStringqualification;privateintsalary;,/默认构造函数privateEmployee()qualification=“研究生;,实例化对象调用构造函数,使用new关键字,finalize()方法,Java中一旦垃圾收集器准备好释放对象占用的存储空间,它首先调用finalize(),而且只有在下一次垃圾收集过程中,才会真正回收对象的内存。所以如果使用finalize(),就可以在垃圾收集期间进行一些重要的清除或清扫工作。使用finalize()方法的一般格式如下:protectedvoidfinalize()/finalizationcodehere其中关键字protected是防止该类之外的其他对象或代码访问该方法。,3.4方法的使用,写出狮子对象的“跑”方法写出狮子对象的“叫”方法,电动玩具狮子属性:颜色:黄色行为:跑叫,按此按钮,狮子开始跑,3.4方法的使用,publicclassAutoLionStringcolor=黄色;publicvoidrun()System.out.println(正在以0.1米/秒的速度向前奔跑);publicStringbark()Stringsound=吼;returnsound;,AutoLion类代码实现,方法名称,方法体,返回类型,如何定义类的方法,方法(Method)是一组程序代码的集合方法是类或对象的行为对象需要做某些事情,在类中添加方法,方法的名称,方法的主体,方法返回的数据类型,参数列表,3.4方法的使用,访问修饰符返回类型方法名(参数列表)/方法的主体,通过return返回值,publicprivate,intdoublestringvoid,命名规范:单词首字母大写Pascal命名法,参数传递,访问修饰符(可选),默认情况下为private,如果不需要返回任何值,方法返回void数据类型,方法的声明,定义方法时,需要注意以下几点:方法名不能和变量、常数或者类中其它的成员相同。方法可以有参数,也可以没有参数,但是不论是否有参数,小括号都是必需的。结束某个方法的执行,可以使用return语句,程序遇到return语句后,会将执行流程交还给调用此方法的程序代码段。如果声明一个非void类型的方法,则方法中必须至少有一个return语句。,3.4方法的使用,方法的返回值,两种情况如果方法具有返回值,方法中必须使用关键字return返回该值,返回类型为该返回值的类型如果方法没有返回值,返回类型为void,publicclassStudentStringname=张三;publicvoidgetName()returnname;,返回类型要匹配,return表达式;,编译错误,常见错误-1,publicclassSchoolpublicstaticvoidmain(Stringargs)return“西亚斯学院!;,返回类型是void方法中不能有返回值,常见错误-2,publicclassStudentpublicdoublegetInfo()doubleweight=95.5;doubleheight=1.69;returnweight,height;,方法至多可以返回一个值,不能返回多个值,方法调用,方法是个“黑匣子”,完成某个特定的应用程序功能,并返回结果方法调用:执行方法中包含的语句,对象名.方法名();,方法调用,classProgrampublicintMyMethod()System.out.println(thisisMyMethod.);inti=10;returni;publicstaticvoidmain(Stringargs)Programmethod=newProgram();intj=5;j=method.MyMethod();System.out.println(thevalueis:“+j);,方法参数,下面代码输出结果是什么?,publicstaticvoidmain(stringargs)intnum1=5,num2=10;/两个数字System.out.println(“交换前两个数的值分别为:”+num1+“和”+num2);Swap(num1,num2);/交换两个数的值System.out.println(交换后两个数的值分别为:”+num1+“和”+num2);/交换两个数的方法privatestaticvoidSwap(intnum1,intnum2)inttemp;/中间变量temp=num1;num1=num2;num2=temp;,方法参数,传递引用类型时:类:Student参数在程序中被修改,/传递引用类型参数Studentscofield=newStudent(Scofield,Genders.Male,28,越狱狱);scofield.SayHi();Vote(scofield);scofield.SayHi();,引用类型:类,人气属性加1的方法,方法参数,classProgram1publicstaticvoidAddOne(inta)a+;publicstaticvoidmain(Stringargs)inta=3;System.out.println(调用AddOne之前,a=“+a);AddOne(a);System.out.println(调用AddOne之后,a=“+a);,1)传递值类型的参数,方法参数,classProgram2publicstaticvoidAddOne(inta)a0+;publicstaticvoidmain(Stringargs)inta=3;System.out.println(调用AddOne之前,a=“+a0);AddOne(a);System.out.println(调用AddOne之后,a=“+a0);,2)传递引用类型的参数,JVM在运行时,做完初始化之后,就会查找main()方法,从这里开始整个程序的运行。在main()方法的括号里面有一个形式参数“Stringargs”,可以接受系统所传递的参数。在命令行执行一个程序通常的形式是:,3.4.6命令行参数的使用,参数列表中可以容纳多个参数,参数间以空格或制表符隔开,它们被称为命令行参数。,java类名参数列表,3.5访问控制,所谓访问控制是指对象是否可以通过“.”运算符操作成员变量或通过“.”运算符使用成员方法。JAVA中有以下成员访问修饰符:public:任何类都可以不受限制的存取这个类的成员。private:所有方法和数据成员只能在此类中使用protected:除了类内可以使用之外,继承自此类的子类也可以存取。缺省:在当前包中都可以存取。,修饰符与访问控制,classStudentprivatestringname;/姓名publicintage;/年龄publicstringidNumber;/身份证号staticvoidMain(stringargs)StudentmyStudent=newStudent();myStudent.name=张三;myStudent.age=20;,类成员访问修饰符,私有成员,公有成员,实例化一个对象,可以访问,无法访问编译错误,类成员访问修饰符,staticvoidMain(Stringargs)StudentmyStudent=newStudent();myStudent.age=-2;myStudent.idNumber=123456;,非法数据,身份证号不能被修改,无法获得数据,无法正常赋值,有时候将类中的字段公开是不安全的,如果设为私有成员,能否对这些字段进行规则约束或者只读呢?,私有变量和私有方法,一个类中创建了另外一个类的对象后,该类不能通过对象名访问其私有变量和私有方法.,publicclassDemoPrivatepublicinta;/公共类型的成员变量privateintb;/私有类型的成员变量publicintgetA()/公共类型的成员方法returna;privateintgetB()/私有类型的成员方法returnb;publicDemoPrivate(inta,intb)/构造方法this.a=a;this.b=b;,私有变量和私有方法,publicstaticvoidmain(Stringargs)DemoPrivateaDemoPrivate=newDemoPrivate(1,2);/访问公共类型的成员方法inta=aDemoPrivate.getA();System.out.println(变量a的值:+a);/访问私有类型的成员方法intb=aDemoPrivate.getB();System.out.println(变量b的值:+b);,尽管成员变量和成员方法定义为私有类型。但由于处于同一类中,仍然能够对成员变量和成员方法进行访问。如果在另一类中,则访问受到限制。,.公有变量和公有方法,一个类中创建了另外一个类的对象后,该类能够通过对象名访问其公有变量和公有方法.,packagepub1;publicclassDemopub1/public修饰是必需的。/公共类型的成员变量publicinta;/公共类型的成员方法publicvoidmethod()System.out.println();,packagepub2;importpub1.*;classDemopub2publicstaticvoidmain(Stringargs)Demopub1aDemo1=newDemopub1();/访问aDemo1中的公共成员方法aDemo1.method();/访问aDemo1中的公共成员变量aDemo1.a=10;inta=aDemo1.a;System.out.println(aDemo1中的公共成员变量a的值:+a);,.公有变量和公有方法,3.默认变量和默认方法,不用private、public、protected修饰符的成员变量和方法被称为友好变量和友好方法。一个类创建了另外一个类的一个对象后,如果两个类在同一包中,该类中可以通过对象访问其默认变量和默认方法,.受保护的成员变量和方法,一个类创建了另外一个类的一个对象后,如果两个类在同一包中,该类能够通过对象访问其protected变量和protected方法在后面学习类的继承时,将讲述protected和“友好”之间在继承方面的区别。,/Demopro3.Javapackagepro3;publicclassDemopro3/公共类型的成员变量publicinta;/保护类型的成员方法protectedvoidmethod()System.out.println();,【例】不同包中公共类中protected修饰的方法的访问,.受保护的成员变量和方法,packagepro4;importpro3.*;publicclassDemopro4publicstaticvoidmain(Stringargs)Demopro3aDemo1=newDemopro3();/不能访问Demopro3中的保护类型成员方法/原因是该方法是protected类型/aDemo1.method();/可以访问Demopro3中的公共成员变量aDemo1.a=10;inta=aDemo1.a;System.out.println(Demopro3中的公共成员变量a的值:+a);,.受保护的成员变量和方法,3.5.2static关键字的使用,类可以具有静态的成员,如静态字段、静态方法使用static关键字修饰,访问修饰符static数据类型变量名;,访问修饰符static返回值类型方法名(参数列表),3.5.2static关键字的使用,静态变量属于类在类的实例创建以前完成初始化,并且它在应用程序的整个生存期内一直存在。只开辟一块内存空间存储,被同一个类的所有实例共享,因此static字段也称为类字段,classLionpublicstaticstringfamily=felidae;/猫科动物./ALionobjectisnotcreatedinthiscodeSystem.out.println(Family:0,Lion.family);,3.5.2static关键字的使用,实例变量必须首先实例化类的一个对象,再通过对象访问,因此称为实例变量,classCatstringname;staticstringfood;,staticvoidMain()Cat.food=“fish”;/OKCat.name=“Kitty”;/错误Catcat1=newCat();cat1.name=“Kitty”;/OK,static变量不依赖于具体对象,可通过类名直接访问,无需先生成一个实例对象,也可以通过实例对象访问类变量,3.5.2static关键字的使用,由于在所有的对象间共享,因此可以用于对象之间的通信思考题:怎样统计被创建的Cat对象的总数?,classCatpublicstaticintcount;publicstringname;publicCat()count+;,1cat1,2cat2,3cat3,4cat4,count=4,实例变量和类变量,classABCDchardata;staticintshare_data;classDemoABCDa,b,c,d,每个对象的实例变量都分配内存通过对象来访问这些实例变量,类变量仅在第一次使用类时分配内存,所有实例对象共享同一个类变量,2静态代码块在类中,也可以将某一块代码声明为静态的,这样的程序块叫静态初始化段。静态代码块的一般形式如下:,3.5.2static关键字的使用,static语句序列,编译通过后,用java命令加载本程序,程序运行结果首先输出:Thisisstaticblock.12接下来才是main()方法中的输出结果,由此可知静态代码块在main方法之前就被执行。,3.5.2static关键字的使用,staticintstVar=12;/stVar只在本块内有效System.out.println(Thisisstaticblock.+stVar);,如下面代码定义一个静态代码块,3.5.2static关键字的使用,注意:1.静态代码块只能定义在类里面,它独立于任何方法.2.静态代码块里面的变量都是局部变量.3.静态代码块会在类被加载时自动执行.4.一个类中允许定义多个静态代码块.5.静态代码块只能访问类的静态成员.,3.5.2static关键字的使用,静态方法静态方法也叫作类方法,类名.方法名没有static修饰的方法叫实例方法,对象名.方法名注意事项:static方法中不能使用非静态成员,因为非静态成员与实例相关。static方法中不能使用this或super(与实例相关)非static方法中可以使用静态成员构造方法也可以是静态的,实例方法和类方法,classmemberstaticintclassVar;intinstanceVar;staticvoidsetClassVar(inti)classVar=i;/instanceVar=i;/cantaccessnostaticmemberstaticintgetClassVar()returnclassVar;voidsetInstanceVar(inti)classVar=i;/canaccessstaticmemberinstanceVar=i;intgetInstanceVar()returninstanceVar;,实例方法和类方法,实例方法和类方法,publicclassmemberTestpublicstaticvoidmain(Stringargs)memberm1=newmember();memberm2=newmember();m1.setClassVar(1);m2.setClassVar(2);System.out.println(“m1.classVar=”+m1.getClassVar()+“m2.ClassVar=”+m2.getClassVar();m1.setInstanceVar(11);m2.setInstanceVar(22);System.out.println(“m1.InstanceVar=”+m1.getInstanceVar()+“m2.InstanceVar=”+m2.getInstanceVar();,3.5.3final关键字的使用,final关键字可以修饰类、成员变量、方法以及方法中的参数。final类:不能被继承,即不能有子类。final方法:这个方法不能被重写。final常量:常量必须赋给初值,而且不能再发生变化。final参数:该参数的值不能被改变。,3.5.3final关键字的使用,1)final修饰数据成员如果一个数据成员前面有final修饰,一经赋值,就不允许在程序的其他地方修改。定义方式如下:,classConstTimeExpressfinalintMaxHour=23;finalintMaxMinute=59;finalintMaxSecond=59;,finaltypevariableName;,2)final修饰方法带有final修饰符的方法称为最终方法。这个方法不能被重写。把方法声明为最终方法有时可增加代码的安全性。使用方式如下。,3.5.3final关键字的使用,finalreturnTypemethodName(paramList),例如:finalintgetLength(Strings),3)final类final类不能被继承。例如,Java中的String类,它对编译器和解释器的正常运行有很重要的作用,不能轻易改变它,因此把它修饰为final类。同时,如果你认为一个类不需要再生成它的子类,这时也应把它修饰为final类。定义一个final类的格式如下:,3.5.3final关键字的使用,finalclassfinalClassName,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


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

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


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