Der Inhalt dieses Artikels befasst sich mit der Analyse statischer modifizierter Attribute in Java (Codebeispiele). Ich hoffe, dass er für Sie hilfreich ist.
statisches Schlüsselwort, wir verwenden es immer noch ziemlich oft in der Entwicklung. Es gibt die folgende Passage in „Java Programming Thoughts“
Eine statische Methode ist eine Methode ohne dies. Nicht-statische Methoden können nicht innerhalb statischer Methoden aufgerufen werden, aber das Gegenteil ist möglich. Und Sie können statische Methoden einfach über die Klasse selbst aufrufen, ohne Objekte zu erstellen. Dies ist eigentlich der Hauptzweck statischer Methoden.
statisch wird häufig verwendet: statische Variablen, statische Mitglieder, statische Funktionen usw. Wir werden es verwenden, wenn wir den Einzelspaltenmodus verwenden. Und statische Datenelemente werden im statischen Speicherbereich gespeichert und nur einmal gespeichert, wodurch Speicher gespart werden kann.
statisch Attribute deklarieren
statisch Mitgliedsvariablen ändern
Wenn wir 定义一个属性为公共的属性
in einer Klasse müssen, ist das so, als würden wir sagen, wir brauchen dieses Attribut allen Klassen gemeinsam und der Wert dieses Attributs ist derselbe.
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(); } }
Konsolenausgabe
图书名称:Android开发实战,价格为:69.8,出版社为:清华大学出版社,描述 描述 图书名称:Java EE开发实战,价格为:49.8,出版社为:清华大学出版社,描述 描述 图书名称:Java 开发教程,价格为:79.8,出版社为:清华大学出版社,描述 描述 ————————————————————无敌分割线———————————————————— 图书名称:Android开发实战,价格为:69.8,出版社为:中信出版社,描述 这本书很牛逼,看了你就知道 图书名称:Java EE开发实战,价格为:49.8,出版社为:中信出版社,描述 描述 图书名称:Java 开发教程,价格为:79.8,出版社为:中信出版社,描述 描述
Die von der Konsole ausgegebenen Ergebnisse können Sie sehen:
Wenn Sie Attributen Standardwerte zuweisen, im obigen Beispiel (Beschreibung und Pub), sind die Ausgabeergebnisse alle Standardwerte.
Wenn wir das durch das Schlüsselwort static in der Klasse deklarierte Attribut ändern, wird dieses Attribut aller anderen Objekte geändert, solange es einmal geändert wird.
Aber basierend auf dem obigen Code haben wir festgestellt, dass, wenn es sich um eines der Klassenobjekte handelt, die Attribute aller Objekte wird geändert, also fühlt sich die Unteroperation nicht besonders gut an? Wenn der Attributwert dann in Java mit Static deklariert wird, kann er direkt über die Klasse aufgerufen werden.
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(); } }
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(); } }
Konsolenausgabe
清华大学出版社 北京大学出版社 图书名称:Java,价格为:88.0,出版社为:北京大学出版社,描述 描述
Daraus können wir ersehen, dass das statische Attribut direkt über die Klasse entfernt und das statische Attribut auch geändert werden kann, wenn das Objekt nicht instanziiert wird. Obwohl sich die Deklaration statischer Eigenschaften in der Klassenstruktur befindet, wird sie nicht vom Objekt gesteuert und existiert unabhängig.
Der größte Unterschied zwischen statisch deklarierten Attributen und gewöhnlichen Attributen (nicht-statische Attribute) besteht in den unterschiedlichen gespeicherten Speicherbereichen . Was durch Static geändert wird, befindet sich im statischen Datenbereich. Statt auf dem Heap und Stack.
Der größte Unterschied zwischen statischen Eigenschaften und nicht statischen Eigenschaften besteht darin, dass alle nicht statischen Eigenschaften instanziiert werden müssen, bevor auf sie zugegriffen werden kann, statische Eigenschaften jedoch nicht durch das instanziierte Objekt gesteuert werden. . Mit anderen Worten: Statische Objekte können weiterhin verwendet werden, ohne Objekte zu instanziieren.
Das obige ist der detaillierte Inhalt vonAnalyse statisch geänderter Attribute in Java (Codebeispiel). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!