面向对象的思想概述_第1页
面向对象的思想概述_第2页
面向对象的思想概述_第3页
面向对象的思想概述_第4页
面向对象的思想概述_第5页
已阅读5页,还剩114页未读 继续免费阅读

下载本文档

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

文档简介

面向对象的思想概述由于Java语言是面向对象的程序设计语言,为编写出充分利用Java特点的高效程序,必须首先建立按照面向对象的方法来认知世界的思维方式。

课程目标第2页,共119页,2024年2月25日,星期天了解对象;了解类型;了解对象和类型之间的关系本章重点第3页,共119页,2024年2月25日,星期天面向过程 程序=算法+数据 以数据为基础,通过算法计算数据面向对象 程序=对象+消息 万物皆为对象,对象通过消息相互作用面向过程与面向对象比较第4页,共119页,2024年2月25日,星期天什么是面向对象不使用面向对象描述一件事青椒炒牛肉

取出青椒500g,用刀切成细丝,过油取出牛肉300g,切丁,用酱油、酒、黑醋腌制30分钟起油锅、放入牛肉炒及青椒大火快炒1分半拿出淀粉、水調在一起,這个称为

芡汁。將芡汁倒入锅中攪拌,会产生黏稠現象這叫芶芡完成。使用面向对象描述一件事青椒炒牛肉

青椒

數量:500g

处理:用刀切成细丝,过油

牛肉

數量:300g

处理:切丁,用酱油、酒、黑醋腌制

芡汁

製作:淀粉調上適量的水

芶芡:將芡汁倒入锅中

青椒处理好、牛肉处理好、芡汁製作好,

放入锅中快炒1分半後用芡汁芶芡即可。第5页,共119页,2024年2月25日,星期天什么是面向对象青椒炒牛肉

青椒

數量:500g

处理:用刀切成细丝过油

牛肉

數量:300g

处理:切丁,用酱油、酒、

黑醋腌制

芡汁

製作:淀粉調上適量的水

芶芡:將芡汁倒入锅中

青椒处理好、牛肉处理好、芡汁製作好,放入锅中快炒1分半後用芡汁芶芡即可。先定好参与这件事的物品有哪些(这些物品叫做“对象”)再定义这些物品所需的数量及行为(这些数量及行为叫做

“属性”与“方法”)接下来就可用物品间的互动行为来描述整件事情是如何发生的。

(这部份的描述称为“主程序”)第6页,共119页,2024年2月25日,星期天什么是对象?对象由什么组成?对象有什么特性?对象观第7页,共119页,2024年2月25日,星期天对象

(object)我们可以把生活所在的真实世界(RealWorld)当作是由许多大小不同的对象所组成的。对象可以是有生命的个体,比如一个人或一只鸟。第8页,共119页,2024年2月25日,星期天对象也可以是无生命的个体,比如一辆汽车或一台计算机。对象也可以是一件抽象的概念,如天气的变化或鼠标所产生的事件。

第9页,共119页,2024年2月25日,星期天万物皆对象现实是由实体组成的,所有实体皆为对象。对象是现实实体在软件系统中的映射对象观第10页,共119页,2024年2月25日,星期天对象的三要素对象的属性(特征、状态、组成)对象的行为(对象能完成的功能,用于改变状态、发送消息)对象的标识对象观第11页,共119页,2024年2月25日,星期天生活中常见的对象:对象的名称对象的属性(状态)对象的方法(行为)汽车速度、油量、所处的位置…加速、刹车、换挡…仓库结构、容量、库存…入库、出库、盘点…国家经济状况、人口、地理位置…发展经济、战争、谈判…发展经济、战争、谈判…人五官、肤色、民族…运动、工作、学习…第12页,共119页,2024年2月25日,星期天类(class)在真实世界里,有许多同“种类”的对象。而这些同“种类”的对象可被归类为一个“类”。例如我们可将世界上所有的汽车归类为汽车类,所有的动物归为动物类。

动物类汽车类第13页,共119页,2024年2月25日,星期天类描述了一组有相同特性(属性)和相同行为(方法)的对象。类是现实世界中实体的抽象集合,是封装了数据和操作的复杂的抽象数据类型。什么是类第14页,共119页,2024年2月25日,星期天类和对象汽车类有些共同的状态(汽缸排气量,排档数,颜色,轮胎数……)和行为(换档,开灯,开冷气……),但每一台汽车个别的状态及方法可不同于且独立于其他汽车

