CodeGym /ื‘ืœื•ื’ Java /Random-HE /ืžืฉืชื ื™ื ืกื˜ื˜ื™ื™ื ื‘-Java
John Squirrels
ืจึธืžึธื”
San Francisco

ืžืฉืชื ื™ื ืกื˜ื˜ื™ื™ื ื‘-Java

ืคื•ืจืกื ื‘ืงื‘ื•ืฆื”

ืžื”ื ืžืฉืชื ื™ื ืกื˜ื˜ื™ื™ื?

ืžืฉืชื ื™ื ืกื˜ื˜ื™ื™ื ืื• ืžืฉืชื ื™ ืžื—ืœืงื” ืžืฉื•ืชืคื™ื ื‘ื™ืŸ ื›ืœ ื”ืžื•ืคืขื™ื ืฉืœ ืžื—ืœืงื” ื•ื ื™ืชืŸ ืœื’ืฉืช ืืœื™ื”ื ื•ืœืฉื ื•ืช ืื•ืชื ืžื‘ืœื™ ืœื™ืฆื•ืจ ืžื•ืคืข ืฉืœ ื”ืžื—ืœืงื”. ื‘ื•ืื• ื ืฆืœื•ืœ ืœืขื•ืžืง ื›ื“ื™ ืœื”ื‘ื™ืŸ ืืช ื”ืฉื™ืžื•ืฉื™ื ื•ื”ื™ื™ืฉื•ื ืฉืœ ืžืฉืชื ื™ื ืกื˜ื˜ื™ื™ื ื‘-Java.

ื“ื•ื’ืžื” ืœืžืฉืชื ื” ืกื˜ื˜ื™ ื‘-Java

ืื—ื“ ื”ืฉื™ืžื•ืฉื™ื ื”ื ืคื•ืฆื™ื ื‘ื™ื•ืชืจ ืœืžืฉืชื ื™ื ืกื˜ื˜ื™ื™ื ื”ื•ื ืฉื™ืชื•ืฃ ื‘ื™ืŸ ื›ืœ ื”ืžื•ืคืขื™ื ืฉืœ ืžื—ืœืงื”. ืœื“ื•ื’ืžื”, ืžืฉืชื ื” ืžื•ื ื” ืฉืขื•ืงื‘ ืื—ืจ ืžืกืคืจ ื”ืžื•ืคืขื™ื ืฉื ื•ืฆืจื•, ืื• ืžืฉืชื ื” CONSTANT ืฉืžื—ื–ื™ืง ืขืจืš ืฉืื™ื ื• ืžืฉืชื ื” ืœืขื•ืœื. ืฉืงื•ืœ ื›ื™ืชื” ื”ืžื™ื™ืฆื’ืช ื—ืฉื‘ื•ืŸ ื‘ื ืง. ืงื˜ืข ื”ืงื•ื“ ื”ื‘ื ืžืจืื” ื›ื™ืฆื“ ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ืžืฉืชื ื” ืกื˜ื˜ื™ nextAccountNumber ื›ื“ื™ ืœื”ืงืฆื•ืช ืžืกืคืจื™ ื—ืฉื‘ื•ืŸ ื™ื™ื—ื•ื“ื™ื™ื ืœื›ืœ ื—ืฉื‘ื•ืŸ ื—ื“ืฉ:

ื“ื•ื’ืžื

// BankAccount class definition
class BankAccount {
  // Declare static variable nextAccountNumber
  static int nextAccountNumber = 1001;

  // Declare instance variables for accountNumber and balance.
  int accountNumber;
  double balance;

  // BankAccount constructor that assigns unique account number to each instance
  BankAccount() {
    // Assign the current value of nextAccountNumber to accountNumber.
    accountNumber = nextAccountNumber;

    // Increment nextAccountNumber for the next BankAccount object.
    nextAccountNumber++;
  }

  // Method to get the account number of this BankAccount object.
  int getAccountNumber() {
    return accountNumber;
  }

