构造函数和复制函数java
在开放源代码,跨平台编程中,Java是(无可争议的)重量级人物。 尽管有许多很棒的 跨平台 框架 ,但很少有像Java这样统一和直接的框架 。
当然,Java还是一种非常复杂的语言,具有自己的微妙之处和约定。 关于Java的最常见问题之一是与构造函数有关:它们是什么,它们的用途是什么?
简而言之:构造函数是在Java中创建新对象时执行的动作。 当Java应用程序创建您编写的类的实例时,它将检查构造函数。 如果存在构造函数,则Java在创建实例时在构造函数中运行代码。 很多技术术语都塞进了几句话,但是当您实际使用它时,它会变得更加清晰,因此请确保已安装Java并准备进行演示。
没有建设者的生活
如果您正在编写Java代码,即使您可能不知道它,也已经在使用构造函数。 Java中的所有类都有一个构造函数,因为即使您尚未创建一个构造函数,Java也会在编译代码时为您完成。 但是,为了演示起见,请忽略Java提供的隐藏构造函数(因为默认构造函数不会添加任何额外的功能),并在没有显式构造函数的情况下进行观察。
假设您要编写一个简单的Java掷骰子应用程序,因为您想为游戏生成一个伪随机数。
首先,您可以创建骰子类来表示物理骰子。 知道自己玩过很多龙与地下城后 ,您决定制作20面骰子。 在此示例代码中,可变骰子是整数20,代表最大可能的掷骰(20面骰子的掷骰不能超过20)。 可变滚动是最终将是随机数的占位符,而rand是随机种子。
public class DiceRoller { private int dice = 20 ; private int roll ; private Random rand = new Random ( ) ;import java.util.Random ;
接下来,在DiceRoller类中创建一个函数,以执行计算机模拟模头滚动所必须采取的步骤:从rand中取一个整数并将其分配给roll变量,加1以说明Java从0开始计数的事实,但是一个20面的骰子没有0值,然后打印结果。
roll = rand. nextInt ( dice ) ; roll += 1 ; System . out . println ( roll ) ; }public void Roller ( ) {
最后,产生DiceRoller类的实例并调用其主要功能Roller:
public static void main ( String [ ] args ) { System . out . printf ( "You rolled a " ) ; DiceRoller App = new DiceRoller ( ) ; App. Roller ( ) ; } }// main loop
只要您安装了Java开发环境(例如OpenJDK ),就可以从终端运行应用程序:
You rolled a 12$ java dice. java
施工人员在行动
此示例项目中的DiceRoller类代表一个虚拟骰子工厂:调用它时,它将创建一个虚拟骰子,然后将其“滚动”。 但是,通过编写自定义构造函数,可以使Dice Roller应用程序询问您要模拟哪种骰子。
大部分代码是相同的,除了构造函数接受一定数量的边。 该号码尚不存在,但稍后会创建。
public class DiceRoller { private int dice ; private int roll ; private Random rand = new Random ( ) ; // constructor public DiceRoller ( int sides ) { dice = sides ; }import java.util.Random ;
模拟滚动的功能保持不变:
roll = rand. nextInt ( dice ) ; roll += 1 ; System . out . println ( roll ) ; }public void Roller ( ) {
代码的主要块提供运行应用程序时提供的任何参数。 如果这是一个复杂的应用程序,则您将仔细解析参数并检查意外结果,但是对于此示例,唯一的预防措施是将参数字符串转换为整数类型:
System . out . printf ( "You rolled a " ) ; DiceRoller App = new DiceRoller ( Integer . parseInt ( args [ 0 ] ) ) ; App. Roller ( ) ; } }public static void main ( String [ ] args ) {
启动该应用程序,并提供您希望裸片具有的面数:
You rolled a 10 $ java dice. java 6 You rolled a 2 $ java dice. java 100 You rolled a 44$ java dice. java 20
构造函数接受了您的输入,因此在创建类实例时,将在sides变量设置为用户指定的任何数字的情况下创建它。
构造函数是编程的强大组件。 练习使用它们来释放Java的全部潜能。
翻译自: /article/19/6/what-java-constructor
构造函数和复制函数java