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)

相关推荐

  • react中间事件怎么绑定(react事件绑定方法视频)

    技术怎么进行React事件绑定本篇文章给大家分享的是有关怎么进行React事件绑定,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。类组件事件绑定import

    攻略 2021年12月18日
  • 汇编语言怎么实现简单数学运算

    技术汇编语言怎么实现简单数学运算这篇文章主要介绍“汇编语言怎么实现简单数学运算”,在日常操作中,相信很多人在汇编语言怎么实现简单数学运算问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”汇编语

    攻略 2021年11月29日
  • Python爬虫框架有哪些

    技术Python爬虫框架有哪些这篇文章给大家分享的是有关Python爬虫框架有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、ScrapyScrapy是一个为了爬取网站数据,提取结构性数

    攻略 2021年10月28日
  • 如何分析VCS监控采集的共享内存和实战原理

    技术怎么解析共享内存原理与VCS监控采集实战本篇文章给大家分享的是有关怎么解析共享内存原理与VCS监控采集实战,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

    攻略 2021年12月16日
  • bad的反义词,“bad”的反义词是什么

    技术bad的反义词,“bad”的反义词是什么bad的反义词是bad的反义词:good词汇解析:
    good
    英文发音:[ɡʊd]
    中文释义:adj.好的;优质的;符合标准的;可接受的;令人愉快的;令人满意的;合情理的;有说

    生活 2021年10月29日
  • jquery中$是啥意思

    技术jquery中$是啥意思本篇内容介绍了“jquery中$是啥意思”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

    攻略 2021年11月13日