Javascript-форум (https://javascript.ru/forum/)
-   Работа (https://javascript.ru/forum/job/)
-   -   JavaScript. Создание собственных объектов (https://javascript.ru/forum/job/27199-javascript-sozdanie-sobstvennykh-obektov.html)

finner 05.04.2012 13:03

JavaScript. Создание собственных объектов
 
Нужно сделать такое задание:

Создать класс Студент, имеющий имя(указатель на строку), курс и идентификационный номер. Определить конструктор, деструктор и функцию печати. Создать производный класс public - производный класс - студент дипломник , содержащий тему диплома. Определить конструкторы по умолчанию с разным числом параметров, деструктор, функцию вывода. Определить функцию изменения названия диплома и идентификационного номера.

Строк выполнения: Нужно выполнить сегодня.
Оплата: Стоимость работы сам определить не могу. Все предложения по цене и способам оплаты рассматриваются и обсуждаются до начала работы.

Помогите пожалуйста!

GuardCat 05.04.2012 17:37

Вот на скорую руку. Плюс не знаю как в js делать деструктор. Если вдруг подойдёт и захотите заплатить (удивлюсь, поскольку не уверен что это то что нужно, плюс нет деструктора), пишите в личку.
function Student(name, level, id) {
	//Определяем значения по умолчанию.
	//Оптимальнее было бы заложить значения по умолчанию в прототип, но так сложнее будет печатать поля в классе-потомке.
	this.name = name || "no named";
	this.level = level || 1;
	this.id = id || 0;
}

Student.prototype = {

	//Определяем методы, общие для всех экземпляров класса
	show: function() { // Печать полей класса
		var list = [ ], x;
		for(x in this) {
			if(this.hasOwnProperty(x)){
				list.push(x + ": " + this[x]);
			}
		}
		alert(list.join("\n"));
	},
	
	changeId: function (newId){//Функция смены id
		if(newId) this.id = newId;
		return newId
	},

	constructor: Student
};

function SuperStudent(name, level, id, diplom) {
	this.name = name || "no named";
	this.level = level || 1;
	this.id = id || 0;
	this.diplom = diplom || "";
}

SuperStudent.prototype = new Student(); // Типа унаследовали

SuperStudent.prototype.changeDiplom = function(theme) {
	if(theme) this.diplom = theme;
	return this.diplom;
} // Определили функцию смены темы диплома

SuperStudent.prototype.constructor = SuperStudent;

s = new Student("Иванов Сергей Петрович", 2, 123);// Создали студента
s.show();
s.changeId(124);// Изменили id
s.show();

//Создадим дипломника
ss = new SuperStudent("Графинов Армен Викторович", 6, 125, "Методика детектирования взаимосвязи между распилом бюджетных средств и глобальным потеплением климата");
ss.show();
//Cменим ему id и тему диплома
ss.changeDiplom("Почём нынче тепло");
ss.changeId("0");
ss.show();

trikadin 05.04.2012 17:50

Цитата:

Сообщение от GuardCat
Плюс не знаю как в js делать деструктор

Никак.

Товарищ, вы форумом не ошиблись? Это по JavaScript, а вам, по-моему, нужно на форум по C++.


Часовой пояс GMT +3, время: 22:42.