java类与对象的创建

java类与对象的创建

ID:37711432

大小:236.02 KB

页数:19页

时间:2019-05-29

java类与对象的创建_第1页
java类与对象的创建_第2页
java类与对象的创建_第3页
java类与对象的创建_第4页
java类与对象的创建_第5页
资源描述:

《java类与对象的创建》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、试验四类和对象的创建一.类的定义   类是组成Java程序的基本要素。类封装了一类对象的状态和方法。类用来定义对象的模板。   类的实现包括两部分:类声明和类体。基本格式为:   修饰符class类名[extends父类名]{       /*类体的内容*/   }1. 类声明   以下是一个类声明的例子。   classPeople成为类声明,People是类名。习惯上,类名的第一个字母大写,但这不是必须的。类的名字不能是Java中的关键字,要符合标识符规定,即类的名字可以由字母、下划线、数字或美元符号组成,并且第一个字母不能是数字。但给类命名时,最好遵守下列规则:   (1)如果类名使用

2、拉丁字母,那么名字的首写字母使用大写字母,如Hello、Time、People等。   (2)类名最好容易识别,当类名由几个“单词”复合而成时,每个单词的首写字母使用大写,如BeijingTime、AmericanGame、HelloChina等。2. 类体   编写类的目的是为了描述一类事物共有的属性和功能,描述过程由类体来实现。类声明之后的一对大括号“{”、“}”以及它们之间的内容称为类体,大括号之间的内容称为类体的内容。   类体的内容由两部分构成:一部分是变量的定义,用来刻画属性;另一部分是方法的定义,用来刻画功能。   下面是一个类名为“Trapezia”的类,类体内容的变量定义部

3、分定义了4个float类型变量:top、bottom、high和laderArea,方法定义部分定义了两个方法:“getArea”和“setHigh”。二.对象1. 对象的创建   创建一个对象包括对象的声明和为对象分配内存两个步骤。   (1)对象的声明。   一般格式为:   类的名字对象名字;   如:   这里People是类的名字,zhubajie是我们声明的对象的名字。   (2)为声明的对象分配内存。   使用new运算符和类的构造方法为声明的对象分配内存,如果类中没有构造方法,系统会调用默认的构造方法(你一定还记得构造方法的名字必须和类名相同这一规定),如:   例1:   

4、「注」如果类里定义了一个或多个构造方法,那么Java不提供默认的构造方法。2. 对象的使用   对象不仅可以改变自己变量的状态,而且还拥有了使用创建它的那个类中的方法的能力,对象通过使用这些方法可以产生一定的行为。   通过使用运算符“.”,对象可以实现对自己的变量访问和方法的调用。   例2:   程序执行结果如下:   类中的方法可以操作成员变量,当对象调用该方法时,方法中出现的成员变量就是指该对象的成员变量。在上述代码中,当对象zhubajie调用speak方法后,就将自己的头修改成:“歪着头”。同样,对象sunwukong调用speak方法后,也将自己的头修改成:“歪着头”。3. 对

5、象的引用和实体   当用类创建一个对象时,类中的成员变量被分配内存空间,这些内存空间称为该对象的实体,而对象中存放着引用,以确保实体由该对象操作使用。   再以例1中的Point类为例,假如分别使用类的构造方法Point(intx,inty)创建了两个对象p1、p2:   那么内存模型如图4-1-1所示:图4-1-1 对象内存模式1   假如在程序中使用了下述赋值语句:    p1=p2;   把p2的引用(p2在内存中的名字)赋给了p1,因此p1和p2本质上是一样的了。虽然在源文件中p1、p2是两个名字,但在系统看来它们的名字是一个:0xDD。系统将取消原来分配给p1的内存,即释放分配给p

6、1的变量。这时如果输出p1.x的结果将是6,而不是12,即p1、p2有相同的实体。内存模式变成如图4-1-2所示:图4-1-2 对象内存模式2   因此,如果一个类创建的两个对象具有相同的引用,那么就具有完全相同的实体。没有实体的对象称为空对象,空对象不能使用,即不能让一个空对象去调用方法产生行为。假如程序中使用了空对象,程序在运行时会出现异常:NullPointerException。由于对象是动态地分配实体,所以Java的编译器对空对象不做检查。因此,在编写程序时要避免使用空对象。   「注」实际上,Java有所谓“垃圾收集”机制,这种机制周期地检测某个实体是否已不再被任何对象所拥有,如

7、果发现这样的实体,就释放实体占有的内存。因此,Java编程人员不必像C++程序员那样,要时刻自己检查哪些对象应该释放内存。在上述程序中,当将p2的引用赋给p1后,最初分配给对象p1的变量(实体)所占有的内存就会被释放。4. 参数传值   当方法被调用时,如果方法有参数,参数必须要实例化,即参数变量必须有具体的值。在Java中,方法的所有参数都是“传值”的,也就是说,方法中参数变量的值是调用者指定的值的副本。例

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。