DEV Community

Nkatha Kaburu
Nkatha Kaburu

Posted on

Thinking in Java: A Beginner’s Guide to Building Your First Logic

Starting with Java can feel like walking into a room full of rigid rules. But once you understand the why behind the structure, it becomes a powerful way to organize your thoughts.
Today, let’s build

a Bulk Discount Calculator. Our rule: The first 100 items are full price, but every item after that gets a 75% discount.
Here is the mental framework I use to write Java from scratch.

1. The "Blueprint" Mentality (Classes)
In Java, you don't just write code; you build "blueprints." We call these Classes.
If you’re building a calculator, your class is the factory.

  • Thought Process: "I need a container for my logic. I’ll call it PriceCalculator." *Tip: Use PascalCase for classes!

2. Setting the "Global Rules" (Static Variables)
Some things never change. In our case, the 100-item limit and the 75% discount are "universal truths" for our program. We use the static keyword for these.

  • Thought Process: "This rule applies to every calculation, not just one specific product. I'll make it static so it belongs to the Class itself."

3. Creating the "Thing" (State & Variables)
Now, we need to handle specific data, like the product name or the quantity.

  • String: For text (Name).
  • int: For whole numbers (Quantity).
  • BigDecimal: For money. Never use double for money! (Doubles have tiny rounding errors that steal cents over time).

4. The "Birth" of an Object (Constructors)

A Constructor is the "setup" phase. It’s what happens the moment you create a new product.

  • Thought Process: "When I create a product, I want to force the program to give it a name and a price immediately."

5. Making it Do Something (Methods)
Methods are just functions that live inside your class.

  • Thought Process: "I need a behavior called calculateTotal. It should look at the quantity and decide which math rule to apply."

6. Talking to the User (Inputs & Error Handling)
Users are unpredictable. They might type "banana" when you asked for a price.

  • The Scanner: We use a Scanner tool to read what they type.
  • Try-Catch: This is our safety net. We "try" to do the math, but if the user enters garbage, we "catch" the error and show a nice message instead of letting the program crash.

The Final Result

import java.util.Scanner;
import java.math.BigDecimal;

public class DiscountApp {
    // Global Rules (Static)
    static final int LIMIT = 100;
    static final double DISCOUNT = 0.75; 

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        try {
            System.out.println("Product Name:");
            String name = sc.nextLine();

            System.out.println("Unit Price:");
            double price = sc.nextDouble();

            System.out.println("Quantity:");
            int qty = sc.nextInt();

            // The Logic Process
            double total;
            if (qty <= LIMIT) {
                total = qty * price;
            } else {
                double fullPricePart = LIMIT * price;
                double discountedPart = (qty - LIMIT) * (price * 0.25);
                total = fullPricePart + discountedPart;
            }

            System.out.println("Total for " + name + ": $" + total);

        } catch (Exception e) {
            System.out.println("Oops! Please enter numbers for price and quantity.");
        } finally {
            sc.close(); // Cleaning up
        }
    }
}

Enter fullscreen mode Exit fullscreen mode
  1. What about "Death"? (Destructors)
    In languages like C++, you have to manually destroy objects to save memory. In Java, we have a "Cleaning Crew" called the Garbage Collector. It automatically deletes objects you aren't using. You don't write destructors; you just stop using the object, and Java does the dishes for you!
    Summary for your Journey:

    1. Define the Class (The Blueprint)
    2. Set Static Variables (The Global Rules)
    3. Capture Inputs (The Raw Data)
    4. Use Try-Catch (The Safety Net)
    5. Write Methods (The Behavior)

Top comments (0)