java语言程序设计第2章

上传人:tian****1990 文档编号:72815755 上传时间:2019-01-24 格式:PPT 页数:123 大小:359.50KB
返回 下载 相关 举报
java语言程序设计第2章_第1页
第1页 / 共123页
java语言程序设计第2章_第2页
第2页 / 共123页
java语言程序设计第2章_第3页
第3页 / 共123页
java语言程序设计第2章_第4页
第4页 / 共123页
java语言程序设计第2章_第5页
第5页 / 共123页
点击查看更多>>
资源描述

《java语言程序设计第2章》由会员分享,可在线阅读,更多相关《java语言程序设计第2章(123页珍藏版)》请在金锄头文库上搜索。

1、1,第二章 类与对象的基本概念,JAVA语言程序设计,2,目录,2.1 面向对象的程序设计方法概述 2.2 类与对象 2.3 对象初始化和回收 2.4 应用举例 2.5 UML简介 2.6 本章小节,3,2.1 面向对象的程序设计方法概述,面向对象的程序设计 四大重要特征 抽象 封装 继承 多态,4,对象 万物皆对象。 两大构成要素:属性(数据)、行为(方法) 类 将属性及行为相同或相似的对象抽象为类 对象是类的实例,面向对象程序设计方法概述,2.1 面向对象的程序设计方法概述(续),5,例: 钟表 数据(属性) int Hour; int Minute; int Second; 方法(行为)

2、 SetTime(); ShowTime();,面向对象程序设计方法概述,6,例: 人 数据(属性) char *name; char *gender; int age; int id; 方法(行为) 生物行为 Eat(), Step(), 社会行为 Work(), Study(),面向对象程序设计方法概述,7,2.2.1 类的声明,声明形式 public abstract | final class 类名称 extends 父类名称 implements 接口名称列表 成员变量(属性); 成员方法(行为); ,类与对象,8,关键字 Class 表明其后声明的是一个类。 extends 如果所

3、声明的类是从某一父类派生而来,那么,父类的名字应写在extends之后 implements 如果所声明的类要实现某些接口,那么,接口的名字应写在implements之后,2.2.1 类的声明(续),类与对象,9,修饰符 可以有多个,用来限定类的使用方式 public 表明此类为公有类 abstract 指明此类为抽象类 final 指明此类为终结类 类声明体 变量成员声明及初始化 可以有多个 方法声明及方法体 可以有多个,2.2.1 类的声明(续),类与对象,10,钟表类 public class Clock / 成员变量(属性) int hour ; int minute ; int se

4、cond ; / 成员方法(行为) public void setTime(int newH, int newM, int newS) hour=newH ; minute=newM ; second=news ; public void showTime() System.out.println(hour+“:“+minute+“:“+second); ,2.2.1 类的声明(续) 例2_1,类与对象,11,变量和对象 变量除了存储基本数据类型的数据,还能存储对象的引用,用来存储对象引用的变量称为引用变量 类的对象也称为类的实例,2.2.2 对象的声明与引用,类与对象,12,对象的声明 格式

5、 类名 变量名: Clock aclock; 声明一对象时并没有开辟内存空间,2.2.2 对象的声明与引用(续),类与对象,13,对象的创建 生成实例的格式: new () 例如: aclock=new Clock() 其作用是: 在内存中为此对象分配内存空间 对象可以被赋以空值 例如:aclock=null;,2.2.2 对象的声明与引用(续),类与对象,14,2.2.3 数据成员(成员变量),成员变量 分为实例变量和类变量,类与对象,15,声明格式 public | protected | private static finaltransient volatile 变量数据类型 变量名1

6、=变量初值, 变量名2=变量初值, ; 格式说明 public、protected、private 为访问控制符 static指明这是一个静态成员变量 final指明变量的值不能被修改 transient指明变量是临时状态 volatile指明变量是一个共享变量,2.2.3 数据成员(续),类 与 对 象,16,实例变量 没有static修饰的变量称为实例变量 用来存储对象需要的属性信息,不同对象属性值可能会不同 可通过下面的表达式访问对象属性的值 .,2.2.3 数据成员(续) 实例变量,类与对象,17,声明一个表示圆的类,保存在文件Circle.java 中。然后编写测试类,保存在文件Sh

