1、面向对象编程基础(1)Java类与对象2022-8-8主要内容主要内容n面向对象技术的基本思想和方法n什么是类?什么是对象?他们之间的关系n类、对象的Java实现2022-8-8能力要求n理解面向对象编程的基本思想n掌握类、对象的基本概念,类与对象之间的关系n能用Java语言编写一个类n能实现对象的生成及对对象的成员方法和成员变量的调用2022-8-8现实生活中的实例n汽车的制造过程1、发动机的图纸发动机2、轮胎的图纸轮胎.n、汽车整体的图纸汽车通过构造不同的汽车图纸,可以制造出不同配置的汽车抽象具体类对象请大家列举出几种类和对象之间的关系2022-8-8面向对象技术的基本概念和特征n对象、类
2、和实体对象类实例化抽象计算机世界实体抽象数据类型现实世界抽象映射计算机逻辑的实现2022-8-8类与对象的概念n对象与类q对象:现实世界中某个具体的物理实体在计算机逻辑中的映射和体现,其基本组成:n对象标识n状态(对象的静态属性)n行为(对象的操作)(张三,男,吃饭)q类:一种抽象的数据类型,是同种对象的集合与抽象。是Java程序的基本组成要素,描述了一类对象的状态和行为,其基本成分包括:n成员变量n成员方法n(人,性别,吃饭的过程)q请大家分析“学生”“孙旭川”2022-8-8类与对象的Java实现现实世界中的实体:学生抽象数据描述:数据描述:学号、姓名、性别、年龄;行为描述:入学注册、选课
3、。Java中的类 Java中的对象nClass Student int stuNum;Student stu1=new Student()String stuName;Student stu2=new Student();char stuSex;int stuAge;void enrol()System.out.println(“学生”+stuName+”已注册入学”);void selectCourse()System.out.println(“学生”+stuName+”已选课”);String getStuInfo()return“”学号:”+stuNum+”t 姓名:”+stuName+
4、”t 性别:”+stuSex+”t 年龄:”+stuAge;2022-8-8类与对象的Java实现n请大家调试例3-1所示的学生类。n运行它,出现什么结果?n问题:当我要知道孙旭川的情况时,是直接看学生的情况,还是看孙旭川的情况?类对象Students1Student s1=new Student();n请大家调试例3-2,分析例3-2与例3-1之间的关系2022-8-8类与对象的另一实例n对象是类的实例2022-8-8Java中定义类的通用格式:class Student int stuNum;String stuName;char stuSex;int stuAge;void enrol(
5、)System.out.println(“学生”+stuName+”已注册入学”);void selectCourse()System.out.println(“学生”+stuName+”已选课”);String getStuInfo()return“”学号:”+stuNum+”t 姓名:”+stuName+”t 性别:”+stuSex+”t 年龄:”+stuAge;成员变量(对象属性)成员方法(对象的行为或操作)2022-8-8类的成员变量与成员方法n成员变量q1.命名约定n遵循Java标识符的基本规则n遵循命名惯例q2.默认值n未赋值的成员变量将被系统赋予默认值n成员方法基本结构type
6、methodName(parameter-list)/方法体 方法返回类型参数列表,可选方法名2022-8-8对象及对象的使用n对象q对象是一个动态概念,具有产生、使用和消亡的生命周期q通过new操作符创建对象q对象属性的使用:n对象名.属性;q对象方法的使用:n对象名.方法名();q当对象不再使用时,将由系统的垃圾回收机制进行回收。2022-8-8类的创建与对象使用实例实战演习:习题1、习题22022-8-8面向过程编程与面向对象编程比较n实例:编写求解矩形面积和周长的程序q1.面向过程的编程方法n将任务分解为求解矩形面积和周长的方法n编写计算矩形面积和矩形周长的函数n在主程序中,调用求解计
7、算矩形面向和周长的函数,完成程序功能q2.面向对象的编程方法n编写描述矩形对象的类,类中包含矩形的长、宽等属性、求解矩形面积和周长的方法n在主程序中,创建一个指定长、宽的矩形对象,发送求解面积和周长的消息给矩形对象,对象作出反应,计算并返回面积和周长值,完成程序功能2022-8-8面向过程方法与面向对象方法比较n面向过程方法:q采用功能划分的方法求解问题q方法强调过程的抽象和模块化q函数是组成程序的基本单元 当你看到这个面积函数的时候,你知道这是求矩形的面积的函数吗?n面向对象方法:q侧重于采用系统结构的划分方法来求解问题q方法强调对现实世界的实体和概念的抽象q类是组成程序的基本单元2022-
8、8-8面向过程编程与面向对象编程比较n结构化程序设计方法与面向对象程序设计方法地比较:q结构化程序设计侧重于功能抽象,强调确定和分解系统的功能。其缺点:n功能分解的随意性大n系统功能最不稳定,易变化q面向对象程序设计侧重于描述系统结构,功能抽象数据抽象,其优点:n系统结构相对稳定n灵活的机制,如继承、多态和动态绑定有利于修改和扩充系统功能2022-8-8面向对象编程小结(1)n类是Java程序的基本组成单元,Java程序由一个或多个类组成;n类是一种特殊的数据类型,由成员变量与成员方法构成;n对象是类的一个具体实例,每个对象的成员变量值是具体的,即对象都具有特定的状态;n必须通过类的实例对象使用类,而不能直接使用类;n通过“.”操作符来访问对象的成员变量与成员方法。如“对象.成员变量”或“对象.成员方法”。