书签 分享 收藏 举报 版权申诉 / 38

类型Java程序设计基础课件1第4章类与对象.pptx

  • 文档编号:1100887
  • 上传时间:2023-11-18
  • 格式:PPTX
  • 页数:38
  • 大小:250.82KB
  • 配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    Java 程序设计 基础 课件 对象
    资源描述:

    1、4.1 面向对象程序设计概述 面向对象程序设计(Object Oriented Programming,OOP)是一种计算机编程架构。从二十世纪九十年代开始逐渐成为主流的编程思想,相对于面向过程语言(以C语言为代表),它的抽象程度更高,更接近人类的思维方式。面向对象程序设计以对象为核心。认为程序由一系列对象组成,万事万物皆对象(Everything is Object)。类是对现实世界的抽象。面向对象程序设计是一种较为先进的程序设计思想。两个重要概念:类与对象。三大特征:封装性、继承性和多态性。1封装性 封装性有两种表现形式:一种是类本身,类中封装了同一类事物所具有的特征(属性)和行为(方法)

    2、,另一种是通过访问权限修饰符来控制类中哪些成员是否可以被访问(可见性)。2继承性 继承讲的是一种程序块之间的代码重用性关系。Java语言中的继承满足单继承关系。3多态性 多态性是指相同的行为(方法),在不同情况下会产生不同形态的结果。静态多态和方法重载有关,在程序编译阶段完成的多态。动态多态和方法重写有关,在运行阶段完成的多态。4.2 类 类是组成Java程序的基本要素,一类事物和另外一类事物之间总有本质的区别。类就是用来描述一类事物共同拥有的基本特征(属性)和行为特征(方法)的复合体。类也是用来产生具体该类事物(又称实例或对象)的模板。类的定义包括两部分:类的声明和类体。基本格式如下:修饰符

    3、 class 类名类体 访问权限修饰符有两种public和默认,用来控制类如何访问。类体中定义了该类的成员,包括属性和方法两部分内容,也可以只有一部分或者类体为空。4.2.1属性概述 属性(又称为成员变量),是用来描述同一类事物的基本特征,它的定义如下:修饰符 数据类型 属性名;例如:private int age;修饰符,可以是访问权限修饰符(有四种public、protected、默认和private),或者类修饰符static,或者最终修饰符final等。static修饰的属性被称为类属性,非static修饰的属性被称为实例属性。1.方法的声明 方法是用来描述同一类事物的行为特性,方法的

    4、定义由两部分组成:方法声明和方法体。修饰符 返回数据类型 方法名(参数列表)方法体return语句例如方法1:public int add(int a,int b)return a+b;或者方法2:public void add(int a,int b)System.out.println(a+b);修饰符,可以是访问权限修饰符,或者类修饰符static,或者最终修饰符final等。返回数据类型。如果方法体中有return语句时,return返回的数据类型即是返回数据类型。如果方法体中没有return语句时,该返回数据类型用void来替代。方法名,要求符合标识符的定义,最好满足“驼峰式”编码规

    5、则,即首字符小写,遇到新单词时,单词首字符大写,如:getName(),setAge()等。参数列表,为可选项。如果括号中为空,该方法称为无参方法;如果有参数列表时,该方法称为有参方法,需要满足的格式为:(参数类型1 参数名1,参数类型2 参数名2.参数类型n 参数名n),参数列表中的参数也叫做形参。参数类型和参数名称之间需要有空格,参数和参数之间用逗号分隔。2.方法的调用 方法需要先声明,后调用。方法是通过方法名和参数列表来调用的。例如方法1中:int i=add(2,3);按照参数的位置,把2赋值给参数a,把3赋值给参数b。因为方法1有返回结果,可以用变量接收方法返回的结果。参数调用时传递

    6、给形参的参数叫做实参。例如方法2中:add(2,3);同样按照参数的位置传递参数。因为方法2没有返回结果,这个时候如果非要用变量来接收的话,就会出现编译错误。4.2.3创建类【例4-1】创建人类。01 public class Person 02 String name;03 int age;04 double height;05 06 public void say()07 System.out.println(Hello+name);08 09 10 public void walk()11 System.out.println(walk);12 13 4.3 对象 类是一个抽象的概念,对

    7、象却是具体的,也称为类的实例。4.3.1对象的创建 必须先创建类,才可以把类作为模板创建对象。常用创建对象的语法如下:类名 对象名=new 构造方法(参数列表);4.3.2对象的使用 创建好对象后,就可以使用该对象来调用属性和方法了,语法如下:对象名.属性 或者 对象名.方法()在使用类创建对象以及使用对象时,代码可以有两种不同编写方式:1.在本类中的方法中创建对象并使用,如:Person类的main方法中。【例4-2】在Person类的方法中创建对象。见教材。2.在其他类的方法中创建对象并使用,通常使用一个测试类Test来验证另外一个类是否定义正确。【例4-3】在Test类的main方法中调

    8、用Person类创建对象。见教材。特殊用法 匿名对象是没有对象名的对象,只能在创建时使用一次的对象,使用后立刻消亡。new 构造方法(参数列表).方法名();或者 new 构造方法(参数列表).属性;4.3.3 构造方法 每个类中都必须有构造方法。构造方法的作用有两个,分别是用来创建对象并对属性进行初始化。属性初始化时,依然由属性的类型决定,如age,int类型,默认的初始化值为0。构造方法有以下几个基本特征:构成方法的访问权限默认和类的访问权限一致,如类是public公有的,默认构造方法也是public,当然编程人员也可以自行指定;构成方法在定义上没有返回类型,也不要写void;构成方法名必

    9、须和类名完全一致;构成方法不能直接调用,只能由内存分配符(new)来调用。构造方法常见的几种错误写法,以Person类为例:public void Person()程序不会报错,但它不是构造方法,而是一个普通的方法。public person()程序会出现编译错误,因为它既不是构造方法,也不是普通方法。如果编译器发现某个类中有构造方法,这时编译器就不会自动地给这个类增加一个空构造方法了。【例4-4】Person类中有自定义的构造方法。见教材。在一个类中定义了多个构造方法,只要是参数列表不同(参数类型或参数个数或参数位置不同),被称为构造方法的重载。构造方法的形式决定如何创建对象。有几种构造方法

    10、,就可以通过几种方式创建对象。【例4-5】多个构造方法的Person类和改进的Test类。见教材。4.3.4 对象的内存分配 栈内存中用来保存对象名,即该对象在堆内存中的首地址。堆内存中用来保存对象的属性,即存储一个对象的内存分配大小主要是由实例属性决定。以【例4-5】为例,讲解Person对象创建的过程中,内存空间的分配过程。4.4 变量的种类 变量按照其作用范围(生存周期的长短),可以分三种:局部变量,实例变量(也称属性)和类变量。实例变量和类变量因为都是在类中,方法外声明,也被称为类中的成员变量。4.4.1局部变量 在方法内定义的变量被称为局部变量,包括方法的参数。局部变量只可以作用在定

    11、义的方法或者方法内的代码块中使用,作用范围在三种变量中最小。局部变量在使用时必须由编程人员初始化【例4-6】局部变量的使用01 public class Demo4_6 02 public static void main(String args)03 int a;04 System.out.println(a);05 for(int i=0;i类方法实例变量实例方法 综上所述,实例方法可以直接访问类变量、类方法和实例变量,但是类方法可以直接访问类变量,不可以直接访问实例变量和实例方法,但是却可以通过创建对象后间接访问实例变量和实例方法。类方法的访问方式与类变量类似,也有三种:在本类中可以直接

    12、通过类方法名访问;可以通过类名访问:类名.类方法名();可以通过对象名访问:对象名.类方法名();【例4-12】类方法在本类中的使用。见教材。说明:类方法中不可以直接访问实例变量,也不能出现this(当前对象)或者super(父类对象)。【例4-13】类方法在其他类中的使用。见教材。4.5.3传递参数 在Java语言中,方法传递参数主要有两种形式:基本数据类型的参数传值和引用数据类型的参数传地址。1.传值 方法内对参数的修改,通常不会带到方法外。除非满足两个条件才可以把结果带到方法外:该方法有返回类型方法外有变量接收该方法的返回结果。【例4-14】基本类型参数的传值01 public clas

    13、s Test 02 public static void modify(int a)03 a+;04 System.out.println(modify()中的a:+a);05 06 public static void main(String args)07 int a=10;08 modify(a);09 System.out.println(main()中的a:+a);10 11 【例4-15】基本类型参数的传值并返回结果01 public class Test 02 public static int modify(int a)03 a+;04 System.out.println(m

    14、odify()中的a:+a);05 return a;06 07 public static void main(String args)08 int a=10;09 a=modify(a);10 System.out.println(main()中的a:+a);11 12 2.转地址 除了8种基本数据类型以外,其他的都是引用数据类型。引用数据类型包括类、对象、数组等。方法的参数如果是引用数据类型,在方法调用时,实参会把引用(内存地址)传递给形参。这时,实参与形参指向同一块内存。即使该方法没有返回类型,也可以把方法内的修改传递到该方法外。分别以数组和Person对象为例,讲解引用类型参数传递地

    15、址的过程。【例4-16】引用类型数组为参数的传地址01 public class Test 02 public static void modify(int a)03 a0+;04 System.out.println(modify()中的a0:+a0);05 06 public static void main(String args)07 int a=1,2,3;08 modify(a);09 System.out.println(main()中的a0:+a0);10 11 【例4-17】引用类型Person对象为参数的传地址Person类略Test类01 public class Tes

    16、t 02 public static void modify(Person p)03 p.name=wangwu;04 05 public static void main(String args)06 Person p=new Person(zhangsan,18,1.73);07 modify(p);08 System.out.println(p.name);09 10 4.5.4方法重载 方法重载的定义规则如下:在一个类中(或者具有继承关系的父子类中)多个方法名相同;方法的参数列表不同。参数列表主要看参数的类型是否完全一致,还包括参数个数和位置等信息,和参数名无关;方法重载和方法的返回类型以及访问权限修饰符无关。方法重载调用的规则如下:优先调用方法名和参数列表完全一致的方法执行;如果没有完全一致的方法,可以调用参数类型向上兼容的方法。如:方法add()在定义时指定的是double类型的参数,在调用时比double类型小的兼容类型都可以作为参数传递。【例4-18】方法重载的使用。见教材。方法重载只和参数类型有关,而和参数名、返回类型、访问权限修饰符无关。错误的方法重载例子如下:pu

    展开阅读全文
    提示  兔兜文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:Java程序设计基础课件1第4章类与对象.pptx
    链接地址:https://www.tudouwenku.com/doc/1100887.html

    若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理!

    copyright@2008-2023 兔兜文库 版权所有

    鲁公网安备37072502000182号  ICP备案号:鲁ICP备2021021588号-1  百度保障

    兔兜文库
    收起
    展开