簡體   English   中英

為什么我們不能在 class 中聲明變量(字段)后定義(賦值)變量(字段)?

[英]Why can't we define (assign a value) a variable (field) after it is declared in a class?

在普通的 class 中,

public class MyClass {
    int a =12; 
} 

工作正常。

但,

public class MyClass {
    int a =12;
    int b;
    b=13;
} 

這會產生編譯錯誤。

我知道我試圖在不使用 class 的 object 的情況下訪問字段,所以我什至嘗試了這個->

public class MyClass {
    int a =12;
    int b;
    MyClass m= new MyClass();
    m.b=13;
} 

但即使這似乎也不起作用。

我可以接受這樣一個事實,事情就是這樣運作和繼續前進的。 但是有人知道這背后的邏輯嗎?

先感謝您。

int a = 12;

這是一個帶有初始化的變量聲明。

b=13;

這是一項任務; 一份聲明; 它不能成為聲明的一部分。 它必須是構造函數或方法的一部分。

這就是 Java object 定義的工作原理。

  • 變量/字段聲明
  • 構造函數
  • 方法(靜態或非靜態)

您可以通過以下兩種方式之一執行此操作:

  1. 使用初始化塊如下:

     int b; { b = 13; }
  2. 在構造函數中執行以下操作:

     b = 13;

查看https://docs.oracle.com/javase/tutorial/java/javaOO/initial.html了解更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM