构造函数是编程的强大组件。使用它们来释放Java的全部潜力。在开源、跨平台编程领域,Java无疑是(?)无可争议的重量级语言。虽然有许多出色的跨平台框架,但很少有像Java这样统一和直接的。当然,Java也是一种非常复杂的语言,有其自身的微妙之处和约定。关于Java中构造函数的最常见问题之一是:它们是什么以及它们有什么作用?简而言之:构造函数是在Java中创建新对象对象时执行的操作。当Java应用程序创建您编写的类的实例时,它会检查构造函数。如果有构造函数(针对类),Java会在创建实例时运行构造函数中的代码。在那几句话中有很多技术术语,但是当你看到它在运行时它会变得更加清晰,所以请确保你已经安装了Java并准备好进行演示。没有构造函数的日常开发如果您正在编写Java代码,那么您已经在使用构造函数,即使您可能不知道。Java中的所有类都有一个构造函数,因为即使您不创建构造函数,Java也会在编译您的代码时为您生成一个。但是,为了演示,请忽略Java提供的隐藏初始化器(因为默认初始化器不添加任何额外功能),并观察在没有显式初始化器的情况下会发生什么。假设您正在编写一个简单的Java掷骰子应用程序,因为您想要为游戏生成一个伪随机数。首先,您创建Dice类来表示骰子。您已经玩了《龙与地下城》很长时间了,所以您决定制作一个20面的骰子。在这个示例代码中,变量dice是整数20,表示最大可能的掷骰数(20面骰子不能超过20次)。变量roll是最终随机数的占位符,rand用作随机数种子。导入java.util.Random;公共类DiceRoller{privateintdice=20;私人介绍;私人随机兰特=新随机();接下来在DiceRoller类中创建一个函数来执行计算机模拟掷骰子必须做的事情步骤:从rand中获取一个整数赋值给roll变量,考虑到Java是从0开始计数但是20面dice没有0值,roll加1,然后打印结果。导入java.util.Random;公共类DiceRoller{privateintdice=20;私人介绍;私人随机兰特=新随机();最后,生成DiceRoller类的实例并调用其关键函数Roller://mainlooppublicstaticvoidmain(String[]args){System.out.printf("Yourolleda");DiceRollerApp=newDiceRoller();App.Roller();}}只要你安装了Java开发环境(比如OpenJDK),你就可以在终端上运行你的应用程序:$javadice.java你掷了一个12在这个例子中,没有显式的构造函数。这是一个非常高效和合法的Java应用程序,但它有点受限。例如,如果您将《龙与地下城》放在一边,晚上去玩《快艇骰子》,则需要六面骰子。在这个简单的示例中,更改代码不会太麻烦,但在复杂的代码中,这不是一个现实的选择。解决这个问题的一种方法是使用构造函数。构造函数的作用这个示例项目中的DiceRoller类代表一个虚拟骰子工厂:当它被调用时,它创建一个虚拟骰子,然后“掷骰子”。但是,通过编写自定义构造函数,您可以让掷骰子应用程序询问您希望模拟哪种类型的骰子。大多数代码是相同的,除了构造函数采用一个表示边数的数字参数。此图尚不存在,但稍后会创建。导入java.util.Random;公共类DiceRoller{privateint骰子;私人介绍;私人随机兰特=新随机();//构造函数publicDiceRoller(intsides){dice=sides;}模拟滚动的函数保持不变:publicvoidRoller(){roll=rand.nextInt(dice);滚动+=1;System.out.println(roll);}代码的主要部分提供您在运行应用程序时提供的任何参数。这确实是一个复杂的应用程序,您需要仔细解析参数并检查意外结果,但对于此示例,唯一的预防措施是将参数字符串转换为整数类型。publicstaticvoidmain(String[]args){System.out.printf("Yourolleda");DiceRollerApp=newDiceRoller(Integer.parseInt(args[0]));App.Roller();}启动此应用程序,并提供您希望骰子的面数:$javadice.创建类实例时,sides变量设置为用户指定的任何数字。构造函数是编程的强大组件。练习使用它们来释放Java的全部潜力。