7、apeTester.java中,并与Circle.java放在相同的目录下 public class Circle int radius; public class ShapeTester public static void main(String args) Circle x; x = new Circle(); System.out.println(x); System.out.println(“radius = “ + x.radius); ,2.2.3 数据成员(续) 例2_2,类与对象,18,编译后运行结果如下: Circle26b249 radius =0 解释 之后的数值为x所

8、指的对象的存储地址 x的值及对象的状态如图,2.2.3 数据成员(续) 例2_2运行结果,类与对象,19,将两个文件合并为ShapeTester .java。 注意:一个文件中只能有一个public 类,该类中可以 包含main函数,且文件名与该类名相同。 class Circle int radius; public class ShapeTester public static void main(String args) Circle x; x = new Circle(); System.out.println(x); System.out.println(“radius = “ +

9、x.radius); ,20,声明一个表示矩形的类,保存在Rectangle.java中;编写测试类,保存在ShapeTester.java中,二文件保存在相同的目录下 public class Rectangle double width = 10.128; double height = 5.734; public class ShapeTester public static void main(String args) Circle x; Rectangle y; x = new Circle(); y = new Rectangle(); System.out.println(x +

10、 “ “ + y); ,2.2.3 数据成员(续) 例2_3,类与对象,21,编译后运行结果如下: Circle82f0db Rectangle92d342 解释 Circle及Rectangle类对象的状态如图,2.2.3 数据成员(续) 例2_3运行结果,类与对象,22,对ShapeTester类进行修改,使两个实例具有不同的实例变量值 public class ShapeTester public static void main(String args) Circle x; Rectangle y, z; x = new Circle(); y = new Rectangle(); z

11、 = new Rectangle(); x.radius = 50; z.width = 68.94; z.height = 47.54; System.out.println(x.radius + “ “ + y.width + “ “ + z.width); ,2.2.3 数据成员(续) 例2_3修改,类与对象,23,编译后运行结果如下: 50 10.128 68.94 解释 Circle及Rectangle类对象的状态如图,2.2.3 数据成员(续) 修改后运行结果,类与对象,24,地址簿程序 一个人的地址通常包括以下信息: 姓名,省份,城市,街道,门牌号,邮政编码 采用过程化的程序设计

12、方法,使用简单变量存储,则存储两个人地址的代码如下,2.2.3 数据成员(续) 例2_4,类与对象,25,public static void main(String args) String name1,name2; int gateNumber1, gateNumber2; String streetName1,streetName2; String city1,city2; String province1,province2; String postalCode1,postalCode2; name1 = “ Zhang Li“; gateNumber1 = 15; streetNam

13、e1 = “ Tsinghua East Road“; city1 = “ Beijing“; province1 = “Beijing“; postalCode1 = “ 100084“; name2 = “ Li Hong“; gateNumber2 = 2; streetName2 = “ BeiNong“; city2 = “ Beijing“; province2 = “ Beijing“; postalCode2 = “ 102206“; /.do something interesting ,2.2.3 数据成员(续) 例2_4,类与对象,26,采用面向对象的程序设计方法,则需要

14、首先声明Address类如下 public class Address String name; int gateNumber; String streetName; String city; String province; String postalCode; /方法成员略 ,2.2.3 数据成员(续) 例2_4,类与对象,27,主方法改写如下 public static void main(String args) Address address1 = new Address(), address2 = new Address(); address1.name = “Zhang Li“;

15、 address1.streetNumber = 15; address1.streetName = “Tsinghua East Road“; address1.city = “Beijing“; address1.province = “Beijing“; address1.postalCode = “100084“; address2.name = “Li Hong“; address2.streetNumber = 2; address2.streetName = “BeiNong“; address2.city = “Beijing“; address2.province = “Be

16、ijing“; address2.postalCode = “102206“; /.do something interesting ,2.2.3 数据成员(续) 例2_4,类与对象,28,类变量 也称为静态变量,声明时需加static修饰符 不管类的对象有多少,类变量只存在一份。被所有对象共享。 引用格式 .,2.2.3 数据成员(续) 类变量,类与对象,29,对于一个圆类的所有对象,计算圆的面积时,都需用到的值,可在Circle类的声明中增加一个类属性PI public class Circle static double PI = 3.14159265; int radius; 当我们生成Circle类的对象时,在每

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号