。你的汽车只是这世界中许多汽车中的一个。我们就称你的汽车是汽车类中的一个对象,也叫一个实例汽车类

class)实例

instance)NEW你的车第15页,共119页,2024年2月25日,星期天

软件开发过程:具体—抽象—具体对象:刘丽静态特征:刘丽女讲师动态特征:授课评职称类:教师

属性:姓名性别职称服务:授课评职称抽象实例化第16页,共119页,2024年2月25日,星期天类和对象类是具有共同属性和行为的对象的抽象。对象是具体的,类型是抽象的创建的是类型,使用的是对象类对象抽象实例化属性或状态操作或行为数据或变量方法第17页,共119页,2024年2月25日,星期天为什么要使用类?采用简单数据类型表示现实世界中的概念存在很大的局限性。例如:采用int型数据表示一个日期概念,需要使用3个变量:

intday,month,year;如果要表示2个人的生日,就要使用6个变量同时在使用日期概念时要同时对三个变量进行访问而定义一个Date类表示日期就方便的多了……第18页,共119页,2024年2月25日,星期天面向对象程序设计的重点是类的设计,而不是对象的设计。第19页,共119页,2024年2月25日,星期天最基本的观点:万物皆对象类和对象的产生:具体---抽象----具体创建的是类型,使用的是对象类型是对象的抽象,对象是类型的实例总结第20页,共119页,2024年2月25日,星期天第6章类与对象第21页,共119页,2024年2月25日,星期天本章学习目标掌握类的定义与创建对象的方法掌握方法及构造方法重载掌握访问控制修饰符和static的用法第22页,共119页,2024年2月25日,星期天本讲内容类的定义创建对象构造方法第23页,共119页,2024年2月25日,星期天第一个例子:福娃说话publicclassDoll{/***福娃的名字*/privateStringname;publicDoll(Stringname){=name;}

/***福娃说话*/publicvoidspeak(){System.out.println(name);}}publicclassAppMain{

/***应用程序的入口方法*/publicstaticvoidmain(Stringargs[]){Dollbeibei=newDoll("贝贝");//创建福娃贝贝

Dolljingjing=newDoll("晶晶");//创建福娃晶晶

Dollhuanhuan=newDoll("欢欢");//创建福娃欢欢

Dollyingying=newDoll("迎迎");//创建福娃迎迎

Dollnini=newDoll("妮妮");//创建福娃妮妮

beibei.speak();//福娃贝贝说话

jingjing.speak();//福娃晶晶说话

huanhuan.speak();//福娃欢欢说话

yingying.speak();//福娃迎迎说话

nini.speak();//福娃妮妮说话

}}类声明类属性(类成员变量)类方法main函数构造方法第24页,共119页,2024年2月25日,星期天封装是指一个对象由属性和方法的有机体组成,可表示为:封装的实体=数据+方法(行为)封装可以避免一个对象的数据成员被不正当地存取,以达到信息隐藏和保护对象的效果对象就是一组变量和相关方法的封装体,封装实现了对象的模块化和信息隐藏,

封装的概念第25页,共119页,2024年2月25日,星期天

类就是一种数据类型,对象就是属于某种类型的一个变量。类是对象的蓝图,这个蓝图就像汽车制造厂制造汽车的图纸一样,一种车型的图纸,可以生产成千上万辆相同型号的汽车。同样在程序设计中,当定义好一个类以后可以以该类为蓝图创建很多实例对象。电视机的状态有种类、品牌、外观、大小,行为有打开、关闭、调整音量

类和对象的概念第26页,共119页,2024年2月25日,星期天类的定义示例:一个描述点对象的类属性x、y坐标方法修改获取x、y坐标[修饰符]class类名{属性定义(声明)方法定义(声明)}第27页,共119页,2024年2月25日,星期天属性定义[修饰符]类型属性名=[初值];类型可以是任何类型,包括类。属性有默认值。属性是指在类体中所有方法外定义的变量第28页,共119页,2024年2月25日,星期天属性默认值数据类型

默认值

boolean

false

char

‘\u0000’

整形(byte,short,int,long)

0

浮点型(float,double)

+0.0f或+0.0d

引用类型

null

