Class with Two Constructors to Initialize Instance Variables Differently - Java Object Oriented Design

Java examples for Object Oriented Design:Constructor

Description

Class with Two Constructors to Initialize Instance Variables Differently

Demo Code

public class Main {
  public static void main(String[] args) {
    // Create two Product objects
    Product sd1 = new Product();
    Product sd2 = new Product("QQ", 29.2);

    // Print details about the two Products
    sd1.printDetails();/*from www  .  ja va2  s . c  o m*/
    sd2.printDetails();

    // Make them bark
    sd1.output();
    sd2.output();

    // Change the name and price of Unknown Product
    sd1.setName("AA");
    sd1.setPrice(321.80);

    // Print details again
    sd1.printDetails();
    sd2.printDetails();

    // Make them bark one more time
    sd1.output();
    sd2.output();
  }
}

class Product {
  private String name;
  private double price;

  public Product() {
    this.name = "Unknown";
    this.price = 0.0;
    System.out.println("Using Product() constructor");
  }

  public Product(String name, double price) {
    this.name = name;
    this.price = price;
    System.out.println("Using Product(String, double) constructor");
  }

  public void output() {
    System.out.println(name + " is here");
  }

  public void setName(String name) {
    this.name = name;
  }

  public String getName() {
    return this.name;
  }

  public void setPrice(double price) {
    this.price = price;
  }

  public double getPrice() {
    return this.price;
  }

  public void printDetails() {
    System.out.print("Name: " + this.name);
    if (price > 0.0) {
      System.out.println(", price: " + this.price);
    } else {
      System.out.println(", price: Free");
    }
  }
}

Result


Related Tutorials