一切都是对象之创建新的数据类型:类

创建新的数据类型:类
  如果一切都是对象,那么是什么决定了某一类对象的外观与行为呢?换句话说,是什么确定了对象的类型?你可能期望有一个名为“type”的关键字,当然它必须还有相应的含义,然而,从历史发展角度来看。大多数面向对象的程序设计语言习惯用关键字class来表示“我准备告诉你一种新类型的对象看起来像什么样子”。class这个关键字之后紧跟的是新类型的名称,例如:

		class ATypeName {/*Class body goes here */}

      这就引用了有一种新的类型,尽管类主体仅包含一条注释词语(星号和斜杠以及其中的内容就是注释)。因此,你还不能用它做太多的事情。然而,你已经用new来创建这种类型的对象:

			ATypeName a = new ATypeName();

      但是,在定义它的所有方法之前,还没有办法能让它去做更多的事情(也就是说,不能向他发送任何有意义的消息)。
字段和方法
   一旦定义了一个类(在Java中你所做的全部工作就是定义类,产生那些类的对象,以及发送消息给这些对象),就可以在类中设置两种类型的元素:字段(有时被称作数据成员)和方法(有时被称作成员函数)。字段可以是任何类型的对象,可以通过其引用于其进行通信,也可以是基本类型中的一种。如果字段是对某个对象的引用,那么必须初始化该引用,以便使其与一个实际的对象相关联。
   每个对象都有用来存储其字段的空间;普通字段不能在对象间共享。下面是一个具有某些字段的类:

			Class DataOnly{
				int i;
				double d;
				boolean b;
			}

      尽管这个类除了存储数据之外什么也不能做,但是仍旧可以像下面这样创建它的一个对象:

			DataOnly data =new DataOnly();

      可以给字段赋值,但首先必须知道如何引用一个对象的成员。具体的实现为:在对象引用的名称之后紧跟着一个句点,然后在接着是对象内部的成员名称:

			objectReference.member

      例如:

					data.i =47;
					data.d = 1.1;
					data.b = false;

      想修改的数据也有可能位于对象所包含的其他对象中。在这种情况下,只需要再使用连接句点即可。例如:

			myPlane.leftTank.capacity = 100;

      DataOnly类除了保存数据外没别的用处,因为它没有任何成员方法。如果想了解成员方法的运行机制,就得先了解参数和返回值的概念。
基本成员默认值
  若类的某个成员是基本数据类型,即使没有进行初始化,Java也会确保它获得一个默认值:

基本类型默认值
booleanfalse
char‘\uoooo’(null)
byte(byte)o
short(short)o
into
longoL
floato.of
doubleo.od

      当变量作为类的成员使用时,Java才确保给定其默认值,以确保那些是基本类型的成员变量得到初始化(C++没有此功能),防止产生程序错误。但是,这些初始值对你的程序来说,可能是不正确的,甚至是不合法的。所以最好明确地对变量进行初始化。
  然而上述确保初始化的方法并不适用于“局部”变量(即并非某个类的字段)。因此,如果在某个方法定义中有

			int x;

      那么变量x得到的可能是人任意值(与C和C++中一样),而不会被主动初始化为零。所以在使用x变量没有初始化,这正是Java由于C++的地方。(许多C++编译器会对未初始化变量给予警告,而Java则视为是错误)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

钴60

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值