В классе User добавить метод setContacts с параметрами: String email, String phoneNumber. В этом методе должен создаватся объект класса Contacts, и присваиватся в поле contacts класса User. Я создаю объект в методе но он ругает и не знаю что делать подскажите плз.
public class User {
String name;
int age;
int gender;
Contacts contacts;
public User(String name, int age, int gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
public User(String name, int age, int gender, Contacts contacts) {
this.name = name;
this.age = age;
this.gender = gender;
this.contacts = contacts;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getGender() {
return gender;
}
public void setGender(int gender) {
this.gender = gender;
}
public Contacts getContacts() {
return contacts;
}
public void setContacts(Contacts contacts) {
this.contacts = contacts;
}
@Override
public String toString() {
return "User{" + "name=" + name + ", age=" + age + ", gender=" + gender + ", contacts=" + contacts + '}';
}
private static class GenderFlags {
final int NOT_SPECIFIED = 0;
final int MALE = 1;
final int FEMALE = 2;
}
class Contacts {
String email;
String phoneNumber;
public Contacts(String email, String phoneNumber) {
this.email = email;
this.phoneNumber = phoneNumber;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
@Override
public String toString() {
return "Contacts{" + "email=" + email + ", phoneNumber=" + phoneNumber + '}';
}
}
public void setContacts(String email, String phoneNumber){
Contacts cs = new Contacts();
}
}
ты забыл присвоить локальную переменную в поле класса
public void setContacts(String email, String phoneNumber){
Contacts cs = new Contacts(email, phoneNumber);
setContacts(cs);
}
тут я воспользовался уже реализованным методом - может быть, ты захочешь еще что-то там сделать
Уберете class qew с main методом и восстановите модификаторы доступа к классам, а так все работает, метод setContacts с параметрами в User , который принимает 2 значения и создает новый объект, который присваивается полю. Если я ,конечно, правильно понял реализацию, так как в вашем выложенном коде был не корректно расположены символ }.
class qew{
public static void main(String[] args){
User u = new User("Name",92,1);
u.setContacts("asdasdad@yandex.ru","99938492");
Contacts c = u.getContacts();
System.out.println(c.getEmail() + " - Email " + c.getPhoneNumber() + " Phone Contacts ");
}
}
class User {
String name;
int age;
int gender;
Contacts contacts;
public User(String name, int age, int gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
public User(String name, int age, int gender, Contacts contacts) {
this.name = name;
this.age = age;
this.gender = gender;
this.contacts = contacts;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getGender() {
return gender;
}
public void setGender(int gender) {
this.gender = gender;
}
public Contacts getContacts() {
return contacts;
}
public void setContacts(Contacts contacts) {
this.contacts = contacts;
}
// setContacts !!!
public void setContacts(String email, String phoneNumber){
this.contacts = new Contacts(email,phoneNumber);
}
@Override
public String toString() {
return "User{" + "name=" + name + ", age=" + age + ", gender=" + gender + ", contacts=" + contacts + '}';
}
}
class GenderFlags {
final int NOT_SPECIFIED = 0;
final int MALE = 1;
final int FEMALE = 2;
}
class Contacts {
String email;
String phoneNumber;
public Contacts(String email, String phoneNumber) {
this.email = email;
this.phoneNumber = phoneNumber;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
@Override
public String toString() {
return "Contacts{" + "email=" + email + ", phoneNumber=" + phoneNumber + '}';
}
}
Продвижение своими сайтами как стратегия роста и независимости