gpt4 book ai didi

java - 对于不返回内容的方法是否强制使用 void ?

转载 作者:行者123 更新时间:2023-12-01 18:00:06 28 4
gpt4 key购买 nike

我在某处看到了这段代码:

public class MyDatabaseHelper extends SQLiteOpenHelper {

private static final String DATABASE_NAME = "DBName";

private static final int DATABASE_VERSION = 2;

// Database creation sql statement
private static final String DATABASE_CREATE = "create table MyEmployees
( _id integer primary key,name text not null);";

public MyDatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

// Method is called during creation of the database
@Override
public void onCreate(SQLiteDatabase database) {
database.execSQL(DATABASE_CREATE);
}

// Method is called during an upgrade of the database,
@Override
public void onUpgrade(SQLiteDatabase database,int oldVersion,int newVersion){
Log.w(MyDatabaseHelper.class.getName(),
"Upgrading database from version " + oldVersion + " to "
+ newVersion + ", which will destroy all old data");
database.execSQL("DROP TABLE IF EXISTS MyEmployees");
onCreate(database);
}
}

如您所见,MyDatabaseHelper 方法没有返回任何内容(不返回任何内容)。那么为什么作者不使用 void 呢?

最佳答案

它称为构造函数,用于在创建时初始化对象(在本例中,您希望使用 Context 初始化数据库助手)。请参阅https://docs.oracle.com/javase/tutorial/java/javaOO/constructors.html

帮助您理解构造函数的更好示例:

public class Person {

public String name;
public int age;

public Person(String name, int age) {
this.name = name;
this.age = age;
}

@Override
public String toString() {
return String.format("My name is %s and I am %d years old", name, age);
}
}


public class Main {
public static void main(String[] args) {
Person me = new Person("Niels", 20);
System.out.println(me);
}
}

当您执行上述代码时,您将在控制台中看到一条消息:我的名字是 Niels,我今年 20 岁

如您所见,我们创建了一个 Person 对象,该对象采用 nameage 参数。

关于java - 对于不返回内容的方法是否强制使用 void ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41694801/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com