用java写abs->studentarray[abs->showsize()].setName(name);
时间: 2024-03-05 22:49:45 浏览: 100
这段代码是在 C 语言中使用指针的方式来访问结构体中的元素,Java 中没有指针这个概念,但是可以使用引用来实现类似的操作。
假设 `abs` 是一个 `AddressBooks` 类型的对象,`studentarray` 是 `Student` 类型的数组,`showsize()` 方法返回通讯录中已经添加的学生数量。那么在 Java 中,可以使用以下代码来实现 `setName()` 方法的调用:
```java
abs.getStudentArray()[abs.getShowSize()].setName(name);
```
其中,`getStudentArray()` 方法返回 `AddressBooks` 对象中的 `Student` 数组,`getShowSize()` 方法返回已经添加的学生数量。这段代码的意思是将 `name` 设置为通讯录中最后一个学生的姓名。注意,`setName()` 方法必须在 `Student` 类中定义。
相关问题
void addPerson(Addressbooks* abs) { //判断电话本是否满了 if (abs->m_Size == MAX) { cout << "通讯录已满,无法添加" << endl; return; } else { //姓名 string name; cout << "请输入姓名:" << endl; cin >> name; abs->personArray[abs->m_Size].m_Name = name; cout << "请输入性别:" << endl; cout << "1 -- 男" << endl; cout << "2 -- 女" << endl; //性别 int sex = 0; while (true) { cin >> sex; if (sex == 1 || sex == 2) { abs->personArray[abs->m_Size].m_Sex = sex; break; } cout << "输入有误,请重新输入"; } //年龄 cout << "请输入年龄:" << endl; int age = 0; cin >> age; abs->Person personArray[abs->m_Size].m_Age = age; //联系电话 cout << "请输入联系电话:" << endl; string phone = ""; cin >> phone; abs->personArray[abs->m_Size].m_Phone = phone; //家庭住址 cout << "请输入家庭住址:" << endl; string address; cin >> address; abs->personArray[abs->m_Size].m_Addr = address; //更新通讯录人数 abs->m_Size++; cout << "添加成功" << endl; system("pause"); system("cls"); } }
这段代码是一个通讯录程序中的添加联系人函数。函数的作用是向通讯录中添加一个新的联系人信息。函数首先检查通讯录是否已满,如果已满则输出提示信息并返回。如果通讯录未满,则依次输入联系人的姓名、性别、年龄、电话和地址,并将这些信息保存到通讯录中。最后更新通讯录的人数,并输出添加成功的提示信息。整个过程结束后,会暂停程序运行并清空屏幕。
abs->personArray[abs->m_Size].m_Name = name;显示abs出错
在这段代码中,`abs` 是一个指向 `Addressbooks` 类型的指针。当使用指针访问成员变量时,需要使用箭头操作符(`->`)而不是点操作符(`.`)。
因此,正确的写法是:
```cpp
abs->personArray[abs->m_Size].m_Name = name;
```
请注意修正以上代码中的错误,并确保在使用指针访问成员变量时使用箭头操作符。
阅读全文