Analysis of static modified attributes in Java (code example)
The content of this article is about the analysis of static modified attributes in Java (code examples). It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.
static keyword, we still use it quite often in development. There is the following paragraph in "Java Programming Thoughts"
static method is a method without this. Non-static methods cannot be called inside static methods, but the reverse is possible. And you can call static methods only through the class itself without creating any objects. This is actually the main purpose of static methods.
static is widely used: static variables, static members, static functions, etc. We will use it when using single column mode. And static data members are stored in the static storage area and are only stored once, which can save memory.
static declare attributes
static modify member variables
When we need to define an attribute as public in a class(class) Attribute
, just like we need this attribute to be common to all classes, and the value of this attribute is the same.
Test.java
class Book{ // 设置一个默认的值 static String pub = "清华大学出版社"; // 用来和 static 作为对比 String description = "描述"; // Book 类正常的属性 private String title; private double price; // Book 的构造类 public Book(String title, double price) { this.title = title; this.price = price; } // 获取 Book 的信息 public void getInfo(){ System.out.println("图书名称:"+ this.title + ",价格为:"+ this.price + ",出版社为:"+ this.pub + ",描述 "+ this.description); } } public class Test { public static void main(String[] args) { // 实例化三个Book类 Book book1 = new Book("Android开发实战", 69.8); Book book2 = new Book("Java EE开发实战", 49.8); Book book3 = new Book("Java 开发教程", 79.8); // 在没有设置 pub 属性的情况下输出 book1.getInfo(); book2.getInfo(); book3.getInfo(); System.out.println("————————————————————无敌分割线————————————————————"); // 我们给 book1 设置一个 pub 属性 book1.pub = "中信出版社"; book1.description = "这本书很牛逼,看了你就知道"; book1.getInfo(); book2.getInfo(); book3.getInfo(); } }
Console output
图书名称:Android开发实战,价格为:69.8,出版社为:清华大学出版社,描述 描述 图书名称:Java EE开发实战,价格为:49.8,出版社为:清华大学出版社,描述 描述 图书名称:Java 开发教程,价格为:79.8,出版社为:清华大学出版社,描述 描述 ————————————————————无敌分割线———————————————————— 图书名称:Android开发实战,价格为:69.8,出版社为:中信出版社,描述 这本书很牛逼,看了你就知道 图书名称:Java EE开发实战,价格为:49.8,出版社为:中信出版社,描述 描述 图书名称:Java 开发教程,价格为:79.8,出版社为:中信出版社,描述 描述
The results output from the console, you can see:
If you assign default values to attributes, in the above example (description and pub), the output results are all default.
When we modify the attribute declared by the static keyword in the class, as long as it is modified once, this attribute of all other objects will be modified.
Calling statically declared attributes through classes
But based on the above code, we found that if it is one of the class objects, the attributes of all objects will be changed, so Doesn’t the sub-operation feel particularly good? Then in Java, if the attribute value is declared using static, it can be called directly through the class.
public class Test { public static void main(String[] args) { // 实例化三个Book类 Book book1 = new Book("Android开发实战", 69.8); Book book2 = new Book("Java EE开发实战", 49.8); Book book3 = new Book("Java 开发教程", 79.8); // 在没有设置 pub 属性的情况下输出 book1.getInfo(); book2.getInfo(); book3.getInfo(); System.out.println("————————————————————无敌分割线————————————————————"); // 我们使用 Book 类直接调用pub Book.pub = "中信出版社"; book1.description = "这本书很牛逼,看了你就知道"; book1.getInfo(); book2.getInfo(); book3.getInfo(); } }
When the class is not instantiated, the static attribute is called
Test.java
class Book{ // 设置一个默认的值 static String pub = "清华大学出版社"; // 用来和 static 作为对比 String description = "描述"; // Book 类正常的属性 private String title; private double price; // Book 的构造类 public Book(String title, double price) { this.title = title; this.price = price; } // 获取 Book 的信息 public void getInfo(){ System.out.println("图书名称:"+ this.title + ",价格为:"+ this.price + ",出版社为:"+ this.pub + ",描述 "+ this.description); } } public class Test { public static void main(String[] args) { // 在没有实例化对象时,就调用 System.out.println(Book.pub); // 没事实例化对象的时候,去给static属性赋值上默认值 Book.pub = "北京大学出版社"; System.out.println(Book.pub); // 新建一个类,输入 pub 属性 Book book = new Book("Java", 88); book.getInfo(); } }
Console output
清华大学出版社 北京大学出版社 图书名称:Java,价格为:88.0,出版社为:北京大学出版社,描述 描述
From this, we can see that when the object is not instantiated, the static attribute can be removed directly through the class, and the static attribute can also be modified. Although the static property declaration is in the class structure, it is not controlled by the object and exists independently.
The difference between static properties and non-static properties
The biggest difference between static properties and ordinary properties (non-static properties) lies in the different memory areas saved. What is modified by static is in the static data area. Instead of on the heap and stack.
The biggest difference between static properties and non-static properties is that all non-static properties must be instantiated before they can be accessed, but static properties are not controlled by the instantiated object. . In other words, static objects can still be used without creating instantiated objects.
The above is the detailed content of Analysis of static modified attributes in Java (code example). For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



Guide to Perfect Number in Java. Here we discuss the Definition, How to check Perfect number in Java?, examples with code implementation.

Guide to Weka in Java. Here we discuss the Introduction, how to use weka java, the type of platform, and advantages with examples.

Guide to Smith Number in Java. Here we discuss the Definition, How to check smith number in Java? example with code implementation.

In this article, we have kept the most asked Java Spring Interview Questions with their detailed answers. So that you can crack the interview.

Java 8 introduces the Stream API, providing a powerful and expressive way to process data collections. However, a common question when using Stream is: How to break or return from a forEach operation? Traditional loops allow for early interruption or return, but Stream's forEach method does not directly support this method. This article will explain the reasons and explore alternative methods for implementing premature termination in Stream processing systems. Further reading: Java Stream API improvements Understand Stream forEach The forEach method is a terminal operation that performs one operation on each element in the Stream. Its design intention is

Guide to TimeStamp to Date in Java. Here we also discuss the introduction and how to convert timestamp to date in java along with examples.

Capsules are three-dimensional geometric figures, composed of a cylinder and a hemisphere at both ends. The volume of the capsule can be calculated by adding the volume of the cylinder and the volume of the hemisphere at both ends. This tutorial will discuss how to calculate the volume of a given capsule in Java using different methods. Capsule volume formula The formula for capsule volume is as follows: Capsule volume = Cylindrical volume Volume Two hemisphere volume in, r: The radius of the hemisphere. h: The height of the cylinder (excluding the hemisphere). Example 1 enter Radius = 5 units Height = 10 units Output Volume = 1570.8 cubic units explain Calculate volume using formula: Volume = π × r2 × h (4

Java is a popular programming language that can be learned by both beginners and experienced developers. This tutorial starts with basic concepts and progresses through advanced topics. After installing the Java Development Kit, you can practice programming by creating a simple "Hello, World!" program. After you understand the code, use the command prompt to compile and run the program, and "Hello, World!" will be output on the console. Learning Java starts your programming journey, and as your mastery deepens, you can create more complex applications.