第29页,共119页,2024年2月25日,星期天方法定义[修饰符]返回值类型方法名(参数列表){语句(组);return语句;}第30页,共119页,2024年2月25日,星期天练习定义一个三角形类Triangle,描述三角形对象.三角形有两个属性底和高,有几个方法:一个setSide用于修改底的值,一个getSide用于获取底的值;一个setHeight用于修改高的值,一个getHeight用于获取高的值;还有一个findArea方法用于计算三角形的面积。第31页,共119页,2024年2月25日,星期天练习定义一个圆类Circle,描述圆对象。圆有一个属性radius表示半径,有三个方法:一个setR用于修改半径的值,一个getR用于获取半径的值,还有一个findArea方法用于计算圆的面积。第32页,共119页,2024年2月25日,星期天对象和类如果将对象比作汽车,类就是汽车的设计图纸。对象和类的关系:类是用来定义对象的属性和方法的模板。可以从一个类中创建许多(对象)实例,创建一个实例被称为实例化。对象和实例两个词通常可以互换。第33页,共119页,2024年2月25日,星期天对象的创建(1)声明对象声明该类类型的一个变量,这里并没有定义一个对象,它只是一个能够引用对象的变量,或称为引用类型变量

Shirtmyshirt;第34页,共119页,2024年2月25日,星期天myshirt对象创建的内存模型第35页,共119页,2024年2月25日,星期天(2)创建对象创建一个对象,并把对该对象的引用赋值给该变量,该对象称为类的实例

myshirt=newShirt();第36页,共119页,2024年2月25日,星期天myshirtShirt()x对象创建的内存模型包含两部工作:1、创建堆内存对象2、将对象首地址给myshirt第37页,共119页,2024年2月25日,星期天试分析下面的两个图第38页,共119页,2024年2月25日,星期天第39页,共119页,2024年2月25日,星期天引用类型总结(了解)类引用类型使用类定义的变量=引用类型变量存储32位长的引用,用于引用对象引用类型变量=对象名第40页,共119页,2024年2月25日,星期天创建对象创建对象的语法:类名对象名=new

类名();调用对象属性和方法的语法:对象名.属性名对象名.方法名(实参列表)看一个示例:MpointTest_4.3.java第41页,共119页,2024年2月25日,星期天思考

设A为已定义的类名,下列声明A类的对象a的语句中正确的是()。

A)Aa=newclass();B)publicAa=A();C)publicAa=newA();D)aA;第42页,共119页,2024年2月25日,星期天编程练习----设计电脑类设计一个电脑类“制造”(即创建)该电脑类的两个实例,一个实例对象表示自己的电脑,一个实例对象表示张华的电脑,然后输出每台电脑的配置情况。提示:电脑的属性可以有颜色,品牌,型号,硬盘容量,内存容量等。方法可以有开机,运行软件,关机,联网,输出配置情况等。第43页,共119页,2024年2月25日,星期天构造方法实例化对象就是给对象分配内存空间,并将对象初始化,对象的初始化是由类的构造函数来完成的。对象的初始化:就是给对象的属性字段赋初值。对象在创建过程中,其实有些属性是与生俱来的,如一个人的性别、肤色、父母等。因此在对象生成的时候就进行初始化。则更加自然与方便。构造方法就是在一个类的对象创建后自动对其属性进行初始化的一种特殊方法。第44页,共119页,2024年2月25日,星期天构造方法比如:newCircle()就调用了无参的构造方法。示例:Circlec=newCircle();第45页,共119页,2024年2月25日,星期天构造方法语法[修饰符]类名(参数列表){//具体实现;}第46页,共119页,2024年2月25日,星期天构造方法的作用构造方法一般用来初始化对象,比如可通过构造方法给对象的属性赋初值.第47页,共119页,2024年2月25日,星期天构造方法-要点构造方法名与类名一致构造方法没有返回值类型如果没有定义构造方法,系统会生成一个默认的无参的构造方法比如:Point(inta,intb){ x=a; y=b;}第48页,共119页,2024年2月25日,星期天方法的重载重载:一个类中如果同时存在多个方法名相同,参数列表不同的方法,则他们之间的关系称为重载。第49页,共119页,2024年2月25日,星期天voidoutput1(){System.out.println("thisisfirstmethod");}voidoutput1(Strings){System.out.println("thisissecondmethod"+s);

}

classexample1{publicstaticvoidmain(Stringargs[]){OutTestres=newOutTest(); res.output1(); res.output1("haha"); }}第50页,共119页,2024年2月25日,星期天使用重载常犯的错误:voidsetCircle(Strings);booleansetCircle(Stringstr);这两个方法的参数个数和类型完全相同,但返回类型不同!类中不能根据返回值不同来定义相同的方法第51页,共119页,2024年2月25日,星期天要点:方法名相同、参数列表不同

参数列表不同包括:参数数目不同,参数出现顺序不同,参数的类型不同.注意:方法重载时返回值类型可以不同,所以不能根据返回值类型不同来判断方法是否发生重载,只能根据参数列表来区分第52页,共119页,2024年2月25日,星期天构造方法-要点如果在定义类时定义了带参的构造方法,系统将不会提供无参的构造方法构造方法只能用new在创建对象时调用,不能通过对象名或方法名调用第53页,共119页,2024年2月25日,星期天练习1.设i,j为类X中定义的int型属性,下列X类构造方法中不正确的是()。A)voidX(intk){i=k;}B)X(intk){i=k;}C)X(intm,intn){i=m;j=n;}D)X(){i=0;j=0;}第54页,共119页,2024年2月25日,星期天练习2.有一个类A,以下为其构造方法的声明,其中正确的是()。A)publicA(intx){...}B)staticA(intx){...}C)publica(intx){...}D)voidA(intx){...}第55页,共119页,2024年2月25日,星期天练习

在前面的圆Circle类里,定义两个构造方法,一个是无参数的构造方法,另一个是带参的构造方法,在测试类中分别用两个构造方法创建半径为5和半径为10的圆,求圆的面积并打印出来.第56页,共119页,2024年2月25日,星期天练习定义一个学生类,包含姓名和性别两个属性,为该类提供三个构造方法为属性赋值,构造方法分别为无参、带一个参数和带两个参数,创建toString方法输出学生信息。在主方法中分别用3个构造方法创建3个对象,调用toString方法输出学生信息。第57页,共119页,2024年2月25日,星期天总结如何定义类?如何创建对象?第58页,共119页,2024年2月25日,星期天方法第59页,共119页,2024年2月25日,星期天创建方法例如:publicstaticintmax(intnum1,intnum2){if(num1>num2)returnnum1;elsereturnnum2;}第60页,共119页,2024年2月25日,星期天创建方法修饰符是可选的,它指定了方法的属性并且告诉编译器该方法可以如何调用。方法可以返回一个值。返回值类型是方法要返回的值的数据类型。若方法不返回值,则返回值类型为关键字void。除构造方法外,所有的方法都要求有返回值类型。方法可以有一个参数列表,按方法的规范称为形式参数。当方法被调用时,形式参数用变量或数据替换,这些变量或数据称为实际参数。参数是可选的。方法体包括一个定义方法做什么的语句集合。第61页,共119页,2024年2月25日,星期天创建方法有返回值的方法要求有关键字return,而返回值类型为void的方法则可以没有。返回值类型为void类型的方法也可以使用return语句,用来终止方法并返回该方法的调用者。执行return语句后方法终止。第62页,共119页,2024年2月25日,星期天调用方法根据方法是否有返回值,通常有两种途径调用方法:如果方法返回一个值,对方法的调用通常就当做处理一个值。如:intlarger=max(3,4);如果方法返回void,对方法的调用必定是一条语句。如:System.out.println(“WelcometoJava!”);第63页,共119页,2024年2月25日,星期天调用方法当程序调用方法时,程序控制转移到了被调用的方法中。执行return语句或遇到方法结束的右括号时,被调用方法将程序控制还给调用者。例如: voidmethod1() {System.out.println(method2());} intmethod2() {inti=method3();returni;} intmethod3() {return10;}第64页,共119页,2024年2月25日,星期天调用方法例测试max方法这个例子演示怎样创建和调用max方法。源程序:TestMax.java第65页,共119页,2024年2月25日,星期天参数传递方法的威力是它处理参数的能力。调用方法时,需要提供实参,它们必须在类型、次序和数量上与方法中所对应的形参匹配,这叫做参数顺序匹配。第66页,共119页,2024年2月25日,星期天参数传递例如:voidnPrintln(Stringmessage,intn){for(inti=0;i<n;i++)System.out.println(message);}语句nPrintln(“Hello”,3)把实参“Hello”传给形参message,把3传给n,然后打印3遍“Hello”。语句nPrintln(3,”Hello”)就是错误的,因为实参和形参不匹配。第67页,共119页,2024年2月25日,星期天参数按值传递在调用带参数的方法时,实参的值复制到方法中称为按值传递。无论方法中的形参怎样变化,方法外的实参不受影响。例4.2测试按值传递

本程序证实方法中的参数传递是按值传递的。 源程序:TestPassByValue.java第68页,共119页,2024年2月25日,星期天练习编写方法,求三个整数的平均值,平均值的类型要求为双精度浮点型。在main方法中测试这个方法。第69页,共119页,2024年2月25日,星期天重载方法方法重载就是指,两个方法具有相同名称和不同的参数形式。方法名与参数形式合称方法头标志。调用方法时,Java运行系统能够根据方法头标志决定调用哪个方法。重载方法可使程序清晰易读。执行相似任务的方法应该给予相同的名称。被重载的方法必须具有不同的参数形式。不能基于不同的修饰符或返回值类型重载方法。第70页,共119页,2024年2月25日,星期天重载方法例4.3重载max方法doublemax(doublenum1,doublenum2){if(num1>num2)returnnum1;elsereturnnum2;}与前面的max方法同名,但参数形式不同。第71页,共119页,2024年2月25日,星期天练习重载上一个求整数平均值的方法,实现求三个双精度浮点数的平均值。在main方法中测试这个重载的方法与之前整数平均值的方法第72页,共119页,2024年2月25日,星期天方法抽象方法抽象是把方法的应用同实现分离开来。在不知道方法如何实现的情况下,用户也可以使用方法。如果要改变方法的实现,只要不改变方法头标志,提供给用户的程序就不受影响。第73页,共119页,2024年2月25日,星期天例子一个根据员工基本计算工资的程序:publicclassTest{publicstaticvoidmain(String[]args){ intlevel=0; System.out.println(“等级”+level+”的工资是:”+salary(level));}}第74页,共119页,2024年2月25日,星期天例子salary方法定义:staticintsalary(intlevel){switch(level){ case0:return1000; case1:return2000; case2:return2500; default:return0; }}第75页,共119页,2024年2月25日,星期天练习编写方法求一个double数值的向右取整,再写一个方法求它向左取整。比如:5.4的向右取整为6,而向左取整为5;而5.0的向右取整为5,向左取整也为5。写一个方法计算一个整数各位数字的和,使用下面的方法说明:publicstaticintsumDigits(longn)比如:sumDigits(234)返回2+3+4=9第76页,共119页,2024年2月25日,星期天变量的作用域指变量可以在程序中引用的范围。在方法中定义的变量称为局部变量。

局部变量的作用域从声明变量的地方开始,直到包含该变量的块结束为止。参数是一个局部变量,作用域涵盖整个方法。for循环头中初始的变量,作用域是整个for循环可在同一个方法不同块里声明同名局部变量。

不能在嵌套或同一块中两次声明同一局部变量。第77页,共119页,2024年2月25日,星期天关于Math教材p137第78页,共119页,2024年2月25日,星期天练习蒙特卡罗模拟使用随机数和概率来解决问题。这个方法在数学、物理、化学和财经方面有很广的应用。使用蒙特卡罗模拟来估算pai值.为了使用蒙特卡罗方法来估算pai值,画出一个圆的外接正方形,假设这个圆的半径为1。那么圆面积就是pai而外接正方形的面积是4。随机产生正方形中的一个点。该点落在这个圆内的概率为circleArea/squareArea(圆面积/正方形面积)=pai/4.编写程序,在正方形内随机产生10000个点,100000个点和1000000个点,用numberOfHits表示落在圆内的点。由此求出pai的近似值。第79页,共119页,2024年2月25日,星期天几个例题教材p131最大公约数素数第80页,共119页,2024年2月25日,星期天本节课内容包访问控制修饰符static修饰符第81页,共119页,2024年2月25日,星期天Java中允许将多个类收集在一起成为一组,称为包(package)。声明包的方法(将类放入包中)package包名称;例如:packagech04;示例:A.java定义包(package)注意,package必须写在程序的第一条第82页,共119页,2024年2月25日,星期天包(package)为什么使用包?主要原因是防止两位程序员取了相同的类别名称,包嵌套的层次可以用来保证类名的唯一性,避免同名类冲突。第83页,共119页,2024年2月25日,星期天包与文件目录Java要求包名与文件系统的目录结构一一对应。一个包实际上是包含类字节码的目录package.neusoft.graphics;classCircle {…..}Circle.java

Circle.classcneduneusoftgraphicsCircle.class第84页,共119页,2024年2月25日,星期天使用包中的类使用其他包中的public类常用是:关键字import包名.类名;例:importjava.util.Scanner;示例:AA.java

