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)

相关推荐

  • xamarin开发常见错误总结--the operation was canceled

    技术xamarin开发常见错误总结--the operation was canceled xamarin开发常见错误总结--the operation was canceled1.1.1 操作被取消异

    礼包 2021年12月1日
  • 二分之根号二等于多少,二分之根号二是分数吗,为什么

    技术二分之根号二等于多少,二分之根号二是分数吗,为什么二分之根号二不是分数二分之根号二等于多少。解答过程如下:(1)分数是一个整数a和一个正整数b的不等于整数的比。分数表示一个数是另一个数的几分之几,或一个事件与所有事件

    生活 2021年10月26日
  • 大数据中如何捕获内网数据包

    技术大数据中如何捕获内网数据包今天就跟大家聊聊有关大数据中如何捕获内网数据包,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。环境:小攻:Kali 2020,ip:1

    攻略 2021年12月10日
  • 如何理解Python基础中的for循环语句

    技术如何理解Python基础中的for循环语句如何理解Python基础中的for循环语句,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Python for循

    攻略 2021年10月25日
  • 同学过生日送什么礼物好,同学过生日,送什么礼物好呢

    技术同学过生日送什么礼物好,同学过生日,送什么礼物好呢送同学礼物的时候,相信只要用心,就一定会让你们之间的感情得到进一步的加深!尤其是在同学过生日的时候,送同学生日礼物推荐一定要推荐那些带有心意的生日礼物才行!不过送同学

    生活 2021年10月24日
  • 骠勇读音,brothers怎么读

    技术骠勇读音,brothers怎么读brother的读音为英 [ˈbrʌðə(r)] 美 [ˈbrʌðɚ] 骠勇读音。具体释义如下: brother 英 [ˈbrʌðə(r)] 美 [ˈbrʌðɚ] 1、名词 n.兄弟;

    生活 2021年10月29日