У меня есть такая любопытная ситуация в редакторе кода 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);
}
}
В действительности, если ты будешь объявлять переменную и распределять ему стоимость правильная форма должна быть:
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;
}
}