AATest.java注意:只能引入其他包中的public类第85页,共119页,2024年2月25日,星期天注意也可以引入整个包例如:importjava.util.*;注意:*表示引入一个单独包下的所有类,而不是引入所有以java.util为前缀的所有包。第86页,共119页,2024年2月25日,星期天包注意:package必须是第一条语句只能使用其他包中的public类如果一个程序中使用两个包中的类同名,在使用类名前加上包名前缀第87页,共119页,2024年2月25日,星期天例如:

java.util和java.sql包中都有一个Date类,当程序如下所写时importjava.util.*;importjava.sql.*;

使用Date时,如定义Datetody;是错误的第88页,共119页,2024年2月25日,星期天这时需在类前加完整的包名,如:java.util.Datedeadline=newjava.util.Date(10000)java.sql.Datetoday=newjava.sql.Date(10000)所以,当类放在有名包中时,类的全称应该是包名.类名.第89页,共119页,2024年2月25日,星期天练习定义一个类A,放到pack1包中;定义一个类B,放到pack2包中;在类B中定义main方法,在main方法中创建类A的对象。观察:两个类的字节码文件的位置第90页,共119页,2024年2月25日,星期天通过前面的练习,看下面的注意(了解)当源程序没有指定包的时候,默认这样的程序都是放在默认包中,或称无名包。

无名包中的所有类都可以互相引用;但无名包中的类是不能被有名包中的类引用,而有名包中的类可以被无名包中的类引用第91页,共119页,2024年2月25日,星期天访问控制修饰符类的访问控制修饰符public:包内外都可访问默认:只能包内访问示例:AA.javaAATest.java第92页,共119页,2024年2月25日,星期天访问控制修饰符

public:用它定义的类、方法和属性,所有程序都可以访问。

protected:用它定义的方法或属性在同一个包中的类可访问,或者在不同包中某类的子类可访问。默认修饰符:即类、方法和属性前没有修饰符的时候,那么该类、方法和属性可以被同一个包中的任何类访问。private:用它定义的方法或属性,只能由定义该方法的类访问,而其他类不能访问第93页,共119页,2024年2月25日,星期天类与属性、方法的访问修饰符public缺省protectedprivate类√√属性√√√√方法√√√√第94页,共119页,2024年2月25日,星期天被不同修饰符修饰的属性和方法与被访问关系类属性和方法同一类同一包其他包publicpublic√√√protected√√子类可访问缺省√√private√缺省public√√protected√√缺省√√private√例:AA414.java

AA414Test.java

第95页,共119页,2024年2月25日,星期天注意:访问控制修饰符不能修饰方法中的局部变量,可以修饰属性。在方法内部访问控制修饰符会引起编译错误。大多数情况下,构造方法应该是public的。但是,如果想防止用户创建类的实例,可以使用私有的构造方法。第96页,共119页,2024年2月25日,星期天访问控制修饰符建议方法和构造方法一般为public属性一般为private对私有属性的访问通过访问器方法完成(set方法和get方法)第97页,共119页,2024年2月25日,星期天访问器方法对象不能直接访问私有域,但是用户常常需要检索和修改数据域。为了能够访问数据域,可以为私有数据域添加读取方法和设置方法,这些方法称为访问器方法。第98页,共119页,2024年2月25日,星期天访问器方法设置方法voidset属性名(属性类型的参数)比如:对属性radiusvoidsetRadius(doubleradius)获取方法属性类型get属性名()比如:doublegetRadius()例Circle.java第99页,共119页,2024年2月25日,星期天static静态属性用static修饰的属性,也称为类属性用于描述一类对象共享的属性比如:员工的最低工资,学生的学校名称等等可通过类名直接调用,也可通过对象调用示例:EmpTest_415.java第100页,共119页,2024年2月25日,星期天static静态方法用static修饰的方法,也叫类方法静态方法中不能访问非静态成员静态方法在类加载的时候加载,当我们在静态方法中调用非静态成员时,因为其未被分配空间,因此不能使用。第101页,共119页,2024年2月25日,星期天要点创建静态属性和静态方法在第一次使用类的时候创建,所有类的对象共享非静态属性和非静态方法在创建对象的时候创建,每个对象之间独立第102页,共119页,2024年2月25日,星期天要点使用在类外,静态属性和静态方法可以通过类名直接调用,也可以通过对象名调用。在类外,非静态属性和非静态方法只能通过对象名调用。第103页,共119页,2024年2月

温馨提示

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

评论

0/150

提交评论