《Java类与对象》PPT课件.ppt

上传人:牧羊曲112 文档编号:5577022 上传时间:2023-07-30 格式:PPT 页数:34 大小:665KB
返回 下载 相关 举报
《Java类与对象》PPT课件.ppt_第1页
第1页 / 共34页
《Java类与对象》PPT课件.ppt_第2页
第2页 / 共34页
《Java类与对象》PPT课件.ppt_第3页
第3页 / 共34页
《Java类与对象》PPT课件.ppt_第4页
第4页 / 共34页
《Java类与对象》PPT课件.ppt_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《《Java类与对象》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《Java类与对象》PPT课件.ppt(34页珍藏版)》请在三一办公上搜索。

1、Java类与对象,目 标,类与对象变量类变量与实例变量final变量常量方法类方法与实例方法方法的重载构造方法this关键字的使用包的使用,面向过程与面向对象,面向过程编程:从解决问题的每一个步骤入手,适合于解决比较小的简单问题。程序=算法+数据。面向对象编程:按照现实世界的特点来管理复杂的事物,把它们抽象为一个对象,具有自己的状态和行为,通过消息的反应来完成一定的任务。程序=对象+消息。,面向对象,面向对象三大特性:封装:将其信息属性和方法具体实现隐藏起来,只提供调用方法的接口,既封装。继承:将一个已有类中的属性和方法保留,可再加上自己特有的属性和方法形成一个新类,既继承。多态:指同名但有不

2、同的具体实现的多个方法同时存在一个程序中。有两种是方法:重载和覆盖。,类与对象,类(Class)是对一组具有相同属性、操作和关系的同类事物的描述,是抽象的、概念上的定义。对象(Object)是实际存在的该类事物的每个个体,因而也称实例(instance)。,类的定义,类主要定义类的属性(变量)、方法和关系。类由类声明和类体构成;格式:修饰符 class 类名 extends 父类名implements 接口名修饰符 类型 成员变量;修饰符 类型 方法(参数列表)类型 局部变量;方法体;,类的定义,class Person String name;/属性名字 int age;/属性年龄 publ

3、ic Person()public Person(String s,int a)name=s;age=a;public void shout(int i)System.out.println(“may age is:”+age);,对象的创建,A、对象的声明 类的名字 对象的名字Person p1;B、对象的实例化和初始化new关键字实例化已经声明的对象,并在堆中分配内存空间,Person p1=new Person(“Tom”,0);,对象的创建,当一个对象被创建时,会对其中各种类型的成员变量自动进行初始化赋值。除了基本数据类型之外的变量类型都是引用类型,如上面的Person及前面讲过的数组

4、。,对象的使用,对象的调用方法:对象名.变量名对象名.方法名class TestPerson public static void main(String args)Person p1=new Person();Person p2=new Person();p1.age=30;p1.shout();p2.shout();,对象的使用,内存分配情况,栈内存,.,.,.,.,.,p1,p2,堆内存,P1的成员变量,P2的成员变量,Shout()方法,0 x300,0 x302,30 age,0 age,对象的使用,程序片断分析 Person p1=new Person();Person p2=p1