  // Method to get the balance of this BankAccount object.
  double getBalance() {
    return balance;
  }

  // Method to deposit an amount into this BankAccount object.
  void deposit(double amount) {
    // Increase balance by the amount deposited.
    balance += amount;
  }

  // Method to withdraw an amount from this BankAccount object.
  void withdraw(double amount) {
    // Decrease balance by the amount withdrawn.
    balance -= amount;
  }
}

// Main method definition
class Main {
  static void main(String[] args) {
    // Create three BankAccount objects: account1, account2, and account3.
    BankAccount account1 = new BankAccount();
    BankAccount account2 = new BankAccount();
    BankAccount account3 = new BankAccount();

    // Display the value of the static variable nextAccountNumber after creating each BankAccount object.
    System.out.println("Value of nextAccountNumber after creating account1: " + account1.getAccountNumber());
    System.out.println("Value of nextAccountNumber after creating account2: " + account2.getAccountNumber());
    System.out.println("Value of nextAccountNumber after creating account3: " + account3.getAccountNumber());
  }
}

ืชึฐืคื•ึผืงึธื”

ืขืจืš NextAccountNumber ืœืื—ืจ ื™ืฆื™ืจืช ื—ืฉื‘ื•ืŸ1: 1001 ืขืจืš NextAccountNumber ืœืื—ืจ ื™ืฆื™ืจืช ื—ืฉื‘ื•ืŸ2: 1002 ืขืจืš NextAccountNumber ืœืื—ืจ ื™ืฆื™ืจืช ื—ืฉื‘ื•ืŸ3: 1003
ื‘ื“ื•ื’ืžื” ื–ื•, ื”ืฉื™ื˜ื” ื”ืจืืฉื™ืช ื™ื•ืฆืจืช ืฉืœื•ืฉื” ืžื•ืคืขื™ื ืฉืœ ื”ืžื—ืœืงื” BankAccount . ื‘ื ืื™ BankAccount ืžืงืฆื” ืืช ื”- nextAccountNumber ืœื—ืฉื‘ื•ืŸ ื”ื—ื“ืฉ ื•ืžื’ื“ื™ืœ ืืช ื”ืžืฉืชื ื” nextAccountNumber ื‘-1. ืฉื™ื˜ืช getAccountNumber ืžื—ื–ื™ืจื” ืืช ืžืกืคืจ ื”ื—ืฉื‘ื•ืŸ ืฉืœ ื›ืœ ื—ืฉื‘ื•ืŸ. ืœืื—ืจ ืžื›ืŸ, ื”ืฉื™ื˜ื” ื”ืจืืฉื™ืช ืžื“ืคื™ืกื” ืืช ืžืกืคืจ ื”ื—ืฉื‘ื•ืŸ ื•ืืช ื”ืžืฉืชื ื” nextAccountNumber ืขื‘ื•ืจ ื›ืœ ื—ืฉื‘ื•ืŸ. ืืชื” ื™ื›ื•ืœ ืœืจืื•ืช ืฉื›ืœ ืžืกืคืจ ื—ืฉื‘ื•ืŸ ื”ื•ื ื™ื™ื—ื•ื“ื™ ื•ื”ืžืฉืชื ื” nextAccountNumber ื’ื“ืœ ื‘ืื—ื“ ืขื‘ื•ืจ ื›ืœ ื—ืฉื‘ื•ืŸ ื—ื“ืฉ ืฉื ื•ืฆืจ. ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ืžืฉืชื ื™ื ืกื˜ื˜ื™ื™ื ื’ื ื›ื“ื™ ืœื™ื™ืฉื ืืช ื“ืคื•ืก ื”ืขื™ืฆื•ื‘ ืฉืœ Singleton, ืฉื‘ื• ื ื™ืชืŸ ืœื™ืฆื•ืจ ืจืง ืžื•ืคืข ืื—ื“ ืฉืœ ืžื—ืœืงื”. ืžื—ืœืงื” ื™ื—ื™ื“ื” ื”ื™ื ืžื—ืœืงื” ืฉื™ื›ื•ืœื” ืœื”ื™ื•ืช ืœื” ืจืง ืžื•ืคืข ืื—ื“ ื‘ื›ืœ ื™ื™ืฉื•ื Java ื•ื‘ื• ื–ืžื ื™ืช ืžืกืคืงืช ื ืงื•ื“ืช ื’ื™ืฉื” ื’ืœื•ื‘ืœื™ืช ืœืžื•ืคืข ื–ื”. ืงื˜ืข ื”ืงื•ื“ ื”ื‘ื ืžืจืื” ื›ื™ืฆื“ ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ืžื•ืคืข ืžืฉืชื ื” ืกื˜ื˜ื™ ื›ื“ื™ ืœื™ื™ืฉื ืžื—ืœืงื” ื™ื—ื™ื“ื”:

ื“ื•ื’ืžื

public class Singleton {
    // using static variable in the singleton class
    private static Singleton instance;
    private Singleton() { }

    public static Singleton getInstance() {
        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
    }

    public void displayMessage() {
        System.out.println("This is a singleton class");
    }

    public static void main(String[] args) {
        Singleton singleton1 = Singleton.getInstance();
        singleton1.displayMessage();

        Singleton singleton2 = Singleton.getInstance();
        singleton2.displayMessage();

        Singleton singleton3 = Singleton.getInstance();
        singleton3.displayMessage();
    }
}

ืชึฐืคื•ึผืงึธื”

ื–ื”ื• ืžื—ืœืงื” ื™ื—ื™ื“ื ื™ืช ื–ื• ืžื—ืœืงื” ื™ื—ื™ื“ื ื™ืช ื–ื• ืžื—ืœืงื” ื™ื—ื™ื“ื ื™ืช
ื‘ื“ื•ื’ืžื” ื–ื•, ื”ืฉื™ื˜ื” ื”ืจืืฉื™ืช ื™ื•ืฆืจืช ืฉืœื•ืฉื” ืžื•ืคืขื™ื ืฉืœ ื”ืžื—ืœืงื” Singleton ืขืœ ื™ื“ื™ ืงืจื™ืื” ืœืžืชื•ื“ื” getInstance() . ื”ืฉื™ื˜ื” getInstance() ืžื—ื–ื™ืจื” ืืช ื”ืžื•ืคืข ืฉืœ ื”ืžื—ืœืงื” ื•ื™ื•ืฆืจืช ืžื•ืคืข ื—ื“ืฉ ืื ืื™ื ื• ืงื™ื™ื. ืฉื™ื˜ืช displayMessage ืจืง ืžื“ืคื™ืกื” ื”ื•ื“ืขื” . ืœืื—ืจ ืžื›ืŸ ื”ืฉื™ื˜ื” ื”ืจืืฉื™ืช ืงื•ืจืืช ืœืฉื™ื˜ืช displayMessage ืขื‘ื•ืจ ื›ืœ ืžื•ืคืข. ื›ืคื™ ืฉืืชื” ื™ื›ื•ืœ ืœืจืื•ืช, ืœืžืจื•ืช ืฉืื ื• ื™ื•ืฆืจื™ื ืฉืœื•ืฉื” ืžื•ืคืขื™ื, ืจืง ืื•ื‘ื™ื™ืงื˜ ืื—ื“ ื ื•ืฆืจ ื•ืžืฉื•ืชืฃ ื‘ื™ืŸ ื›ืœ ื”ืžื•ืคืขื™ื. ื–ื” ืžื•ื›ื™ื— ืฉืจืง ืžื•ืคืข ืื—ื“ ืฉืœ ื”ืžื—ืœืงื” ื ื•ืฆืจ ื•ืžืฉื•ืชืฃ ื‘ื™ืŸ ื›ืœ ื”ืžื•ืคืขื™ื ื•ื”ืžืฉืชื ื” ื”ืกื˜ื˜ื™ 'instance' ืžืชืงื™ื™ื. ื—ืฉื•ื‘ ืœื–ื›ื•ืจ ืฉื”ืขืจืš ืฉืœ ืžืฉืชื ื” ืกื˜ื˜ื™ ืžืฉื•ืชืฃ ืœื›ืœ ื”ืžื•ืคืขื™ื ืฉืœ ืžื—ืœืงื”, ื›ืš ืฉืฉื™ื ื•ื™ื™ื ื‘ืžืฉืชื ื” ืฉื ืขืฉื• ืขืœ ื™ื“ื™ ืžื•ืคืข ืื—ื“ ื™ื”ื™ื• ื’ืœื•ื™ื™ื ืœื›ืœ ืฉืืจ ื”ืžื•ืคืขื™ื. ื™ืฉ ืœืฉืงื•ืœ ื”ื™ื˜ื‘ ืžืฉืชื ื™ื ืกื˜ื˜ื™ื™ื ื›ื“ื™ ืœืžื ื•ืข ื”ืชื ื’ืฉื•ื™ื•ืช ื•ื‘ืื’ื™ื ืคื•ื˜ื ืฆื™ืืœื™ื™ื ื‘ืงื•ื“ ืฉืœืš. ืœื“ื•ื’ืžื”, ืฉื™ืžื•ืฉ ื‘ืžืฉืชื ื” ืกื˜ื˜ื™ ื›ื“ื™ ืœื”ื—ื–ื™ืง ืขืจืš ืกืคืฆื™ืคื™ ืœืžื•ืคืข ืฉืœ ืžื—ืœืงื”, ื›ื’ื•ืŸ ื™ืชืจืช ื—ืฉื‘ื•ืŸ, ืื™ื ื• ืžื•ืžืœืฅ. ื›ื“ื™ ืœื—ื–ืง ืืช ืžื” ืฉืœืžื“ืช, ืื ื• ืžืฆื™ืขื™ื ืœืš ืœืฆืคื•ืช ื‘ืฉื™ืขื•ืจ ื•ื™ื“ืื• ืžืงื•ืจืก Java ืฉืœื ื•

