java的定义类如何使用(java怎么定义实现类)

技术Java的组合类怎么定义这篇文章主要讲解了“Java的组合类怎么定义”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java的组合类怎么定义”吧!我们可以在一个新类的定

本文主要讲解“如何定义Java复合类”。本文的解释简单明了,易学易懂。请跟随边肖的思路,一起学习学习“如何定义Java复合类”!

我们可以在新类的定义中使用其他对象。这是作文。组合是Java中实现程序可重用的基本手段之一。

组合与"has-a"

一个对象是另一个对象的数据成员。比如我们来看看前面提到的:充电手电筒的例子。

Java的组合类怎么定义

电池、发光二极管灯、按钮等。在一个可充电的手电筒里可以全部是一个物体。我们可以定义一个电池类来定义和生成电池对象。在充电手电筒的类定义中,电池对象可以作为其数据成员来表示电池部件的状态。

Java的组合类怎么定义

让我们定义一个电池类别,用功率来表示它的电量。电池可以充电和使用。在下面的Torch类定义中,我们使用Battery类型对象作为数据成员:

classBattery

{ publicationchargebatery(double p)

{ if(this . power 1)} { this . power=

this . power p;

}

} public booleaneusebattery(double p)

{if(this.power=p){this.power=

this . power-p;returntrue

} else { this.power=0.0returnfalse

}

} privatedoublepower=0.0

}课堂火炬

{

/**

* 10%的功耗

* warningwhenoutofpower

*/

公共无效关闭(以小时为单位)

{

     boolean usable;
        usable = 
this.theBattery.useBattery( hours*0.1 );        if (usable != 
true) {
            System.out.println("No more usable, must charge!");
        }
    }
    /**
     * 20% power per hour charge
     */    public void charge(int hours)
    {        this.theBattery.chargeBattery( hours*0.2 );
    }    /**
     * composition     */
    private Battery theBattery = 
new Battery();
}

上面的new为theBattery对象分配内存,不可或缺。

我们定义Battery类。Torch类使用了一个Battery类型的对象(theBattery)来作为数据成员。在Torch的方法中,我们通过操纵theBattery对象的接口,来实现Battery类所提供的功能(functionality)。

我们说,一个Torch对象拥有(has-a)一个Battery对象。上述关系可以表示成:

Java的组合类怎么定义

has-a: 手电有电池 (注意上面的菱形连线)

通过组合,我们可以复用Battery相关的代码。假如我们还有其他使用Battery的类,比如手机,计算器,我们都可以将Battery对象组合进去。这样就不用为每个类单独编写相关功能了。

我们可以增加一个Test类,看看实际效果:

public class Test
{    public static void main(String[] args)
    {
        Torch aTorch = new Torch();
        System.out.println("Charge: 2 hours");
        aTorch.charge(2);
        System.out.println("First Turn On: 3 hours");
        aTorch.turnOn(3);
        System.out.println("Second Turn On: 3 hours");
        aTorch.turnOn(3);
    }
}

上面程序的运行结果:

Charge: 2 hours
First Turn On: 3 hours
Second Turn On: 3 hours
No more usable, must charge!

我们通过组合来使用了电池对象所提供的功能,比如探测电量是否用尽(根据useBattery()的返回值)。

基本类型


从HelloWorld到面向对象中,我们将int, float, double, boolean等称为基本类型(primitive type),也就是特殊的类。我们可以将一个整数理解称为一个int类型的对象。int类型可以有赋值、加法、减法等操作接口。普通类型可以视作对基本类型的拓展。我们已经见过了基本类型作为数据成员、方法的参数、方法的返回值和方法内部的自动变量。自然的,普通类型的对象,比如Battery和Torch类的对象,也都可以用于这些地方。

C语言中,可用的数据类型(基本上)已经预设好,比如int, float。在Java中,我们除了可以用这些预设的数据类型外,还可以通过类来定制自己想要的数据类型,然后通过组合来使用。但基本类型和普通类型还是有所区别的。基本类型经常被使用,且所占据内存空间不大,所以在Java中,为了效率起见,这些基本类型与普通的类型(也就是自定义的类)的内存管理方式不同。比如,基本类型一旦声明就会被分配内存空间,而普通类型需要使用new关键字来分配内存空间。

Java为每个基本类型提供了相应的普通类型。比如int基本类型对应Integer类型。如果将基本类型的对象转成相应的普通类型变量,所谓的基本类型也就成为了一般意义上的类型(不再有内存管理上的不同)。

感谢各位的阅读,以上就是“Java的组合类怎么定义”的内容了,经过本文的学习后,相信大家对Java的组合类怎么定义这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/154661.html

(0)

相关推荐

  • 数据库文件坏块损坏导致打开时报错怎么办

    技术数据库文件坏块损坏导致打开时报错怎么办小编给大家分享一下数据库文件坏块损坏导致打开时报错怎么办,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! 故障描述故障主要表现为打开数

    攻略 2021年11月11日
  • 空间向量,向量空间的标准向量空间怎么求

    技术空间向量,向量空间的标准向量空间怎么求空间中具有大小和方向的量叫做空间向量空间向量。向量的大小叫做向量的长度或模(moduius)。 规定,长度为0的向量叫做零向量,记为0. 模为1的向量称为单位向量。 与向量a长度

    生活 2021年10月22日
  • 如何使用Angular JS + Express JS入门搭建网站

    技术如何使用Angular JS + Express JS入门搭建网站这期内容当中小编将会给大家带来有关如何使用Angular JS + Express JS入门搭建网站,文章内容丰富且以专业的角度为大家分析和叙述,阅读

    攻略 2021年10月29日
  • 微服务的数据库设计是怎样的

    技术微服务的数据库设计是怎样的这篇文章给大家介绍微服务的数据库设计是怎样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。单独的数据库:微服务设计的一个关键是数据库设计,基本原则是每个服务都有自己单独

    攻略 2021年12月2日
  • 一个火一个亘,左面一个火右面一个亘,念什么

    技术一个火一个亘,左面一个火右面一个亘,念什么烜xuǎn烜的中文解释以下结果由汉典提供词典解释部首笔画 部首:火部外笔画:6总笔画:10 五笔86:OGJG五笔98:OGJG仓颉:FMAM 笔顺编号:4334125111

    生活 2021年10月23日
  • Java的四种引用方式是什么

    技术Java的四种引用方式是什么本篇内容主要讲解“Java的四种引用方式是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java的四种引用方式是什么”吧!1.强引用(St

    攻略 2021年10月29日