面向对象的编程划分黄淮学院计算机科学系王春华类的定义与使用(对应第3章3.2.13.2.23.33.5)黄淮学院计算机科学系王春华类的定义与使用1.面向对象程序技术基础•什么是面向对象程序设计?–简单的说,面向对象编程(ObjectOrientedProgramming,简称OOP)描述的是对象之间的相互作用。•面向过程与面向对象设计思想对照1.面向对象程序技术基础(2)•对象和对象的特征我们可以把现实世界的事物抽象成对象:–把现实世界对象的状态等属性保存在软件对象的变量中–现实世界对象的行为通过软件对象的方法来实现所以,对象一般都有两个特征:属性和行为。2.类和对象•类是抽象的,是可创建对象的模板,而对象即是类的实例。如:•rl对象拥有的degree属性和on方法是由类ReadingLamp而来的,所以,对象可携带的数据和可提供的服务都是由类所赋予的。•所以,类定义的要点是定义该类对象的属性和行为(即变量和方法)。2.类和对象(2)•类的定义–从程序设计的角度看,类是面向对象程序中最基本的程序单元。•例程阅读和分析2.类和对象(3)•类的定义格式[类修饰符]class类名[extends父类名]{变量定义方法定义}extends的含意:表示该类由父类继承而来。关于变量的说明:封装在类中的变量也称为域(field)或成员变量,可以是一般的数据类型,也可以是对象类型。但不可是本类的对象。2.类和对象(4)到目前为止,你学了JDK中的类?Scanner:简单文本扫描器Math:Math类包含用于执行基本数学运算的方法String:包含字符串操作的各种方法类的定义与使用3.对象的创建和对象引用•对象的创建–new类名([参数])–操作符new创建了一个指定类的对象,并为该对象开辟内存。参数传递给构造方法(后述)。–练习:用前面定义的Circle类,求半径3.5的圆周长和圆面积。3.对象的创建和对象引用(2)•对象引用–对象变量名即为对象引用,它是对象的一个指引,而不是对象本身。–如:Personps;//声明对象引用ps=newPerson();//创建对象,并将对象与对象引用联结–如果需要给对象提供数据,获取对象的服务,就必须声明对象引用,并将对象引用与对象相关联。3.对象的创建和对象引用(3)•通过对象引用给对象提供数据–对象名.成员变量名–如:ps.sex=0;ps.saraly=700;•通过对象引用访问(调用)对象的成员方法–对象名.方法名(参数)–注意:在调用时注意参数的匹配•对象引用可以重定向–例:分析程序的运行结果(备注中)类的定义与使用4.静态变量和静态方法•静态变量–类中的变量有两类:实例(成员)变量和静态(成员)变量。–静态变量是由static修饰的变量。•类的静态变量对于该类对象都是共同的;•类的静态变量不必须实例化后访问,它可由类名.静态变量名直接访问。•例:阅读程序分析结果。4.静态变量和静态方法(2)•静态变量结论:1.无论对象有无,静态变量均有确定的内存分配。2.对于不同的对象,都对应同一个内存区域,所以值相同,称为“类变量”。3.类变量描述的是类的整体性能,而不是单个对象的属性4.类变量可以在类体内的方法中变化,亦可以在类体外变化。5.Math.PI分析4.静态变量和静态方法(3)•静态方法–静态方法是由static修饰的方法。静态方法可由对象调用访问,也可直接由类名调用访问。–例:阅读程序分析结果。4.静态变量和静态方法(4)•静态方法总结:–从使用的角度,不需要实例化即可直接引用–从定义的角度,在方法体内不能处理非静态的成员变量。–main方法Math.pow()等各方法•例:设计静态方法print(charc,intm),用于输出一行m个字符c。在main方法中用print输出如下图案:4.静态变量和静态方法(5)4.静态变量和静态方法(6)•总结:–static修改的变量或方法都是属于类的,分别称为类数据和类方法,它们不属于任何一个类的具体对象。–即使没有创建对象,也能直接通过类名访问静态变量和静态方法。–静态方法中不能访问非静态的变量。类的定义与使用总结