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)

相关推荐

  • C#框架的总体设计知识点有哪些

    技术C#框架的总体设计知识点有哪些本篇内容介绍了“C#框架的总体设计知识点有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有

    攻略 2021年11月26日
  • VB.NET如何使用On Error语句

    技术VB.NET如何使用On Error语句这篇文章主要介绍VB.NET如何使用On Error语句,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!VB.NET推荐使用Try...End Try块来

    攻略 2021年12月2日
  • sqlserver索引的原理及索引建立的注意事项有哪些

    技术sqlserver索引的原理及索引建立的注意事项有哪些本篇文章为大家展示了sqlserver索引的原理及索引建立的注意事项有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

    攻略 2021年12月1日
  • 速度单位换算,路程,速度,时间的关系式是什么

    技术速度单位换算,路程,速度,时间的关系式是什么路程速度单位换算,速度,时间的关系式是速度=路程/时间。科学上用速度来表示物体运动的快慢。速度在数值上等于单位时间内通过的路程。速度的计算公式:V=S/t。速度的单位是m/

    生活 2021年10月30日
  • mysql索引最快的方法(mysql索引优化的几种方法)

    技术如何使MySQL的索引更高效这篇文章主要介绍如何使MySQL的索引更高效,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!MySQL中的索引MySQL中的InnoDB引擎使用B+Tree结构来存储

    攻略 2021年12月20日
  • c语言宏定义函数怎么用(c语言continue函数使用方法)

    技术C语言宏函数container of()怎么使用本篇内容主要讲解“C语言宏函数container of()怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言宏函

    攻略 2021年12月20日