Ищете некоторую помощь с java-кодом
У меня есть следующий код на C++, и я хочу написать его на Java
#include <iostream> #include <cstring> using namespace std; class MyClass { private: char *firstName; char *secondName; public: MyClass(const char *firstName, const char *secondName) { if (this->firstName != NULL) this->firstName = NULL; this->firstName = new char[strlen(firstName)+1]; strcpy(this->firstName, firstName); if (this->secondName != NULL) this->secondName = NULL; this->secondName = new char[strlen(secondName)+1]; strcpy(this->secondName, secondName); } ~MyClass() { if (firstName != NULL) delete firstName; firstName = NULL; if (secondName != NULL) delete secondName; secondName = NULL; } char *getFirstName() { return firstName; } char *getSecondName() { return secondName; } friend ostream& operator<< (ostream& out, MyClass &obj); friend istream& operator>> (istream& in, MyClass &obj); }; ostream &operator<< (ostream& out, MyClass &obj) { out << "\n First Name: " << obj.firstName << endl; out << "\n Second Name: " << obj.secondName << endl; return out; } istream& operator>> (istream& in, MyClass &obj) { char aux[20]; if (obj.firstName != NULL) delete[] obj.firstName; cout << "\n First Name: "; in >> aux; obj.firstName = new char[strlen(aux)+1]; strcpy(obj.firstName, aux); if (obj.secondName != NULL) delete[] obj.secondName; cout << "\n Second Name: "; in >> aux; obj.secondName = new char[strlen(aux)+1]; strcpy(obj.secondName, aux); return in; } int main() { MyClass obj("Dragu", "Stelian"); cout << "\n First Name: " << obj.getFirstName() << endl; cout << "\n Second Name: " << obj.getSecondName() << endl; cin >> obj; cout << obj; return 0; }
Я попытался написать приведенный выше код на Java
package myclass; import java.util.Scanner; class FirstClass { private char firstName[]; private char secondName[]; public FirstClass(char firstName[], char secondName[]) { this.firstName = firstName; this.secondName = secondName; } public char getFirstName() { return firstName; } public char getSecondName() { return secondName; } }; public class MyClass { public static void main(String[] args) { FirstClass obj = new FirstClass("Dragu", "Stelian"); Scanner input = new Scanner(System.in); System.out.print("Enter First Name: "); obj.firstName = input.nextLine(); System.out.print("Enter Second Name: "); obj.secondName = input.nextLine(); System.out.println("Name is: " +obj.firstName + " " +obj.secondName); } }
Что я уже пробовал:
Теперь, есть некоторые аспекты в Java.
1. Никаких указателей в Java, поэтому я использую переменные типа char.
2. в Java нет деструктора.
3. Методы getfirstname(), getSecondName() функция возвращает или возвращает массив типа char.
Итак, я получаю ошибку, когда пытаюсь вернуть массив char.
4. В C++ для ввода данных с клавиатуры и их отображения я использую перегрузку потоковых операторов.
В Java нет перегрузки операторов.
Я думаю, что это проще, если я использую строковые данные.
Пожалуйста, помогите мне!