Создайте класс Department со следующими закрытыми переменными-членами
int did
String dname
Включите соответствующие методы получения и установки в класс отдела.
Создайте класс Student со следующими закрытыми переменными-членами.
int sid
String sname
Department department
Включите соответствующие методы получения и установки в класс Student.
Создайте класс TestMain с основным методом.
В дополнение к основному методу создайте метод
public static Student createStudent() - All input as shown in the sample input should be got in this method. Set the values to the Student object and return that object
Примечание. В основном методе вызовите метод createStudent и распечатайте сведения об объекте, возвращенном этим методом.
Я уже пытался создать новый объект, используя имя отдела, но не могу получить доступ к методам
import java.util.Scanner;
public class TestMain {
public static Student student;
public static Department department;
public static void main(String args[]) {
createStudent();
System.out.println("Department id:" + department.getDid());
System.out.println("Department name:" + department.getDname());
System.out.println("Student id:" + student.getSid());
System.out.println("Student name:" + student.getSname());
}
public static Student createStudent() {
Scanner sc = new Scanner(System.in);
student = new Student();
department = new Department();
System.out.println("Enter the Department id:");
department.setDid(sc.nextInt());
System.out.println("Enter the Department name:");
department.setDname(sc.next());
System.out.println("Enter the Student id:");
student.setSid(sc.nextInt());
System.out.println("Enter the Student name:");
student.setSname(sc.next());
return student;
}
}
public class Student {
private int sid;
private String sname;
private Department department;
public int getSid() {
return sid;
}
public void setSid(int sid) {
this.sid = sid;
}
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
public Department getDepartment() {
return department;
}
public void setDepartment(Department department) {
this.department = department;
}
}
public class Department {
private int did;
private String dname;
public int getDid() {
return did;
}
public void setDid(int did) {
this.did = did;
}
public String getDname() {
return dname;
}
public void setDname(String dname) {
this.dname = dname;
}
}
Пример ввода 1:
Enter the Department id:
100
Enter the Department name:
Computerscience
Enter the Student id:
123
Enter the Student name:
Sudha
Пример вывода 1:
Department id:100
Department name:Computerscience
Student id:123
Student name:sudha




вам не хватает:
student.setDepartment(department);
после этого вы можете сделать:
student.getDepartment().getSname();
import java.util.*;
public class TestMain
{
public static Department d1;
public static Student s1;
public static Student createStudent()
{
Scanner sc=new Scanner(System.in);
Student s1=new Student();
Department d1=new Department();
System.out.println("Enter the Department id:");
int did=sc.nextInt();
sc.nextLine();
System.out.println("Enter the Department name:");
String dname=sc.nextLine();
System.out.println("Enter the Student id:");
int sid=sc.nextInt();
sc.nextLine();
System.out.println("Enter the Student name:");
String sname=sc.nextLine();
d1.setDid(did);
d1.setDname(dname);
s1.setSid(sid);
s1.setSname(sname);
s1.setDepartment(d1);
return s1;
}
public static void main(String[] args)
{
s1=TestMain.createStudent();
System.out.println("Department id:"+d1.getDid());
System.out.println("Department name:"+d1.getDname());
System.out.println("Student id:"+s1.getSid());
System.out.println("Student name:"+s1.getSname());
}
}
public static void main(String args[]) throws NumberFormatException, IOException
{
s1 = createStudent();
d1 = s1.getDepartment(); // THIS WAS MISSING IN ANSWER 2
System.out.println("Department id:"+d1.getDid());
System.out.println("Department name:"+d1.getDname());
System.out.println("Student id:"+s1.getSid());
System.out.println("Student name:"+s1.getSname());
}
В этом случае необходимо сделать 2 вещи.
При «установке» значений для всех идентификаторов и имен после того, как были установлены did и dname, чтобы получить к ним доступ через объект ученика, вы должны «установить» комбинацию did & dname для объекта отдела внутри класса ученика.
department.setDid(did);
department.setDname(dname);
student.setSid(sid);
student.setSname(sname);
student.setDepartment(department);
Кроме того, теперь, когда это установлено с правильными значениями, перед операторами Sysout в Main вы должны создать объект для класса Department. И данные для этого поступают путем вызова getDepartment() в студенческом классе (помните, что эта функция возвращает объект отдела).
public static void main(String[] args) {
// TODO Auto-generated method stub
Student student = createStudent();
Department department = student.getDepartment();
System.out.printf("Department id:%d",department.getDid()).println();
System.out.printf("Department name:%s",department.getDname()).println();
System.out.printf("Student id:%d",student.getSid()).println();
System.out.printf("Student name:%s",student.getSname()).println();
}
Если вы получаете сообщение об ошибке, опубликуйте его (и укажите, к какой строке (строкам) оно относится, поскольку мы не всегда можем сказать, каковы номера строк).