Java 构造器原理及用法解析
导读
构造器是编程的强大组件。使用它们来释放Java的全部潜力。
在开源、跨平台编程领域,Java无疑(?)是无可争议的重量级语言。尽管有许多伟大的跨平台框架,但很少有像Java那样统一和直接的。
当然,Java也是一种非常复杂的语言,具有自己的微妙之处和惯例。Java中与构造器constructor有关的最常见问题之一是:它们是什么,它们的作用是什么?
简而言之:构造器是在Java中创建新对象object时执行的操作。当Java应用程序创建一个你编写的类的实例时,它将检查构造器。如果(该类)存在构造器,则Java在创建实例时将运行构造器中的代码。这几句话中包含了大量的技术术语,但是当你看到它的实际应用时就会更加清楚,所以请确保你已经安装了Java并准备好进行演示。
没有使用构造器的开发日常
如果你正在编写Java代码,那么你已经在使用构造器了,即使你可能不知道它。Java中的所有类都有一个构造器,因为即使你没有创建构造器,Java也会在编译代码时为你生成一个。但是,为了进行演示,请忽略Java提供的隐藏构造器(因为默认构造器不添加任何额外的功能),并观察没有显式构造器的情况。
假设你正在编写一个简单的Java掷骰子应用程序,因为你想为游戏生成一个伪随机数。
首先,你可以创建骰子类来表示一个骰子。你玩了很久《龙与地下城》,所以你决定创建一个20面的骰子。在这个示例代码中,变量dice是整数20,表示可能的最大掷骰数(一个20边骰子的掷骰数不能超过20)。变量roll是最终的随机数的占位符,rand用作随机数种子。
importjava.util.Random; publicclassDiceRoller{ privateintdice=20; privateintroll; privateRandomrand=newRandom();
接下来,在DiceRoller类中创建一个函数,以执行计算机模拟模子滚动所必须采取的步骤:从rand中获取一个整数并将其分配给roll变量,考虑到Java从0开始计数但20面的骰子没有0值的情况,roll再加1,然后打印结果。
importjava.util.Random; publicclassDiceRoller{ privateintdice=20; privateintroll; privateRandomrand=newRandom();
最后,产生DiceRoller类的实例并调用其关键函数Roller:
//mainloop publicstaticvoidmain(String[]args){ System.out.printf("Yourolleda"); DiceRollerApp=newDiceRoller(); App.Roller(); } }
只要你安装了Java开发环境(如OpenJDK),你就可以在终端上运行你的应用程序:
$javadice.java Yourolleda12
在本例中,没有显式构造器。这是一个非常有效和合法的Java应用程序,但是它有一点局限性。例如,如果你把游戏《龙与地下城》放在一边,晚上去玩一些《快艇骰子》,你将需要六面骰子。在这个简单的例子中,更改代码不会有太多的麻烦,但是在复杂的代码中这不是一个现实的选择。解决这个问题的一种方法是使用构造器。
构造函数的作用
这个示例项目中的DiceRoller类表示一个虚拟骰子工厂:当它被调用时,它创建一个虚拟骰子,然后进行“滚动”。然而,通过编写一个自定义构造器,你可以让掷骰子的应用程序询问你希望模拟哪种类型的骰子。
大部分代码都是一样的,除了构造器接受一个表示面数的数字参数。这个数字还不存在,但稍后将创建它。
importjava.util.Random; publicclassDiceRoller{ privateintdice; privateintroll; privateRandomrand=newRandom(); //constructor publicDiceRoller(intsides){ dice=sides; }
模拟滚动的函数保持不变:
publicvoidRoller(){ roll=rand.nextInt(dice); roll+=1; System.out.println(roll); }
代码的主要部分提供运行应用程序时提供的任何参数。这的确会是一个复杂的应用程序,你需要仔细解析参数并检查意外结果,但对于这个例子,唯一的预防措施是将参数字符串转换成整数类型。
publicstaticvoidmain(String[]args){ System.out.printf("Yourolleda"); DiceRollerApp=newDiceRoller(Integer.parseInt(args[0])); App.Roller(); }
启动这个应用程序,并提供你希望骰子具有的面数:
$javadice.java20 Yourolleda10 $javadice.java6 Yourolleda2 $javadice.java100 Yourolleda44
构造器已接受你的输入,因此在创建类实例时,会将sides变量设置为用户指定的任何数字。
构造器是编程的功能强大的组件。练习用它们来解开了Java的全部潜力。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。