Member 14045850 Ответов: 1

У меня есть вопрос связанный с моим заданием java пожалуйста ответьте если это возможно


Create an abstract class Student From this class, derive 2 subclasses Fulltime Student and Part time Student The Student class has the following attributes: A student number and a date of birth The Student class has the following methods: O A default constructor and an overloaded constructor with 2 arguments Set and get methods Abstract methods setValue and getValue The Full time Student class has the following attributes Major subject - String object The Full Time Student class has the following methods o A default constructor and an overloaded constructor with 3 arguments Overridden methods-setValue and getValue for the subject The Part time Student class the following attributes: Elective Course String object The Part time Student class has the following methods: o A default constructor and an overloaded constructor with 3 arguments o Overridden methods setValue and getValue for the elective course Write a main class to test each of these classes. In your main method create an array of 4 Student objects instantiate the first and second element with the Full Time Student class instantiate the third and fourth element with the Part time Student class The first element should use values from the overloaded constructor he second element should use values from the set methods. the third element should use values from the default constructor e fourth element should use values from the set methods





Thats the instructions and im lost on making the array part, I would extremely grateful for anyone who can help me with thanks in advance

What I have tried:

<pre>
public abstract class TestYongo {
	
	public int number;
	public int dob;
	
	public TestYongo()
	{
		number=0;
		dob=0;
	}
	public TestYongo(int n,int d)
	{
		number=n;
		dob=d;
	}
	public void setnumber(int n)
	{
		number=n;
	}
	public void setdob(int d)
	{
		dob=d;
	}
	public int getNumber()
	{
		return number;
	}
	public int getDOB()
	{
		return dob;
	}
	public abstract void setValue();
	public abstract String getValue();
	
	

}



public abstract class FulltimeStudent extends TestYongo {
	
	public String subject;
	public FulltimeStudent(String s)
	{
		subject=s;
	}
	public void setValue(String s)
	{
		subject=s;
	}
	public String getValue()
	{
		return subject;
	}
}


public abstract class ParttimeStudent extends TestYongo {
	
	public String psubject;
	public ParttimeStudent(String s)
	{
		psubject=s;
	}
	public void setValue(String s)
	{
		psubject=s;
	}
	public String getValue()
	{
		return psubject;
	}

}
<pre>
public class Test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		TestYongo t[]=new TestYongo[4];
		
		for(int i=0; i<4;i++)
		{
			t[i]=new TestYongo();
		}
	}

}

1 Ответов

Рейтинг:
1

OriginalGriff

Цитата:
шляпы инструкции и я потерял на создании части массива

Все очень просто. Просто прочитайте инструкцию:
Цитата:
В методе Main создать массив из 4-х объектов Универсиады
И читай свои заметки по курсу.
Создание массива состоит из нескольких битов:
Class[] Variable = new Class[Count];
  ^  ^     ^        ^    ^     ^
  |  |     |        |    |     |
  |  |     |        |    |     Number of elements in the array
  |  |     |        |    Type of the elements in the array
  |  |     |        Indicates a new object to be constructed on the heap
  |  |     Name of variable to hold the array
  |  Indicates it's an array of Class objects
  Type of objects the array can hold.

Ваши инструкции запрашивают "массив из 4 объектов студента" , так что вам нужно:
Student[] MyArray = new Student[4];
Обратите внимание, что создание массива не создает объекты в нем: вам нужно будет использовать отдельные объекты. new Student и-или new PartTimeStudent для каждого фактического элемента в массиве.


Member 14045850

верно но когда я действительно попробовал это сделать он не позволил мне создать экземпляр массива

OriginalGriff

И какой код вы использовали, и что именно в нем говорилось?
Скопируйте и вставьте свой код, а также сообщение об ошибке.

Member 14045850

тест открытый класс {

публичный статический пустота главный(строка[] аргументы) {
// Todo автоматически сгенерированные заглушки метода
Студент n[]=новый студент[4];
for(int i=0;i<4;i++)
{
n[i]=новый студент();
}
n[0]=FulltimeStudent();
}

}
сообщение об ошибке: несоответствие типа: не удается преобразовать Fulltimestudent в student

OriginalGriff

Это потому что вы не следовали инструкциям в своем домашнем задании:
"Создать абстрактный класс student от этого класса, получают 2 подклассов студент на полный рабочий день и подработка для студента "
Если вы не производите два подчиненных класса от основного, вы не можете "делиться" его атрибутами!

Задумайтесь на мгновение о машинах: "Форд" - это машина, "Мерседес" - это машина. Если вы можете управлять автомобилем, вы можете управлять либо Ford, либо Mercedes, потому что оба класса происходят от Car. А в классе Ford могут быть разные модели: Fiesta, Focus, Mustang. Но здесь нет ни "Мерседеса-Мустанга", ни "Форда А-класса"!

Выведите свой класс FullTimeStudent из Student, и ошибка исчезнет.

Member 14045850

На самом деле он не сохранился, поэтому он просто показывал ошибку, поэтому теперь я хочу установить значения для переменных в каждом подклассе, как бы я это сделал

OriginalGriff

Возможно, если вы объясните более подробно, я мог бы помочь - Помните, что мы не можем видеть ваш экран, получить доступ к вашему жесткому диску или прочитать ваши мысли - мы получаем только то, что вы печатаете для работы. И если вы экономите на печатании, я вас не понимаю! :смеяться: