类与对象 .ppt

上传人(卖家):hwpkd79526 文档编号:6040627 上传时间:2023-05-23 格式:PPT 页数:31 大小:144KB
下载 相关 举报
类与对象 .ppt_第1页
第1页 / 共31页
类与对象 .ppt_第2页
第2页 / 共31页
类与对象 .ppt_第3页
第3页 / 共31页
类与对象 .ppt_第4页
第4页 / 共31页
类与对象 .ppt_第5页
第5页 / 共31页
点击查看更多>>
资源描述

1、 类与对象类与对象 对象由属性(数据)和方法(函数)组成;类是具有相同属性和方法的对象的集合;封装可以隐藏对象实现的细节部分;对象是引用数据类型,使用new运算符创建对象实例,使用成员运算符访问对象中的成员;访问修饰符用来控制访问权限,可以有效地保证数据安全;构造方法一般用来初始化对象中的数据成员。相相关关词汇词汇单 词说 明overloaded重载,超载overloaded method方法重载static静态的package包裹,包import引入,导入目目标标静态成员,static关键字打包,package关键字导入包,import关键字方法重载重载构造方法对象在内存中的存放形式静态成员

2、变量静态成员变量在成员变量前加static关键字,可以将其声明为静态成员变量;如果类中成员变量被定义为静态,那么不论有多少个对象,静态成员变量只有一份内存拷贝,即所有对象共享该成员变量;静态成员变量的作用域只在类内部,但其生命周期却贯穿整个程序。静态成员变量示例静态成员变量示例class Dog public static int count=0;/静态成员变量静态成员变量 public Dog()/构造方法构造方法 count+;public class Test public static void main(String args)System.out.println(当前狗的数量是:当

3、前狗的数量是:+Dog.count);Dog d1=new Dog();Dog d2=new Dog();System.out.println(当前狗的数量是:当前狗的数量是:+Dog.count);静态成员变量的注意事项静态成员变量的注意事项和程序同生命周期;在没有实例化对象时,可以通过类名访问静态成员变量;也可以通过对象访问静态成员变量,但不论使用的是哪个对象,访问到的都是同一个变量;静态成员变量在声明时最好初始化,如果不进行初始化,系统会默认初始化为0。静态成员方法静态成员方法在成员方法前加static关键字,可以将其声明为静态成员方法;静态成员方法只能对类的静态成员变量进行操作;静态成

4、员方法没有this引用;在没有实例化对象时,可以通过类名访问静态成员方法。静态成员方法示例静态成员方法示例class Dog private static int count=0;/静态成员变量静态成员变量 public Dog()count+;/显示数量的方法,静态成员方法显示数量的方法,静态成员方法 public static void displayCount()System.out.println(当前狗的数量是:当前狗的数量是:+count);public class Test public static void main(String args)/没有实例化对象之前,直接通过类名

5、调用静态成员方法没有实例化对象之前,直接通过类名调用静态成员方法 Dog.displayCount();Dog d1=new Dog();Dog d2=new Dog();Dog.displayCount();静态成员小结静态成员小结静态成员包括静态数据成员和静态成员方法;静态成员属于整个类而不是属于某个对象,它被该类的所有对象共享;访问静态成员时一般通过类名访问,也可以通过对象访问;静态成员也受访问权限的约束;静态数据成员在使用之前应尽量初始化;静态成员方法不能操作非静态成员;静态成员方法没有this引用。包包有时候,类和类的名称可能发生冲突;Java提供了把类名空间划分为更容易管理的块的机

6、制,这就是包;包允许将类组合成较小的单元,类似于文件夹;有助于避免命名冲突,分属不同包的类即便名称相同也不会引起误会;能在包与包之间对于类的访问权限提供更有力的约束。使用使用packagepackage关键字打关键字打包包可以使用package关键字将源文件中的类打入某个包中,语法是:package 包名;该语句必须是整个源文件的第一条语句;包中还可以包含下一级子包,这与文件目录体系非常相似。/将本源文件中的所有类打到将本源文件中的所有类打到mypkg包中包中package mypkg;class Student /定义学生类定义学生类 缺省包缺省包如果省略了package语句,类将保存在一个

7、缺省的没有名称的包中;尽管缺省包很方便,但对于大型的程序,它是不恰当的;请尽量为自己编写的类定义具体的包。使用使用importimport关键字导入包关键字导入包如要使用到某个包中的类,就需要使用import关键字将包或类显式地包括到程序中,有如下两种情况:一个程序中允许有多条import语句,导入多个包或多个类。/*导入导入java包下的包下的io子包中的所有类子包中的所有类*/import java.io.*;/*导入导入mypkg包下的包下的Student类,但并不导入该包类,但并不导入该包中的其它类中的其它类*/import mypkg.Student;在在JavaJava中定义方法中

8、定义方法/*Java中的方法示例中的方法示例代码片段代码片段*/*定义求平方值的方法定义求平方值的方法*/public int square(int x)return(x*x);返回值类型返回值类型方法名称方法名称形式参数形式参数案例案例/*编写求绝对值的方法来求整数的绝对值编写求绝对值的方法来求整数的绝对值*/*AbsoluteValue类,其中包含求绝对值的方法类,其中包含求绝对值的方法Java中的任何方法都必须在类中定义中的任何方法都必须在类中定义*/public class AbsoluteValue /*求绝对值的方法求绝对值的方法*/public int abs(int x)ret

9、urn(x=0)?x:-x);/*main方法,程序入口方法,程序入口*/public static void main(String args)/必须先实例化类的对象,才可以调用到其中的成员方法必须先实例化类的对象,才可以调用到其中的成员方法 AbsoluteValue obj=new AbsoluteValue();int a=-8,b;b=obj.abs(a);/调用调用abs方法求方法求a的绝对值的绝对值 System.out.println(a+的绝对值是的绝对值是+b);方法的定义方法的定义方法的调用方法的调用案例分析案例分析在上面的案例中,我们已经定义了求整数绝对值的方法;但有时

10、候,我们可能还需要求浮点数的绝对值,请问:可以继续使用这个方法吗?事实上是行不通的,这个方法只能求出整数的绝对值,对于浮点数,还需另外再定义求浮点数绝对值的方法。修改案例修改案例public class AbsoluteValue /*求整数绝对值的方法求整数绝对值的方法*/public int absOfInt(int x)return(x=0)?x:-x);/*求浮点数绝对值的方法求浮点数绝对值的方法*/public float absOfFloat(float x)return(x=0)?x:-x);public static void main(String args)Absolute

11、Value obj=new AbsoluteValue();int a=-8,b;b=obj.absOfInt(a);System.out.println(a+的绝对值是的绝对值是+b);float c=-3.14f,d;d=obj.absOfFloat(c);System.out.println(c+的绝对值是的绝对值是+d);如果还要求其它类型的如果还要求其它类型的绝对值,就需要定义更绝对值,就需要定义更多的方法,这对于调用多的方法,这对于调用者来说,将会是非常麻者来说,将会是非常麻烦的事情。烦的事情。方法重载方法重载用于定义一组方法,这些方法具有相同的名称,并执行类似的操作,但是却使用不

12、同的参数列表;编译器会根据调用时传递的实际参数自动判断具体调用的是哪个重载方法,如:/*abs方法的重载方法的重载*/int abs(int x)float abs(float x)double abs(double x)long abs(long x)方法重载的三大原则方法重载的三大原则方法名相同参数不同(可以有三方面的不同)数量不同 类型不同 顺序不同同一作用域温馨提示:方法重载跟方法的返回值类型没有任何关系。也就是说,只有返回值不同的方法不能构成重载。/*错误的方法重载错误的方法重载*/void fun(int x);int fun(int x);方法重载示例方法重载示例public c

13、lass AbsoluteValue public int abs(int x)/重载方式重载方式1,求整数的绝对值,求整数的绝对值 return(x=0)?x:-x);public float abs(float x)/重载方式重载方式2,求浮点数的绝对值,求浮点数的绝对值 return(x=0)?x:-x);public double abs(double x)/重载方式重载方式3,求双精度数的绝对值,求双精度数的绝对值 return(x=0)?x:-x);public long abs(long x)/重载方式重载方式4,求长整型数的绝对值,求长整型数的绝对值 return(x=0)?x

14、:-x);public static void main(String args)AbsoluteValue obj=new AbsoluteValue();int a=-8,b;b=obj.abs(a);System.out.println(a+的绝对值是的绝对值是+b);float c=-3.14f,d;d=obj.abs(c);System.out.println(c+的绝对值是的绝对值是+d);方法重载的两种方式之一方法重载的两种方式之一利用不同数据类型的参数重载;对于带有相同数量参数但参数类型不同的重载方法,编译器可以区分它们,如:只要所有参数式样都是唯一的,就可以使用多个重载;很多

15、编程语言已经重载了输出方法,以便您可以用相同的函数名称输出任何类型的数据。int square(int x)float square(float x)double square(double x)方法重载的两种方式之二方法重载的两种方式之二利用不同数量的参数重载,如:将调用与参数最匹配的方法,如果没有方法得出最佳匹配,那么编译器将报错;编译器解决重载的方式与方法定义的顺序无关;重载不考虑方法的返回值类型。/*函数定义函数定义*/int fun(int n1)int fun(int n1,int n2,int n3)/*函数调用函数调用*/fun(a);fun(x,y,z);方法重载的作用域规则

16、方法重载的作用域规则只有属于同一作用域范围内的方法才能构成重载。class First public void show()class Second public void show(int x)不构成重载不构成重载练习练习1 1在Java中,对于成员方法float add(float f1,float f2)下面选项()是对该成员方法的重载。a)int add(int n1,int n2)b)float add(float f)c)float add(float f2,float f1)d)void add(float f1,float f2)e)void add(float f1,floa

17、t f2,float x)练习练习2 2在Java中,下列方法()不能与int fun(int x)构成方法重载。a)int fun(int x,int y)b)float fun(int x)c)int fun(float x)d)int fun(int x,int y,int z)重载构造方法重载构造方法 方法重载的一个重要应用就是重载构造方法;可以定义一组构造方法,使其构成重载关系,从而方便使用者能够灵活机动地以各种不同的方式来实例化对象。重载构造方法示例重载构造方法示例class MyTime /定义时间类定义时间类 private int mHour,mMinute,mSecond;

18、/三个成员变量,时、分、秒三个成员变量,时、分、秒 public MyTime()/构造方法重载构造方法重载1 mHour=0;mMinute=0;mSecond=0;public MyTime(int hour)/构造方法重载构造方法重载2 mHour=hour;mMinute=0;mSecond=0;public MyTime(int hour,int minute)/构造方法重载构造方法重载3 mHour=hour;mMinute=minute;mSecond=0;public MyTime(int hour,int minute,int second)/构造方法重载构造方法重载4 mH

19、our=hour;mMinute=minute;mSecond=second;public void display()/显示时间信息的方法显示时间信息的方法 System.out.println(mHour+:+mMinute+:+mSecond);重载构造方法示例(续)重载构造方法示例(续)/*测试时间类测试时间类*/public class Test /*main方法,程序入口方法,程序入口*/public static void main(String args)/分别调用不同的构造方法来初始化时间对象分别调用不同的构造方法来初始化时间对象 MyTime t1=new MyTime()

20、;/调用重载方式调用重载方式1 t1.display();MyTime t2=new MyTime(8);/调用重载方式调用重载方式2 t2.display();MyTime t3=new MyTime(8,30);/调用重载方式调用重载方式3 t3.display();MyTime t4=new MyTime(8,30,30);/调用重载方式调用重载方式4 t4.display();/*使用重载构造方法可以使初始化对象的方式灵活机动,大使用重载构造方法可以使初始化对象的方式灵活机动,大大方便类的使用者。大方便类的使用者。*/对象在内存中的存放形式对象在内存中的存放形式成员方法成员方法1成员方法成员方法2成员方法成员方法n成员变量成员变量1成员变量成员变量2成员变量成员变量n成员变量成员变量1成员变量成员变量2成员变量成员变量n成员变量成员变量1成员变量成员变量2成员变量成员变量n对象对象1对象对象3对象对象2每个对象都有自己独立每个对象都有自己独立的数据成员,但是所有的数据成员,但是所有的对象共享成员方法。的对象共享成员方法。总结总结 方法重载可以方便方法的调用者,但方法重载应遵循三大原则:方法名相同 参数列表不同 属于同一作用域 可以适当地重载构造方法,使初始化对象的方式更加灵活;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(类与对象 .ppt)为本站会员(hwpkd79526)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|