Java в Android Studio

У меня есть такая любопытная ситуация в редакторе кода Java в AndroidStudio, я объявляю предложение в одной строке и отмечаю его как правильный, но я объявляю то же самое в 2 строках, и оно выделяется красным, говоря: «Ожидается идентификатор, неожиданный токен» , По мне, оба способа написания являются действительными; Но для редактора это неправильно. Может кто-нибудь уточнить, почему я выкидываю ошибку (красные линии)? В чем разница между двумя синтаксисами? Если есть один.

package com.example.codingcap7;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

public class MainActivity extends AppCompatActivity {
   int a;             //--ESTA LINEA ESTA NORMAL
   a=12;              //--ESTA LINEA SE MARCA TODO EN ROJO CON ESTE
                      //  MENSAJE "Identifier expected,Unexpected token"

   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);

   }

}

И это будет тот, кто признает меня правильным:

package com.example.codingcap7;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

public class MainActivity extends AppCompatActivity {
    int a=12;     //-- ESTA LINEA ES CORRECTA

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

    }

}
2
задан 27.11.2019, 00:42
1 ответ

В действительности, если ты будешь объявлять переменную и распределять ему стоимость правильная форма должна быть:

public class MainActivity extends AppCompatActivity {
   int a = 12; 
   //a=12;       

   ...
   ...
}

, Так как распределенная стоимость будет применяться ко всему классу.


, Но если ты будешь объявлять переменную и реализовывать ассигнование позже, эта должна быть реализованной внутри какого-то метода или субкласса:

    public class MainActivity extends AppCompatActivity {
       int a = 12; 
       //a=12;       

   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);

       //Asignación de valor para la variable a;
        a=12;    

   }

}
1
ответ дан 01.12.2019, 10:46