java中“==”和equals()的区别(随堂笔记)

== 的使用
  • == 是运算符
  • 可以使用在基本类型变量和引用类型变量中;
  • 如果比较的是基本数据类型变量,比较两个变量保存的数据是否相等。(不一定类型要相同)
  • 如果比较的是引用数据类型变量,比较两个对象的地址值是否相同,即两个引用是否指向一个对象实体;
equals()方法的使用
  • equals()是一个方法,而非运算符;

  • 只适用于引用数据类型;

  • //Object类中equals()的定义:
    public boolean equals (Object obj){
    		return (this == obj);
    }
    //说明:Object类中定义的equals()和==的作用是相同的,比较两个对象的地址是否相同,即两个引用是否指向
  • 像String、Date、File、包装类等都重写了Object类中的equals()方法,重写以后,比较的不是两个引用的地址是否相同,而是比较两个对象的“实体内容”是否相同,即两个引用是否指向同一个对象实体;

  • 通常情况下,我们自定义的类如果使用的是equals()的话,也通常是比较两个对象的"实体内容" 是否相同。那么,我们需要对Object类中的equals()进行重写;

    ==和equals的区别
  • ==既可以比较基本类型也可以比较引用类型,对于基本类型就是比较值,对于引用类型就是比较内存地址;

  • equals的话,它是属于java.lang.Object类里面的方法,如果该方法没有被重写过默认也是==;我们可以看到String等类的equals方法是被重写过的,而且String类在日常开发中用的比较多,久而久之,形成了equals是比较值的错误观点;

  • 具体要看自定义类里面有没有重写Object的equals方法来判断;

  • 通常情况下,重写equals方法,会比较类中的相应属性是否都相等;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个简单的示例,实现了关于古诗的增、删、查、改功能的笔记本功能。 1. 布局文件 在布局文件,我们需要添加一些控件,包括输入框、按钮等。 activity_main.xml: ```xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:id="@+id/text_title" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="古诗笔记本" android:textSize="24sp" android:gravity="center"/> <EditText android:id="@+id/edit_title" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入标题"/> <EditText android:id="@+id/edit_content" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入内容"/> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:id="@+id/btn_add" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="添加"/> <Button android:id="@+id/btn_query" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="查询"/> <Button android:id="@+id/btn_update" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="修改"/> <Button android:id="@+id/btn_delete" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="删除"/> </LinearLayout> <ListView android:id="@+id/listview" android:layout_width="match_parent" android:layout_height="match_parent"/> </LinearLayout> ``` 2. Java文件 在Java文件,我们需要定义一些变量和方法,包括数据库的创建和更新、增删查改等操作。 MainActivity.java: ```java import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.Button; import android.widget.EditText; import android.widget.ListView; import android.widget.SimpleCursorAdapter; import android.widget.TextView; import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { private EditText mEditTitle; private EditText mEditContent; private Button mBtnAdd; private Button mBtnQuery; private Button mBtnUpdate; private Button mBtnDelete; private ListView mListView; private SQLiteDatabase mDatabase; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 初始化控件 mEditTitle = findViewById(R.id.edit_title); mEditContent = findViewById(R.id.edit_content); mBtnAdd = findViewById(R.id.btn_add); mBtnQuery = findViewById(R.id.btn_query); mBtnUpdate = findViewById(R.id.btn_update); mBtnDelete = findViewById(R.id.btn_delete); mListView = findViewById(R.id.listview); // 创建或打开数据库 mDatabase = new NoteDatabaseHelper(this).getWritableDatabase(); // 添加按钮的点击事件 mBtnAdd.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String title = mEditTitle.getText().toString(); String content = mEditContent.getText().toString(); if (title.equals("") || content.equals("")) { Toast.makeText(MainActivity.this, "请输入标题和内容", Toast.LENGTH_SHORT).show(); } else { ContentValues values = new ContentValues(); values.put(NoteDatabaseHelper.TITLE, title); values.put(NoteDatabaseHelper.CONTENT, content); mDatabase.insert(NoteDatabaseHelper.TABLE_NAME, null, values); Toast.makeText(MainActivity.this, "添加成功", Toast.LENGTH_SHORT).show(); mEditTitle.setText(""); mEditContent.setText(""); } } }); // 查询按钮的点击事件 mBtnQuery.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Cursor cursor = mDatabase.query(NoteDatabaseHelper.TABLE_NAME, null, null, null, null, null, null); SimpleCursorAdapter adapter = new SimpleCursorAdapter(MainActivity.this, R.layout.note_list_item, cursor, new String[]{NoteDatabaseHelper.TITLE, NoteDatabaseHelper.CONTENT}, new int[]{R.id.text_title, R.id.text_content}, 0); mListView.setAdapter(adapter); } }); // 列表项的点击事件 mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Cursor cursor = (Cursor) parent.getItemAtPosition(position); String title = cursor.getString(cursor.getColumnIndex(NoteDatabaseHelper.TITLE)); String content = cursor.getString(cursor.getColumnIndex(NoteDatabaseHelper.CONTENT)); mEditTitle.setText(title); mEditContent.setText(content); } }); // 修改按钮的点击事件 mBtnUpdate.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String title = mEditTitle.getText().toString(); String content = mEditContent.getText().toString(); if (title.equals("") || content.equals("")) { Toast.makeText(MainActivity.this, "请选择要修改的笔记", Toast.LENGTH_SHORT).show(); } else { ContentValues values = new ContentValues(); values.put(NoteDatabaseHelper.TITLE, title); values.put(NoteDatabaseHelper.CONTENT, content); mDatabase.update(NoteDatabaseHelper.TABLE_NAME, values, NoteDatabaseHelper.TITLE + "=?", new String[]{title}); Toast.makeText(MainActivity.this, "修改成功", Toast.LENGTH_SHORT).show(); mEditTitle.setText(""); mEditContent.setText(""); } } }); // 删除按钮的点击事件 mBtnDelete.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String title = mEditTitle.getText().toString(); if (title.equals("")) { Toast.makeText(MainActivity.this, "请选择要删除的笔记", Toast.LENGTH_SHORT).show(); } else { mDatabase.delete(NoteDatabaseHelper.TABLE_NAME, NoteDatabaseHelper.TITLE + "=?", new String[]{title}); Toast.makeText(MainActivity.this, "删除成功", Toast.LENGTH_SHORT).show(); mEditTitle.setText(""); mEditContent.setText(""); } } }); } // 数据库帮助类 private static class NoteDatabaseHelper extends SQLiteOpenHelper { private static final String DATABASE_NAME = "notes.db"; // 数据库名称 private static final int DATABASE_VERSION = 1; // 数据库版本号 private static final String TABLE_NAME = "notes"; // 表名称 private static final String ID = "_id"; // 主键 private static final String TITLE = "title"; // 标题 private static final String CONTENT = "content"; // 内容 NoteDatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { String sql = "CREATE TABLE " + TABLE_NAME + " (" + ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + TITLE + " TEXT, " + CONTENT + " TEXT)"; db.execSQL(sql); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME); onCreate(db); } } } ``` 3. 列表项布局文件 在列表项布局文件,我们需要添加一些控件,用于显示笔记的标题和内容。 note_list_item.xml: ```xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:padding="16dp"> <TextView android:id="@+id/text_title" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="18sp" android:textColor="@color/colorPrimary"/> <TextView android:id="@+id/text_content" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="14sp"/> </LinearLayout> ``` 以上就是关于古诗的增、删、查、改功能的笔记本功能的示例,希望能对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值