当前位置:文档之家› 5 -类与对象

5 -类与对象


14
5.2.3
基本类型变量和对象类型变量
基本类型的变量存储的是一个数据
对象类型变量存储的是一个地址 下面两条语句:
Circle c1=new Circle(5); Circle c2=new Circle(10); 假设new Circle(5)创建的对象的地址是0x7812, new Circle(10)创建的对象的地址是0x2810,则, 变量c1和变量c2的内存模型
19

5.2.4 访问对象的成员 访问对象成员的格式: float r1, area; Circle myCircle=new Circle(1); r1=myCircle.radius; area=myCircle. getArea();
//访问变量radius //访问方法getArea()
20
24
5.3 引用传递
调用语句printAreas(myCircle, n) 执行时,
实参n将值传递给形参times(times发生变化 时,并不影响实参n的值)
实参myCircle将其引用传递给形参c,其内存
模型
25
5.3 引用传递
26
5.4 包
Java程序由多个类组成,为了有效地组织和管理
为环境变量classpath添加路径E:\book,因为要引
用的包moon.star在E:\book目录下。
37
5.5 访问级别
访问级别:一个类或类成员允许其它类或类成员的访问能力。
程序compareManAndDog.java使用moon.star包中的
类,必须将moon.star包的父目录添加到环境变量 classpath中,以便程序编译时能找到该包。
如果要引用某个包中的类,则必须在环境变量
classpath中指明该包的位置,即在环境变量 classpath中添加该包所在的父路径。
31
5.4.1
package语句
3.对package语句的理解
假设在Java源文件中将包命名为X.Y.Z
则必须创建一个子目录\X\Y\Z 将Java源文件部署在\X\Y\Z目录下 然后编译该源文件
32
5.4.2 import语句
使用import语句来引入包中的类。
Java系统提供了大约130多个包,每个包中包含大量的
5.2.3 基本类型变量和对象类型变量
基本类型变量是指用java基本数据类型声明的变量
对象类型变量是指用类声明的变量。
int Circle
k
;
circle1;
编译器对上面两条语句编译后,给变量k赋值0,给对
象型变量circle1赋的初值是null(null代表空地址, 表示circle还没有引用任何对象),两个变量的内存 模型:
量来访问对象。(类被看作一种数据类型,象int、 folat一样)。
变量声明的一般格式:
类的名称
例如:
变量名称; chenLong;
People
声明一个变量chenLong,其数据类型是People
8
5.2.2 创建对象
下面的语句构造一个对象,并把对象地址保存在变量
chenLong中:
(1)Circle

构造方法
myCircle= new Circle(5.0)
调用带参数的构造方法Circle(double r),创建一个半径 为5的对象myCircle。 调用默认构造方法Circle(),创建一个半径为1的对象 yourCircle。
(2) Circle yourCircle = new Circle()
将编辑好的Man.java和Dog.java源文件保存到\moon\star文
件夹中。
将子文件夹\moon\star创建在目录E:\book下,这时源文件
Man.java和Dog.java将保存在目录E:\book\moon\star下。
30
5.4.1 package语句
2.编译源文件
进入目录E:\book\moon\star下,编译源文件Man.java
2.引入包中某个类
引入java.until包中的Data类:
import
java.until.Data;
35
5.4.2 import语句
3.对import语句的理解
【例5-5】用到包moon.star中的两个类,需要用 import语句。
compareManAndDog.java
36
5.4.2 import语句
和Dog.java 。 E:\book\moon\star>javac Man.java E:\book\moon\star>javac Dog.java
编译后得到的两个字节码文件:Man..class和Dog.class,
系统自动把这2个文件保存在目录D:\user\moon\star下。
实现输入/输出处理。
:包含实现网络功能的类和接口。 java.util:实现数据结构的类。
引入包中的类有两种方式:引入包中的所有类,或
者引入包中某个类。
34
5.4.2 import语句
1.引入包中的所有类
引入java.awt包中的所有类: import
java.awt.*;
15
5.2.3
基本类型变量和对象类型变量
16
5.2.3
基本类型变量和对象类型变量
执行下面语句后,变量c1和变量c2的内存模型
Circle
c1=c2;
17
5.2.3
基本类型变量和对象类型变量
18
5.2.4 访问对象的成员
当创建一个对象并将对象的地址保存到一个变量中
后,称该变量引用了对象,这个变量名就是对象名。 如果创建一个对象,同时并没有将对象地址保存到 任何变量中,这种对象就没有名字,称为匿名对象。 匿名对象是不能访问的。 访问对象就是访问对象的成员变量或者成员方法: 对象名.变量; 对象名.方法;
类。
java.awt:定义用户界面时要用到的抽象窗口工具包。 java.awt.image:抽象窗口工具集中的图像处理类,实
现图像处理。
ng:基本语言包,该包由系统自动导入。不需
要在程序中导入。
33
5.4.2 import语句
java.io:包含所有的输入、输出和文件处理类,
chenLong=new People();
例:变量的声明、对象的创建、为对象分配内存的过程。
9
class People //定义一个People类 { public String name; public static int age; private double salary=1000; public People() { =”张良”; this.age=80; this.salary=8000; } public People (String name1, int age1, double sal) { =name1; this.age=age1; this.salary=sal; } } public class Customer //用People创建对象 { public static void main(string arge[ ]) { People p1, p2; //声明People型的变量p1和p2 p1=new People(); //使用无参构造方法创建对象和分配内存 p2=new People(); //使用无参构造方法创建对象和分配内存 } } 10
一个文件夹中。
包命名语句的格式如下:
package
如:package
packName ; zhang;
package
zhang.li;
源程序中省略了package语句,则源文件中所定义的所
有类被隐含地认为组织在一个无名包中,即该包没有名 称
28
5.4.1 package语句
1.编辑源文件
//该方法用来计算圆的面积
//该方法用来计算圆的周长
//类体结束行
4
5.1 面向对象的概念
3.对象 以Circle类为模板创建对象circle1和对象circle2。可以用 Circle类为模板创建许许多多个圆。
5
5.1 面向对象的概念
4.消息 对象通过相互发送消息实现协作
消息 发送方 回应 接收方
1.实体:现实世界中存在的事物 2.类
例如,对于现实世界中的一组“圆”,相应地在软件领域中
定义一个Circle类,该类描述了现实世界中一组圆的共同特 征。Circle类的字段radius模拟了现实世界中“圆”的静态 特征(半径),Circle类的方法,如计算面积的方法 getArea())、计算周长的方法getPerimeter()模拟了现实世 界中“圆”的动态特征。
【例5-4】定义Man类和Dog类,并命名包名: moon.star。
Man.java Dog.java
29
5.4.1 package语句
编写Man.java 和Dog.java源文件时,包被命名为moon.star 首先创建一个子文件夹\moon\star(该子文件夹可以在任何
目录下创建)
5.2.5 构造方法
构造方法是一种特殊的方法
名称必须与它所在的类的名称完全相同
不返回任何数据(方法名前也没有关键字void) 构造方法的作用是对成员变量初始化
【例子5.2 】使用Circle类中的构造方法创建2 个半径不同的对象。
TestCircleConstructors.java
21
5.2.5
6
5.2 对象创建和访问
相关主题