5、;Person p3=new Person();boolean b1,b2,b3,b4;b1=(p1=p2);b2=(p1.equals(p2);b3=(p1=p3);b4=(p1.equals(p3);,对象的比较,对象的比较,equals和=的应用object1.equals(object2)比较两个引用数据类型句柄所指对象的内容是否一样是比较两个对象,而非两个基本数据类型的变量object1=object2比较两个引用数据类型句柄是否是指向同一对象,即这两个句柄所指向的内存地址是否一样。比较两个相同基本数据类型的值基本数据类型的直接用“=”来比较两个值是否相等。int a=3,b=3;b

6、oolean c=(a=b);c=true;,例子:CompareObject.java,对象的比较,基本数据类型的包装器类型,类变量与实例变量,类变量:是在类中以static为修饰符的成员变量实例变量:类中不以static为修饰符的成员变量Class Studentint a;/实例变量static int b;/类变量特点:类的对象之间共享类变量,实例变量是每个类私有的类变量可通过类名.类变量名或对象名.类变量名来方法;实例变量只能通过对象名.实例变量名来访问;,final变量(常量),在类中变量以final作为修饰符的变量称为常量final int MAX=99;特点:常量名的所有字母必

7、须大写常量声明时必须初始化常量只能被对象访问但不能改变它的值思考static final int MIN=1;变量MIN有什么特点?,Java中将类似C/C+中的“函数”称为“方法”,表示“做某些事情的方式”。方法的组成:名称、参数、返回值和方法体returnType methodName(/*Argument list*/)/*Method body*/return value;returnType:调用方法后返回的数据类型。Argument list:定义传给方法的信息的类型和名称方法名和参数列表共同唯一地标识出某个方法。Java中的方法只能作为类的一部分来创建,通过对象来调用。,类的方法

8、,试图调用某个对象上不存在的方法,将给出编译错误提示信息。通过对象调用方式:objectName.methodName(arg1,arg2,arg3,);形式参数:在方法被调用时用于接收外部传入的数据变量参数类型:形式参数的数据类型返回值:方法在执行完毕后返还给调用它的程序数据返回值类型:方法要返回的结果的数据类型实参:调用方法时实际传给方法形式参数的数据,类的方法,类方法与实例方法,方法声明中用static修饰的称为类方法,不用static修饰的称为实例方法。类方法与实例方法的区别:一个类中的方法可以相互调用,其中实例方法可以调用该类中的实例方法或类方法;但类方法只能调用该类中的类方法,而不

9、能调用实例方法;实例方法中可以调用所有的成员变量包括实例变量或类变量;但类方法只能操作类变量。实例方法必须通过对象调用,而类方法可以直接通过类名调用。,类方法与实例方法,方法的重载就是在同一个类中允许同时存在一个以上的同名方法,只要它们的参数个数或类型不同即可。每个重载的方法都必须有一个独一无二的参数类型列表。观察System.out.print()方法思考:如果两个方法的参数类型和顺序都一样,返回值类型不同,行不行?,方法重载,构造器(构造方法),构造器:专门用来创建对象时调用的方法特点:具有与类相同的名称;不含返回值;不能在方法中用return语句返回一个值。作用:为对象进行初始化(成员变

10、量);,构造方法的重载,构造器重载的两个要求:符合构造器的特点与类名相同且无返回值,也不能定义为void且不能用return返回值符合方法重载的特点参数个数不同或参数类型不同,构造器的细节问题,1、每个类都至少有一个构造器,如果程序中没有定义构造器,JVM会在编译时自动生成一个不带参数也无方法体的构造器。public Person()2、如果自己在类中定义了带参数的构造器,那么JVM就不在生成不带参数的空构造器了。我们在实例化的时候也只能通过自己定义的构造器形式来创建一个对象。Public p=new Public(“Tom”);,this引用,思考:在一个方法内部,我们可以调用别的对象,但我

11、们怎样调用自己所属的对象呢?,关键字 this 与对象关联它用于指示当前对象,this的作用1、区分类成员变量和方法的形参.2、this关键字通常用于return语句中返回当前对象的引用。3、在构造方法中调用其它构造方法,this引用,包的定义,包(package):一种将相关类及接口组织起来的集合体,既命名空间。目的:1)避免重名冲突。2)实现访问权限控制。声明方式:package name;package 为声明包的关键字。name 为指定的包名。name 可以分层次,不同的层次用点号“.”分隔。,包的命名技巧,1、package名称的第一部分是反顺序的类的创建者的域名。例如:;com.公

12、司名称.地区.包名称2、把package名称分解为你机器上的一个目录。例如::myClass.java,在一个类中引用另一个包中的类时,可用两种方式:.类长名(long name)即加上包名称的类名,如:com.tsinghua.myJava.MyClass myClass=new com.tsinghua.myJava.MyClass();2.类短名(short name):用import关键字在类程序最前面引入包,然后使用该类名,如:import com.tsinghua.myJava;MyClass myclass=new MyClass();,包的引入-1,包的引入-2,声明方式:import pkg1.pkg2.(classname|*);1.可用点号(.)来隔离多级包名。2.classname 表明直接引入该包中的具体类。3.*表明JAVA编译器引入整个包。,在import中使用*的警告:1、星号形式可能会增加编译时间,但对运行时间、性能和类的大小绝对没有影响。2、如果引入的两个包中有同名类,编译器将保持沉默,除非你试图运行其中一个。否则给出一个编译时的错误。,包的引入-3,总 结,类与对象变量类变量与实例变量fianl变量常量方法类方法与实例方法方法的重载构造方法this关键字的使用包的使用,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号