访问权限修饰符、关键字、Android专属类型详解
特点:无访问限制,所有类都可访问
可修饰:类、方法、变量、构造方法
public class MainActivity
public void login()
特点:仅当前类内部可见,外部完全不可访问
可修饰:方法、变量、构造方法
private EditText etUsername
private void login()
特点:当前类、同包类、子类可访问
可修饰:方法、变量、构造方法
protected void onCreate(Bundle savedInstanceState)
特点:同包内可访问,不同包不可见(不写关键字时默认)
可修饰:类、方法、变量
class UserDao // 默认权限
void resetData()
特点:属于类本身,无需创建对象即可直接调用,所有实例共享
可修饰:方法、变量、内部类、代码块
private static final String DB_NAME = "login_db"
public static User login()
特点:不可修改/继承/重写
可修饰:变量(常量)、方法(不可重写)、类(不可继承)
private final DBHelper dbHelper
public final class User
特点:不可实例化,必须被子类实现
可修饰:类、方法
public abstract class BaseActivity
protected abstract void initView()
特点:保证线程安全,多线程环境下防止并发问题
可修饰:方法、代码块
public synchronized void register()
特点:保证变量可见性,多线程环境下确保变量修改对所有线程可见
可修饰:变量
private volatile boolean isLogin = false
特点:修饰的变量不参与序列化,反序列化时得到默认值
可修饰:变量
private transient String password; // 密码不存到文件
特点:方法由非Java代码(C/C++)实现,用于性能敏感或系统调用
可修饰:方法
public native void initNative();
用途:方法执行后不返回任何数据
public void login()
private void register()
用途:Java最核心的结构,用于创建类模板
public class MainActivity extends AppCompatActivity
用途:仅声明方法,由实现类重写实现
public interface OnLoginListener
用途:子类可复用父类的属性和方法
public class MainActivity extends AppCompatActivity
用途:必须重写接口的所有方法
public class MainActivity implements View.OnClickListener
用途:标记当前方法是重写父类/接口的方法
@Override
protected void onCreate(Bundle savedInstanceState)
用途:方法执行结束后返回指定类型的数据
return user
return result != -1
用途:根据布尔值执行不同逻辑分支
if (user != null) { 登录成功 } else { 登录失败 }
用途:重复执行指定代码块
for (int i = 0; i < 10; i++)
用途:捕获并处理代码运行中的异常
try { phone = Long.parseLong(phoneStr); }
catch (NumberFormatException e) { 提示错误 }
this:指向当前对象,用于区分成员变量与参数,或调用本类其他构造器。
super:指向父类对象,用于访问父类成员或调用父类构造器。
this.name = name;
super.onCreate(savedInstanceState);
用途:判断对象是否为某个类(或其子类/实现类)的实例,常用于向下转型前的安全判断。
if (obj instanceof String) {
String s = (String) obj;
}
用途:定义一组固定的常量,比int常量更类型安全,可添加字段和方法。
public enum Status { SUCCESS, LOADING, ERROR }
用途:多分支选择结构,支持byte, short, int, char, String, enum。
switch (type) {
case 1: break;
case 2: break;
default: break;
}
break:跳出当前循环或switch。
continue:跳过本次循环剩余部分,进入下一次迭代。
for(int i=0;i<10;i++){
if(i%2==0) continue;
System.out.println(i);
}
说明:Android所有UI控件的父类,代表页面上的按钮、输入框、文字等
private View btnLogin
public void onClick(View v)
说明:Android应用的环境信息,用于访问资源、启动页面、创建数据库等
public UserDao(Context context)
说明:用于Activity之间传递数据
protected void onCreate(Bundle savedInstanceState)
说明:用于给用户显示简短的提示信息
Toast.makeText(this, "登录成功", Toast.LENGTH_SHORT).show()
说明:Android自带的SQLite数据库,用于执行增删改查操作
SQLiteDatabase db = dbHelper.getWritableDatabase()
说明:用于遍历查询到的数据库结果
Cursor cursor = db.query(...)
说明:用于封装要插入/更新的数据库数据
ContentValues values = new ContentValues()
说明:用于创建、升级Android本地数据库
public class DBHelper extends SQLiteOpenHelper
说明:用于组件间通信,可显式启动Activity/Service,隐式匹配action。
Intent intent = new Intent(this, DetailActivity.class);
intent.putExtra("id", 123);
startActivity(intent);
说明:Handler发送和处理消息,Looper循环取消息,MessageQueue存储消息。用于线程间通信,特别是子线程更新UI。
Handler handler = new Handler(Looper.getMainLooper());
handler.post(() -> updateUI());
说明:以键值对形式存储基本数据类型,常用于保存用户配置、登录状态等。
SharedPreferences sp = getSharedPreferences("config", MODE_PRIVATE);
sp.edit().putString("token", token).apply();
说明:高性能列表组件,通过ViewHolder重用布局,配合LayoutManager和Adapter使用。
RecyclerView rv = findViewById(R.id.rv);
rv.setLayoutManager(new LinearLayoutManager(this));
rv.setAdapter(myAdapter);
说明:Jetpack组件,ViewModel存储界面相关数据(配置更改不丢失),LiveData是可观察的数据持有者,感知生命周期。
public class MyViewModel extends ViewModel {
private MutableLiveData data = new MutableLiveData<>();
}
说明:帮助组件监听Activity/Fragment的生命周期状态,自动清理资源。
getLifecycle().addObserver(myObserver);