zoukankan      html  css  js  c++  java
  • ConstructorTest

     1 public class ConstructorTest {
     2 
     3     /**
     4      * 重载构造器
     5      * 用this(...)调用另一个构造器
     6      * 无参数构造器
     7      * 对象初始化块
     8      * 静态初始化块
     9      * 实例域初始化
    10      */
    11     
    12     public static void main(String[] args) {
    13         // fill the staff array with three Employee objects
    14         Employee[] staff = new Employee[3];
    15         
    16         staff[0] = new Employee("Harry", 4000);
    17         staff[1] = new Employee(60000);
    18         staff[2] = new Employee();
    19         
    20         // print out information about all Employee objects
    21         for (Employee e : staff) {
    22             System.out.println("name = "+e.getName()+", id = " + e.getId()+", salary = "+e.getSalary());
    23             
    24         }
    25     }
    26     
    27 }
    28 
    29 class Employee
    30 {
    31     private static int nextId;
    32     
    33     private int id;
    34     private String name = "";     // instance field initialization
    35     private double salary;
    36     
    37     static
    38     {
    39         Random generator = new Random();
    40         // set nextId to a random number between 0 and 9999
    41         nextId = generator.nextInt(10000);
    42     }
    43     
    44     // object initialization block
    45     {
    46         id = nextId;
    47         nextId++;
    48     }
    49     
    50     // three overloaded constructors
    51     public Employee(String n, double s)
    52     {
    53         name = n;
    54         salary = s;
    55     }
    56     
    57     public Employee(double s)
    58     {
    59         // calls the Employee(String, double) constructor
    60         this("Employee #" + nextId, s);
    61     }
    62     
    63     // the default constructor
    64     public Employee()
    65     {
    66         // name initialized to "" --see above
    67         // salary not explicitly set --initialized to 0
    68         // id initialized in initialization block
    69     }
    70 
    71     public int getId() {
    72         return id;
    73     }
    74 
    75     public String getName() {
    76         return name;
    77     }
    78 
    79     public double getSalary() {
    80         return salary;
    81     }
    82     
    83     
    84 }

    name = Harry, id = 8654, salary = 4000.0
    name = Employee #8655, id = 8655, salary = 60000.0
    name = , id = 8656, salary = 0.0

  • 相关阅读:
    Java Web前后端分离的思考与实践
    JDBC剖析篇(1):java中的Class.forName()
    UVa1471
    Uva11572
    Uva11134
    Uva10755
    Floyd判圈法
    Java泛型-通配符的上限和下限问题
    Codeforces 384E-线段树+dfs序
    codeforcesRound378C-dfs+树状数组
  • 原文地址:https://www.cnblogs.com/Night-Watch/p/12109870.html
Copyright © 2011-2022 走看看