![类与对象的基本概念演示文稿_第1页](http://file4.renrendoc.com/view/6e5ac80d3e9f73623416dfad1cabb140/6e5ac80d3e9f73623416dfad1cabb1401.gif)
![类与对象的基本概念演示文稿_第2页](http://file4.renrendoc.com/view/6e5ac80d3e9f73623416dfad1cabb140/6e5ac80d3e9f73623416dfad1cabb1402.gif)
![类与对象的基本概念演示文稿_第3页](http://file4.renrendoc.com/view/6e5ac80d3e9f73623416dfad1cabb140/6e5ac80d3e9f73623416dfad1cabb1403.gif)
![类与对象的基本概念演示文稿_第4页](http://file4.renrendoc.com/view/6e5ac80d3e9f73623416dfad1cabb140/6e5ac80d3e9f73623416dfad1cabb1404.gif)
![类与对象的基本概念演示文稿_第5页](http://file4.renrendoc.com/view/6e5ac80d3e9f73623416dfad1cabb140/6e5ac80d3e9f73623416dfad1cabb1405.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、类与对象的基本概念演示文稿第一页,共一百零五页。(优选)类与对象的基本概念第二页,共一百零五页。2.1 编程语言的几个发展阶段1、机器语言如:汇编语言面向机器的语言,低级语言,是计算机处理信息的早期语言特点:程序中的指令都是由0,1组成的序列,称为“机器指令”优点:深入理解CPU、寄存器等硬件系统原理单片机等硬件系统编程第三页,共一百零五页。2、过程语言如:C语言、Fortran语言面向过程的语言,高级语言,接近人的“自然语言”特点:程序通常由若干“块”(过程/函数)组成,每个块负责完成独立的功能第四页,共一百零五页。采用面向过程的编程思想:程序=算法+数据优点:流程清晰执行效率比面向对象程序
2、高适于编写数据处理类程序及较小程序,如:算法。缺点:处理复杂问题时,逻辑混乱可维护性较差第五页,共一百零五页。3、面向对象语言如:Java语言、C+语言高级语言,更加符合人的思维模式特点:封装继承多态第六页,共一百零五页。采用面向对象的编程思想:“一切都是对象”程序 = 对象 + 消息优点:高可维护性、可扩展性、可复用性、健壮性适于编写复杂的、较大的程序缺点:执行效率较低第七页,共一百零五页。封装将数据和对数据的操作封装在一个对象中,并且对对象的使用者隐藏数据的实现过程例如:卡车、公共汽车、轿车等可以抽象出其共性:属性:可乘人数、运行速度、功率、油耗、自重、轮子数目行为(功能):加速、减速、刹
3、车、转弯面向对象编程三个特性第八页,共一百零五页。将这些特性封装在一起,用类描述class car int number; double speed; int power;double oilwear;double weight;int wheel; public void speedup(double speed) public void speeddown(double speed)public void brake()第九页,共一百零五页。继承通过抽象,抽取出某一类的多个对象的共同特性,形成“类”子类可以继承父类的属性及功能,并能够扩展例如:自行车、校车都属于“车”这一类型,并且具有共同
4、的属性“时速”,可抽象出“车”作为父类第十页,共一百零五页。class 车double 时速class 校车class 自行车class 轿车/自动继承了“时速”属性校车() 时速 = 90;/还能扩展属性和功能boolean 有空调;void 放音乐()第十一页,共一百零五页。多态方法的多态:多个操作(方法)可具有相同的名字,但方法接收的参数必须不同;继承的多态:同一个操作被不同类型对象调用时,可产生不同的行为。对象的上转型对象第十二页,共一百零五页。示例:方法的多态class 校车校车() 时速 = 90;校车(天气 wea) if (wea = 天气.雨天) 时速 = 70; else
5、if (wea = 天气.雪天) 时速 = 120;校车(司机 who, 天气 wea) if (who = 司机.张师傅 & wea = 天气.雨天) 时速 = 120; else if 第十三页,共一百零五页。示例:继承的多态class 车double cost () return 0;class 校车double cost () return 65;class 自行车double cost () return 650;车 car = new 车();double cost = car.cost();/cost的值为 0车 car = new 校车();double cost = car.
6、cost();/cost的值为 65车 car = new 自行车();double cost = car.cost();/cost的值为 650第十四页,共一百零五页。2.2 类什么是类?类是组成Java程序的基本要素;类封装了一类对象的属性和方法;类是用来定义对象的模板。类的实现包括两部分:类声明类体第十五页,共一百零五页。1、类的声明class People 类的声明People为类名第十六页,共一百零五页。2、类体class People 类体:大括号及其包含内容类体的内容:大括号之间内容第十七页,共一百零五页。声明形式public abstract | final class 类名称
7、 extends 父类名称 implements 接口名称列表 成员变量声明及初始化; 成员方法声明及方法体;思考:类声明的作用,需要定义哪些内容,需要明确哪些限制,有无现有代码可以复用?第十八页,共一百零五页。类体的内容由两部分构成:变量定义:用来刻画属性;方法定义:用来刻画功能。例如:class 梯形 float 上底,下底,高,area; /变量定义部分 float 计算面积() /方法定义部分 area=(上底+下底)*高/2.0f; return area; void 修改高(float h) /方法定义部分 高=h; 第十九页,共一百零五页。钟表类 思考:该类封装了时分秒状态属性和
8、设置时间、显示时间的功能方法public class Clock / 成员变量 int hour ; int minute ; int second ; / 成员方法 public void setTime(int newH, int newM, int newS) hour=newH ; minute=newM ; second=news ; public void showTime() System.out.println(hour+:+minute+:+second); 第二十页,共一百零五页。3、成员变量和局部变量成员变量:变量定义部分定义的变量;局部变量:方法体中定义的变量和方法的参
9、数。例:找出下面类中的成员变量和局部变量class 梯形 float 上底,下底,高,area; float 计算面积() float area =(上底+下底)*高/2.0f; return area; void 修改高(float h) 高=h; 第二十一页,共一百零五页。成员变量和局部变量的类型可以是Java中的任一类型,包括基本类型和引用类型。成员变量在整个类内都有效;局部变量只在定义它的方法内有效。 成员变量与其在类体中的书写位置无关,但不提倡将成员变量定义分散开第二十二页,共一百零五页。成员变量分为两种类型: 实例成员变量:简称“实例变量”,无“static”修饰类变量:或称“静态
10、变量”,有“static”修饰举例:class Puppy String 名字;static String 叫声 = 汪汪; 实例变量类变量第二十三页,共一百零五页。如果局部变量与成员变量名称相同,则:成员变量被隐藏(即在该方法中,成员变量功能失效) 举例:class Puppy String 名字 = 旺财;void 关门放狗 ( ) String 名字 = 泰格;System.out.println( 名字 + ,咬他! );Puppy d = new Puppy();d.关门放狗();运行结果:泰格,咬他!第二十四页,共一百零五页。如果方法参数与成员变量名称相同,则:成员变量被隐藏举例:
11、class Puppy String 名字 = 旺财;void 关门放狗 ( String 名字 ) System.out.println( 名字 + ,咬他! );Puppy d = new Puppy();d.关门放狗(泰格 );运行结果:泰格,咬他!第二十五页,共一百零五页。当方法的局部变量、方法参数与成员变量的名称相同时,如果想调用成员变量,必须使用“this”关键字this代表调用该方法的当前对象举例:第二十六页,共一百零五页。class Puppy String 名字 = 旺财;void 关门放狗 ( ) String 名字 = 泰格; System.out.println( 名字
12、 + ,咬他! );void 关门放狗 ( String 名字 ) System.out.println( 名字 + ,咬他! );Puppy d = new Puppy();d.关门放狗();d.关门放狗(泰格 );运行结果:泰格,咬他!泰格,咬他!this.名字this.名字运行结果:旺财,咬他!旺财,咬他!第二十七页,共一百零五页。声明格式格式有很多,这里是成员变量的格式,思考有哪些?public | protected | private static final变量数据类型 变量名1=变量初值, 变量名2=变量初值, ;格式说明public、protected、private 为访问
13、控制符static指明这是一个静态成员变量final指明变量的值不能被修改成员变量声明小结:第二十八页,共一百零五页。4、方法方法的定义包括两部分:方法声明和方法体。void 关门放狗 ( String 名字 ) System.out.println( 名字 + ,咬他! );方法体方法声明第二十九页,共一百零五页。方法定义格式public | protected | private static finalabstract返回类型 方法名(参数列表) throws exceptionList方法体第三十页,共一百零五页。方法声明通常包含:修饰符、方法类型、方法名、参数public stati
14、c void main ( String args )方法类型可以是任意的Java类型,void代表该方法无返回值参数的类型也可以是任意的Java类型方法体通常包含:局部变量定义、Java语句第三十一页,共一百零五页。方法的参数、方法内定义的局部变量有效范围问题:方法参数在整个方法内有效,方法内定义的局部变量从它定义的位置之后开始有效;如果局部变量的定义是在一个复合语句中,那么该局部变量的有效范围是该复合语句;如果局部变量的定义是在一个循环语句中,那么该局部变量的有效范围是该循环语句。第三十二页,共一百零五页。void 看门 ( People p ) String 日志;if ( p.身份 =
15、 小偷) String s = 小偷来啦!;报警(); 咬他();日志 += s;if ( p.身份 = 主人) 日志 += 主人来啦!;for (int i = 1 ; i = 100 ; i +) 摇尾巴();System.out.println(日志);System.out.println(s);System.out.println(p.身份);System.out.println(i);有效无效有效无效第三十三页,共一百零五页。5、方法重载方法的多态性一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即:或者是参数的个数不同,或者是参数的类型不同。 第三十四页,共一百零五
16、页。class Area float getArea(float r) return 3.14f*r*r;double getArea(float x,int y)return x*y; float getArea(int y,float x) return x*y; double getArea(float x,float y,float z) return (x*x+y*y+z*z)*2.0; 参数个数不同参数类型不同第三十五页,共一百零五页。注意:方法的返回类型和参数的名字不参与比较,即:即使两个方法类型不同,也必须保证参数不同。例如:double getArea(float x,int
17、 y)return x*y;float getArea(float y,int x) return x*y;非法!因为两个方法参数相同。第三十六页,共一百零五页。6、构造方法一种特殊方法,它的名字必须与它所在的类的名字完全相同,而且没有类型,构造方法也可以重载。 没有类型并不是指返回类型是void,其实返回的类型是类本身第三十七页,共一百零五页。class 梯形 float 上底,下底,高;梯形() 上底=60;下底=100;高=20;梯形(float x,int y,float h) 上底=x; 下底=y; 高=h; 名字与类名相同没有类型重载了两个构造方法梯形 t = new 梯形(0.1
18、,100,100);使用构造方法创建了一个对象第三十八页,共一百零五页。构造方法用于创建一个对象。构造方法很“特殊”,不能被其他方法调用;只能在初始化一个对象的时候使用从内存分配上讲,一个对象通过构造方法初始化结束过后,才得到该对象的内存模型第三十九页,共一百零五页。在Java中,类至少需要一个构造方法;如果类中没有构造方法,那么在使用该类创建对象时,JVM会为该类自动提供一个无参数的构造方法,称为默认构造方法。如:class Puppy String 名字;static String 叫声 = 汪汪;Puppy d = new Puppy();调用了默认构造方法,无参数;实际上,默认构造方法
19、无任何代码第四十页,共一百零五页。注意:如果类定义了一个或者多个构造方法,那么Java不提供默认的构造方法。例如:class 梯形 float 上底,下底,高;梯形(float x,int y,float h) 上底=x; 下底=y; 高=h; 梯形 t = new 梯形(0.1,100,100);梯形 t2 = new 梯形();合法非法第四十一页,共一百零五页。构造方法中通常写一些初始化成员变量的赋值语句,当然也可以写其他代码。例如:class Puppy String 名字 = 旺财;Puppy()System.out.println(旺财来也!);Puppy d = new Puppy
20、();运行结果:旺财来也!第四十二页,共一百零五页。7、类方法和实例方法类中的方法也可分为实例方法和类方法:不加关键字static的是实例方法;加关键字static的是类方法 构造方法是特殊的方法,不能用static修饰构造方法第四十三页,共一百零五页。8、值得注意的问题对成员变量的操作只能放在方法中,在定义类的成员变量时可以同时赋初值,如:class A int a = 12;class A int a;a = 12;合法非法因为:类体的内容由成员变量定义、方法定义两部分组成。第四十四页,共一百零五页。实例方法既能对类变量操作,也能对实例变量操作;而类方法只能对类变量进行操作。例如:clas
21、s A int a = 12;static int b;void f() a = 120;b = 210;static void g() a = 1;b = 2;合法非法合法合法第四十五页,共一百零五页。实例方法可以调用该类中的其他方法;而类方法只能调用该类的类方法,不能调用实例方法。例如:class A static int a; static void g() a = 3;void f() g(); static void h() g(); f();合法非法合法第四十六页,共一百零五页。2.3 对象 类是创建对象的模板。当使用一个类创建了一个对象时,我们也说该对象是这个类的一个实例。在程序
22、中,同一个类可以创建多个对象。第四十七页,共一百零五页。1、创建对象包括对象声明和为对象分配内存两个步骤。(1)对象声明一般格式为:类名 对象名;如:People zhangPing;第四十八页,共一百零五页。(2)为对象分配内存使用new运算符和类的构造方法为声明的对象分配内存new运算符的功能可以理解为:“给我一个新对象”如果类中没有构造方法,系统会调用默认的构造方法第四十九页,共一百零五页。(3)对象的内存模型例子:西游记人物class 西游记人物 float 身高, 体重;String 发型, 耳朵,手,脚, 嘴巴;void 喊话(String s) System.out.printl
23、n(s); 执行代码:西游记人物 猪八戒; /声明对象猪八戒 = new 西游记人物(); /分配内存,使用了new 运算符和默认构造方法第五十页,共一百零五页。首先,声明了一个对象“猪八戒”。西游记人物 猪八戒;此时的内存模型如图所示: NULL猪八戒未分配实体的对象“空对象”第五十一页,共一百零五页。然后,实例化对象“猪八戒”。猪八戒 = new 西游记人物(); 此时,JVM会做两件事:为“西游记人物”类的“发型”等成员变量分配内存;接着执行构造方法。如果成员变量没有被初始化,则系统提供默认值。new运算符在为成员变量分配内存后,将返回一个引用给变量“猪八戒”,即:记录对象的起始地址。第
24、五十二页,共一百零五页。“猪八戒”实例化后的内存模型如图所示:存储成员的空间是连续的,因此,对象“猪八戒”内保存的其实是第一个成员变量的首地址猪八戒0.00.0nullnullnullnullnull体重耳朵手脚嘴巴身高发型0 xAB3第五十三页,共一百零五页。创建多个不同对象一个类可以通过使用new运算符创建多个不同对象,这些对象将分配不同的内存空间,因此,改变一个对象的成员变量不会影响其他对象的状态。例如:创建两个“西游记人物”类型的对象:西游记人物 猪八戒 = new 西游记人物();西游记人物 孙悟空 = new 西游记人物();第五十四页,共一百零五页。两个对象实例化后的内存模型如图
25、所示:猪八戒0.00.0nullnullnullnullnull0 xAB3孙悟空0.00.0nullnullnullnullnull0 xFA6第五十五页,共一百零五页。2、使用对象通过使用运算符“.”,对象可以访问自己的成员变量或者调用方法。例如:class 西游记人物 float 身高, 体重; String 发型, 耳朵,手,脚, 嘴巴;void 喊话(String s) System.out.println(s);第五十六页,共一百零五页。执行代码:西游记人物 猪八戒 = new 西游记人物();猪八戒.发型 = 光头;猪八戒.喊话( 俺老猪五百年前是帅哥! );访问成员变量调用方法
26、第五十七页,共一百零五页。3、对象的引用和实体用类创建一个对象时,类中的成员变量被分配内存空间,这些内存空间称做该对象的实体,而对象中存放着引用(即地址)。 一个类创建的多个对象,如果具有相同的引用,那么就具有完全相同的实体。第五十八页,共一百零五页。例如:类Point:用x,y坐标表示的点class Point int x,y;Point(int x,int y) this.x = x;this.y = y;第五十九页,共一百零五页。执行代码:Point p1 = new Point(1,1);Point p2 = new Point(100,100);p1 = p2;p111yx0 xAB
27、3p2100100yx0 xFF7问题:这部分内存怎么办?0 xFF7第六十页,共一百零五页。没有实体的对象称作空对象,空对象不能使用;如果一个实体不再被任何对象所拥有,则变成了“内存垃圾”;Java有“垃圾回收”机制,周期性的检测某实体是否已经不再被任何对象所拥有,发现则回收内存。 第六十一页,共一百零五页。4、参数传值当方法被调用时,如果方法有参数,参数必须要实例化,即参数变量必须有具体的值。在Java中,方法的所有参数都是“传值”的,也就是说,方法中参数变量的值是调用者指定的值的拷贝。第六十二页,共一百零五页。参数传值的精度转换问题:对于基本数据类型的参数,向该参数传递的值的精度不可以高
28、于该参数的精度。例如:不可以向int型参数传递一个float值,但可以向double型参数传递一个float值。第六十三页,共一百零五页。参数传值对变量的影响:传递基本类型的变量由于基本类型变量中保存的是“值”,因此改变的仅仅是值的副本,传值的变量内容不会改变;传递引用类型的变量由于引用类型变量中保存的是“地址”,因此尽管传递的是“地址”的副本,但是改变的是“地址”所对应的内存实体,因此变量内容发生改变。第六十四页,共一百零五页。例如:class 西游记人物 double 体重;void 设置体重(double x) 体重= x;第六十五页,共一百零五页。class 塑身 void 改变体重(
29、 西游记人物 p, double x ) x = x - 20;p.设置体重(x);第六十六页,共一百零五页。执行代码:西游记人物 八戒= new 西游记人物();八戒.设置体重(300.00);西游记人物 悟空 = new 西游记人物();八戒300.00体重0 xAB3悟空0.00体重0 xFF7第六十七页,共一百零五页。执行代码:塑身 帅 = new 塑身();帅.改变体重(悟空,八戒.体重); px改变体重0 xF110八戒300.00体重0 xAB3悟空0.00体重0 xFF7调用方法时,会创建方法栈来保存方法的变量。x = x - 20;p.设置体重(x);280.00300.00
30、0 xFF7280.00第六十八页,共一百零五页。2.4 Static关键字类变量与类方法:用static修饰的成员变量称为类变量 用static修饰的方法称为类方法 第六十九页,共一百零五页。1、实例变量和类变量的区别一个类通过new运算符可以创建多个对象,每个对象的实例变量将被分配不同的内存空间;而对于类变量,每个对象的类变量都共享同一内存空间,因此,改变其中一个对象的类变量的值,会影响其它对象的这个类变量。第七十页,共一百零五页。从内存分配上来说:实例变量的内存在创建对象时才会分配,不同的对象分配不同地址;类变量的内存在加载类时就创建好了,不管这个类是否创建了对象,类变量地址固定不变。第
31、七十一页,共一百零五页。例如:class 西游记人物 static String 发型; double 体重=70;西游记人物(String s,double x) 发型=s;体重= x;第七十二页,共一百零五页。执行代码:西游记人物 悟空 = new 西游记人物(毛寸,75 );西游记人物 沙僧= new 西游记人物(溜冰场, 90 );System.out.println(沙僧.发型);System.out.println(沙僧.体重);System.out.println(悟空.发型);System.out.println(悟空.体重);第七十三页,共一百零五页。2、实例方法和类方法的区
32、别实例方法也是在创建对象时才分配入口地址的,但是,后面所创建的对象共享第一个对象创建时生成的入口地址,也就是说,方法的入口地址被所有对象共享。当所有对象都不存在时,实例方法的入口地址才被回收。第七十四页,共一百零五页。而对于类方法,入口地址在加载类时就分配了,无论类是否创建了对象,该入口地址都可以直接使用(用类名直接调用)。当程序退出时,类方法的入口地址才被回收。第七十五页,共一百零五页。2.5 this 关键字this表示“当前对象”。 this可以出现在实例方法和构造方法中,但不可以出现在类方法中。 this关键字出现在类的构造方法中时,代表使用该构造方法所创建的对象。 this关键字出现
33、在类的实例方法中时,代表正在调用该方法的当前对象。 第七十六页,共一百零五页。例如:class A int x;void f()this.x = 100;执行代码:A a1 = new A();A a2 = new A();a1.f();a2.f();第七十七页,共一百零五页。2.6 包包是Java中有效的管理类的一个机制。 1、包语句通过关键字package声明包语句。package 语句作为Java源文件的第一条语句,指明该源文件定义的类所在的包。package语句的一般格式为:package 包名;第七十八页,共一百零五页。如果源程序中省略了package语句,那么:源文件中定义命名的类
34、被隐含地认为是“无名包”的一部分,即:源文件中定义命名的类在同一个包中,但该包没有名字包名可以是一个合法的标识符,也可以是若干个标识符加“.”分割而成 第七十九页,共一百零五页。2、import 语句使用import 语句可以引入包中的类。例如:引入一个包中的所有类:import java.awt.*;引入某个类:import java.util.Date;第八十页,共一百零五页。注意:Java会自动载入java.lang包中的所有类,因此不需要显式的importjava.lang包中包含了系统的核心类,是程序运行必不可少的。如果import引入了整个包中的类,那么会增加编译时间,但是不会影响
35、程序运行性能,因为Java是动态加载类的。第八十一页,共一百零五页。所谓访问权限是指对象是否可以通过“.”运算符操作自己的变量,或使用类中的方法。 访问限制修饰符有private、protected和public,或者可以无修饰符。2.7访问权限第八十二页,共一百零五页。问题:访问权限有什么用处?用来限制不同类的对象之间访问成员变量或者调用方法的权限注意:在编写类的时候,类中的实例方法总是可以访问该类的成员变量;类方法总是可以操作该类中的类变量,与访问限制符无关系。第八十三页,共一百零五页。举例:class 教师 public String 姓名; private double 身高;void
36、 set教师信息(String s,double d) 姓名=s;身高 = d;对于教师类的某个实例方法可以不受限制的访问成员变量,与修饰符无关第八十四页,共一百零五页。而对于不同的类,访问存在限制:class 教师 public String 姓名; private double 身高; void set教师信息(String s,double d) 姓名=s;身高 = d; class 学生 教师 小郭子=new 教师(); void set教师信息(String s,double d) 小郭子.姓名=s;小郭子.身高 = d; 若某学生对象想访问教师对象中的成员:第八十五页,共一百零五页
37、。执行以下代码:学生 小张 = new 学生();小张.set教师信息(马路杀手,170);出错!错误描述:public修饰的姓名可以修改; private修饰的身高不能访问!不同类的对象之间,访问成员变量或方法的权限是由修饰符限制的。第八十六页,共一百零五页。问题:为什么要设置访问权限?保护数据类封装了本身特有的成员和方法,其中有一部分是不希望被其他无关的对象访问的。尽量将数据“私有化”可以尽可能的保护这些数据,使类的职责“分工明确”。第八十七页,共一百零五页。class 教师 public String 姓名; private double 身高; void set教师信息(String
38、s,double d) 姓名=s;身高 = d; 允许其他类的对象访问只希望“教师”自己的方法来管理第八十八页,共一百零五页。1、私有变量和私有方法用private修饰本类中的实例方法可以访问本类的私有变量和方法只有在本类中创建该类的对象时,这个对象才能访问自己的私有变量和方法:在类A中创建了类A的对象a,a能访问自己的私有变量和方法在类B中创建了类A的对象a,则a不能访问自己的私有变量和方法 第八十九页,共一百零五页。class 教师 public String 姓名; private double 身高; void set教师信息(String s,double d) 姓名=s;身高 =
39、d; 第九十页,共一百零五页。class 教师 public String 姓名; private double 身高; void set教师信息(String s,double d) 教师 小郭 = new 教师();小郭.姓名=s;小郭.身高 = d; class 学生 void set教师信息(String s,double d) 教师 小郭 = new 教师();小郭.姓名=s;小郭.身高 = d; 合法非法第九十一页,共一百零五页。2、共有变量和共有方法用public修饰即使不是在本类中创建该类的对象,该对象也能访问自己的共有变量和共有方法在类B中创建了类A的对象a,则a能访问自己的
40、共有变量和方法 第九十二页,共一百零五页。class 教师 public String 姓名; public double 身高; void set教师信息(String s,double d) 教师 小郭 = new 教师();小郭.姓名=s;小郭.身高 = d; class 学生 void set教师信息(String s,double d) 教师 小郭 = new 教师();小郭.姓名=s;小郭.身高 = d; 合法合法第九十三页,共一百零五页。可以说,某个对象的public成员允许在任何类的对象中访问而不受限制同理,对于一个类的共有类变量,那么在另外一个类中,也能通过类名来操作这个共有类变量。第九十四页,共一百零五页。3、友好变量和友好方法无修饰符修饰的变量和方法称为友好变量和友好方法,或简称“友元” 即使不是在本类中创建该类的对象,如果这两个类在同一个包中,该对象也能访问自己的友好变量和友好方法在类B中创建了类A的对象a,若类A和类B在同一包中,则a能访问自己的友元第九十五页,共一百零五页。package guo;class 教师 String 姓名; double 身高; void set教师信息(String s,double d) 教师 小郭 = new 教师();小郭.姓名=s;小郭.身高 = d;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年压力校验器项目规划申请报告模板
- 2025年钻采仪器项目立项申请报告模板
- 2025年角钢塔项目提案报告
- 2025玉环县绕城公路城东至前塘洋段公路工程B合同段施工组织设计
- 2025用工合同样板
- 科技创新助力商业转型升级
- 自然灾害防范小学生的自救与互救能力
- 教育行业中的创新力量创客教育的推广与实践
- 小学生家庭教育与学校教育结合的自然探索实践案例分析
- 智慧医疗背景下如何科学管理家庭药箱
- 2024年青海省西宁市选调生考试(公共基础知识)综合能力题库汇编
- 2024年湖南高速铁路职业技术学院单招职业技能测试题库及答案解析
- 广州绿色金融发展现状及对策的研究
- 《近现代史》义和团运动
- 时间的重要性英文版
- 2024老旧小区停车设施改造案例
- 灰坝施工组织设计
- 韩国《寄生虫》电影鉴赏解读
- 三对三篮球赛记录表
- 矿山电工知识点讲解
- 物业公司服务质量检查流程
评论
0/150
提交评论