构造函数和复制函数java_什么是Java构造函数?

构造函数和复制函数java

在开放源代码,跨平台编程中,Java是(无可争议的)重量级人物。 尽管有许多很棒的 跨平台 框架 ,但很少有像Java这样统一和直接的框架

当然,Java还是一种非常复杂的语言,具有自己的微妙之处和约定。 关于Java的最常见问题之一是与构造函数有关 :它们是什么,它们的用途是什么?

简而言之:构造函数是在Java中创建新对象时执行的动作。 当Java应用程序创建您编写的类的实例时,它将检查构造函数。 如果存在构造函数,则Java在创建实例时在构造函数中运行代码。 很多技术术语都塞进了几句话,但是当您实际使用它时,它会变得更加清晰,因此请确保已安装Java并准备进行演示。

没有建设者的生活

如果您正在编写Java代码,即使您可能不知道它,也已经在使用构造函数。 Java中的所有类都有一个构造函数,因为即使您尚未创建一个构造函数,Java也会在编译代码时为您完成。 但是,为了演示起见,请忽略Java提供的隐藏构造函数(因为默认构造函数不会添加任何额外的功能),并在没有显式构造函数的情况下进行观察。

假设您要编写一个简单的Java掷骰子应用程序,因为您想为游戏生成一个伪随机数。

首先,您可以创建骰子类来表示物理骰子。 知道自己玩过很多龙与地下城后 ,您决定制作20面骰子。 在此示例代码中,可变骰子是整数20,代表最大可能的掷骰(20面骰子的掷骰不能超过20)。 可变滚动是最终将是随机数的占位符,而rand是随机种子。


   
   
import java.util.Random ;

public class DiceRoller {
  private int dice = 20 ;
  private int roll ;
  private Random rand = new Random ( ) ;

接下来,在DiceRoller类中创建一个函数,以执行计算机模拟模头滚动所必须采取的步骤:从rand中取一个整数并将其分配给roll变量,加1以说明Java从0开始计数的事实,但是一个20面的骰子没有0值,然后打印结果。


   
   
public void Roller ( ) {
        roll = rand. nextInt ( dice ) ;
        roll += 1 ;
        System . out . println ( roll ) ;
}

最后,产生DiceRoller类的实例并调用其主要功能Roller


   
   
  // main loop
  public static void main ( String [ ] args ) {
          System . out . printf ( "You rolled a " ) ;

         DiceRoller App = new DiceRoller ( ) ;
         App. Roller ( ) ;
  }
}

只要您安装了Java开发环境(例如OpenJDK ),就可以从终端运行应用程序:


   
   
$ java dice. java
   You rolled a 12

施工人员在行动

此示例项目中的DiceRoller类代表一个虚拟骰子工厂:调用它时,它将创建一个虚拟骰子,然后将其“滚动”。 但是,通过编写自定义构造函数,可以使Dice Roller应用程序询问您要模拟哪种骰子。

大部分代码是相同的,除了构造函数接受一定数量的边。 该号码尚不存在,但稍后会创建。


   
   
import java.util.Random ;

public class DiceRoller {
        private int dice ;  
        private int roll ;
        private Random rand = new Random ( ) ;

  // constructor
  public DiceRoller ( int sides ) {
        dice = sides ;
  }

模拟滚动的功能保持不变:


   
   
public void Roller ( ) {
        roll = rand. nextInt ( dice ) ;
        roll += 1 ;
        System . out . println ( roll ) ;
}

代码的主要块提供运行应用程序时提供的任何参数。 如果这是一个复杂的应用程序,则您将仔细解析参数并检查意外结果,但是对于此示例,唯一的预防措施是将参数字符串转换为整数类型:


   
   
  public static void main ( String [ ] args ) {
          System . out . printf ( "You rolled a " ) ;
         DiceRoller App = new DiceRoller ( Integer . parseInt ( args [ 0 ] ) ) ;
         App. Roller ( ) ;
  }
}

启动该应用程序,并提供您希望裸片具有的面数:


   
   
$ java dice. java 20
    You rolled a 10
    $ java dice. java 6
    You rolled a 2
    $ java dice. java 100
    You rolled a 44

构造函数接受了您的输入,因此在创建类实例时,将在sides变量设置为用户指定的任何数字的情况下创建它。

构造函数是编程的强大组件。 练习使用它们来释放Java的全部潜能。

翻译自: https://opensource.com/article/19/6/what-java-constructor

构造函数和复制函数java

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值