ืกื™ื›ื•ื

ื›ื“ื™ ืœืกื›ื ื–ืืช, ืžืฉืชื ื” ืกื˜ื˜ื™ ื‘-Java ืžืืคืฉืจ ืฉื™ืชื•ืฃ ื ืชื•ื ื™ื ื‘ื™ืŸ ื›ืœ ื”ืžื•ืคืขื™ื ืฉืœ ืžื—ืœืงื”. ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื”ื ืœืžืฉืชื ื™ื ื”ืžืฉื•ืชืคื™ื ื‘ื™ืŸ ื›ืœ ื”ืžื•ืคืขื™ื, ื›ื’ื•ืŸ ืžื•ื ื™ื ื•ืงื‘ื•ืขื™ื ืื• ืœื™ื™ืฉื ืืช ื“ืคื•ืก ื”ืขื™ืฆื•ื‘ ืฉืœ Singleton. ืขื ื–ืืช, ื—ืฉื•ื‘ ืœื–ื›ื•ืจ ืฉื”ืขืจืš ืฉืœ ืžืฉืชื ื” ืกื˜ื˜ื™ ืžืฉื•ืชืฃ ื‘ื™ืŸ ื›ืœ ื”ืžื•ืคืขื™ื ืฉืœ ืžื—ืœืงื”, ื›ืš ืฉืฉื™ื ื•ื™ื™ื ื‘ืžืฉืชื ื” ืฉื ืขืฉื• ืขืœ ื™ื“ื™ ืžื•ืคืข ืื—ื“ ื™ื”ื™ื• ื’ืœื•ื™ื™ื ืœื›ืœ ืฉืืจ ื”ืžื•ืคืขื™ื.
ื”ืขืจื•ืช
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION