Skip to main content

Rules for Instance Variables in Java

 

Rules for Instance Variables in Java:

  1. Declaration and Scope:

    • Declared inside a class but outside of methods, constructors, or blocks.
    • The scope of instance variables is throughout the class, except in static methods.
    java
    class Example { int instanceVar; // Instance variable }
  2. Default Values:

    • Instance variables are automatically initialized with default values if not explicitly initialized:
      • int, long, short, byte0
      • float, double0.0
      • char'\u0000'
      • booleanfalse
      • Object references → null
    java
    class Example { int num; boolean flag; String name; public void display() { System.out.println(num); // Outputs 0 System.out.println(flag); // Outputs false System.out.println(name); // Outputs null } }
  3. Access Modifiers:

    • Can have any access modifier (public, private, protected, or default).
    • Use private to ensure encapsulation and provide access through getter and setter methods.
    java
    class Example { private int age; // Encapsulation public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
  4. Instance-Specific:

    • Each instance of a class has its own copy of instance variables.
    • Modifying an instance variable in one object does not affect the same variable in another object.
    java
    class Example { int x; public static void main(String[] args) { Example obj1 = new Example(); Example obj2 = new Example(); obj1.x = 5; obj2.x = 10; System.out.println(obj1.x); // 5 System.out.println(obj2.x); // 10 } }
  5. Cannot Be Declared Static:

    • Instance variables cannot use the static modifier. If you need shared values across all instances, use static variables instead.
  6. Access from Static Methods:

    • Instance variables cannot be accessed directly within a static context (e.g., a static method). You must create an object instance to access them.
    java
    class Example { int instanceVar = 10; public static void main(String[] args) { // System.out.println(instanceVar); // ERROR Example obj = new Example(); System.out.println(obj.instanceVar); // Correct } }
  7. Final Instance Variables:

    • If an instance variable is declared final, it must be initialized either:
      • At the time of declaration, OR
      • In every constructor of the class.
    java
    class Example { final int id; Example(int id) { this.id = id; // Must initialize in constructor } }
  8. Initialization Block:

    • Instance variables can be initialized using an instance initialization block.
    java
    class Example { int x; // Instance initializer { x = 42; } }
  9. Shadowing:

    • Local variables or method parameters with the same name as an instance variable shadow the instance variable. Use this to refer to the instance variable explicitly.
    java
    class Example { int value; void setValue(int value) { this.value = value; // Refers to instance variable } }

Comments

Popular posts from this blog

Step-by-Step: Launch Browser, Context, and Page in Playwright and Run Test and Configuration (JavaScript)

๐ŸŽฅ Setup Browser, Context, Page & Run Config Test Scripts with package.json & playwright.config.js Step-by-Step: Launch Browser, Context, and Page in Playwright and Run Test and Configuration (JavaScript) 1. Install Playwright You can install Playwright using the following command: npm init playwright@latest 2. Create a Basic Test Script Understand the core Playwright architecture: Element Description browser Controls the browser instance (like Chrome, Firefox, etc.) context Acts like a separate browser profile (cookies, localStorage are isolated) page A single browser tab where interaction happens 3. Run the Test npx playwright test example.spec.js Ways to Run TypeScript Tests Way Command Notes ๐ŸŸข Via npx npx playwright test Uses built-in TypeScript support ๐ŸŸข With s...

Playwright Test Structure in Details -Session-02

๐ŸŽฅ Playwright: test.only, Hooks & Grouping with test.describe Explained Let’s go step-by-step , showing how to build from a single test , to using beforeEach / afterEach , and then organizing things with test.describe . ✅ Step 1: Basic Single Test with test.only import { test, expect } from '@playwright/test' ; test. only ( '๐Ÿš€ Basic test - check title' , async ({ page }) => { await page. goto ( 'https://example.com' ); await expect (page). toHaveTitle ( /Example Domain/ ); }); test.only ensures only this test runs — great for debugging. ✅ Step 2: Add beforeEach and afterEach import { test, expect } from '@playwright/test' ; test. beforeEach ( async ({ page }) => { console . log ( '๐Ÿ”„ Setting up before each test' ); await page. goto ( 'https://example.com' ); }); test. afterEach ( async ({ page }, testInfo) => { console . log ( `๐Ÿ“ฆ Finished test: ${testInfo.title} `); }); test. only ( ...

Playwright Locators in JavaScript (Complete Guide)

๐ŸŽฏ Playwright Locators in JavaScript (Complete Guide) This guide explains each Playwright locator with: ✅ What it is ๐Ÿ• When to use ⚙️ How to use it ๐ŸŽฏ Benefits ๐Ÿงช Code Examples ๐Ÿ”น 1. Locator by ID ✅ What: Selects an element with a unique id . ๐Ÿ• When: Element has a unique id . ⚙️ How: page.locator('#username') ๐ŸŽฏ Benefit: Fast and reliable. <input id="username" /> await page.locator('#username').fill('John'); ๐Ÿ”น 2. Locator by Class ✅ What: Selects by class . ๐Ÿ• When: Repeated or styled elements. ⚙️ How: page.locator('.password') ๐ŸŽฏ Benefit: Useful for shared styling. <input class="password" /> await page.locator('.password').fill('12345'); ๐Ÿ”น 3. Locator by Text ✅ What: Matches visible element text. ๐Ÿ• When: For buttons, links, etc. ⚙️ How: page.getByText('Login') ๐ŸŽฏ Benefit: Human-readable. <button>Login...