Задачи OOP JS
1. Создайте объект - Automobile со свойствами color (цвет), model (модель), year (год выпуска), manufact (производитель) Напишите фукнцию autoInfo, позволяющий узнать модель, год выпуска, цвет и производителя автомобиля.
2. Отдельно от создания объекта добавьте к нему свойства: name (имя хозяина автомобиля) и experience (водительский стаж). Напишите фукнцию driverInfo, позволяющий узнать имя и стаж хозяина автомобиля. Вывести в браузер объект Automobile со всеми свойствами и их значениями.
3. Напишите функцию, которая проверяет год выпуска автомобиля с значением, введенным пользователем. Если он совпадает, то вывести на экран «Подходит», иначе вывести «Жаль» .
4. Напишите функцию, которая заменяет цвет машины на введенный пользователем . Вывести в браузер объект Automobile со всеми свойствами и их значениями.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Automobile</title>
<style type="text/css">
p{
color: red;
font-family: arial;
font-size: 27px;
}
b{
color: green;
font-family: sans-serif;
font-size: 27px;
}
</style>
</head>
<body>
<script type="text/javascript">
/*Class Automobile*/
class Automobile{ // Demonstration class Automobile
constructor(color, model, year, manufact){ // CONSTRUCTOR
this.color = color;
this.model = model;
this.year = year;
this.manufact = manufact;
}
checkYear(year){
if(this.year == year){ document.write("<p>"+"Подходит"+"</p>"); return true; }
else { document.write("<p>"+"Жаль"+"</p>"); return false; }
}
setColor(color){ this.color = color; }
getColor(){ return this.color; }
setName(name){ this.name = name; }
getName(){ return this.name; }
setExperience(experience){ this.experience = experience; }
getExperience(){ return this.experience; }
driverInfo(){
document.write("<p>"+"Name = "+this.name+"<br>"+"Experience = "+this.experience+"<br>"+"</p>");
}
autoinfo(){ // SHOW
document.write("<p>"+"Color = "+this.color+"<br>"+"Model = "+this.model+"<br>"+"Year = "+this.year+"<br>"+"Manufact = "+this.manufact+"<br>"+"</p>");
}
}
//********************************************************************
//Object Audi
//********************************************************************
var Audi = new Automobile ("Red", "Audi", "2019", "Germany");
Audi.autoinfo();
Audi.setName("Igor");
Audi.setExperience("10");
Audi.driverInfo();
var audi_Name = Audi.getName();
var audi_Experience = Audi.getExperience();
document.write<b>"+"Audi name = "+audi_Name+"<br>"+"Audi Experience = "+audi_Experience+"<br><br>"+"</b>")
for(var key in Audi)
document.write("<b>"+"Key -> "+key+" = "+Audi[key]+"<br>"+"</b>")
var year = prompt("Enter year: ");
Audi.checkYear(year);
var color = prompt("Enter color: ");
Audi.setColor(color);
for(var key in Audi)
document.write("<b>"+"Key -> "+key+" = "+Audi[key]+"<br>"+"</b>")
//********************************************************************
//Object Ford
//********************************************************************
var Ford = new Automobile ("Yellow", "Ford", "1997", "America");
Ford.autoinfo();
Ford.setName("Vladimir");
Ford.setExperience("25");
Ford.driverInfo();
var ford_Name = Ford.getName();
var ford_Experience = Ford.getExperience();
document.write("<b>"+"Ford name = "+ford_Name+"<br>"+"Ford Experience = "+ford_Experience+"<br><br>"+"</b>")
for(var key in Ford)
document.write("<b>"+"Key -> "+key+" = "+Ford[key]+"<br>"+"</b>")
var year = prompt("Enter year: ");
Ford.checkYear(year);
var color = prompt("Enter color: ");
Ford.setColor(color);
for(var key in Ford)
document.write("<b>"+"Key -> "+key+" = "+Ford[key]+"<br>"+"</b>")
//********************************************************************
//End
//********************************************************************
</script>
</body>
</html>
Результат
Создайте эмулятор кофемашины!
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>CoffeeMachine</title>
<style type="text/css">
b{
font-family: sans-serif;
font-weight: bolder;
color: red;
font-size: 27px;
}
</style>
</head>
<body>
<script type="text/javascript">
//****************************************************************
// Demonstration class Machine
//****************************************************************
class Machine{
constructor(enabled) { this.enabled = enabled; };
enable(){ this.enabled = true; return this.enabled; }
disable(){ this.enabled = false; return this.enabled; }
}
class Fridge extends Machine{ // extends Machine
constructor(power){ // CONSTRUCTOR
super(power);
this.power = power;
if(power <= 100)
this.food = new Array(power);
else
alert("power MAX 100");
}
disable_(){
if(this.food.length > 0){
alert("Not Empty");
}
else{
alert("Empty");
}
}
addFood(item) {
if(this.enabled == true)
for (var i = 0; i < arguments.length; i++)
this.food[i] = arguments[i];
else
alert("Fridge OFF!");
this.disable_(); // EMPTY || NOT EMPTY
}
getFood(){
var arr = new Array(this.power);
for(var i = 0; i < arr.length; i++)
arr[i] = this.food[i];
return arr;
}
show(){
for (var i = 0; i < this.food.length; i++)
document.write("<b>"+this.food[i]+"</b>");
document.write("<br>");
}
}
var f = new Fridge(5);
/*DEMONSTRATION Polymorphism*/
f.enable(); // Inheritance ==>> Method disable() at class Machine
f.addFood(1, 2, 3, 4, 5, 7, 8, 9, 10);
f.show();
//-----------------------------------------
var f1 = new Fridge(2);
f1.enable();
f1.addFood(52, 855, 14);
f1.getFood();
f1.show();
f1.addFood(50, 252, 14);
//-----------------------------------------
f.show();
f1.show();
//-----------------------------------------
f.disable_();
//****************************************************************
// Demonstration class CoffeeMachine
//****************************************************************
class CoffeeMachine extends Machine{
constructor(waterAmount, power, capacity){
super(waterAmount, power, capacity);
this.waterAmount = waterAmount;
this.power = power;
this.capacity = capacity;
}
getBoilTime(){
return ((this.waterAmount * 4200) * 80) / this.power;
}
onReady(){
alert( 'Кофе готов!' );
}
run(enabled){
this.enabled = enabled;
if(this.enabled == true){
var time = this.getBoilTime();
this.setTimeout(time);
}
else
alert("Machine off");
}
setTimeout(BoilTime){
this.onReady();
}
clearTimeout(){
alert("STOP");
}
Stop(){
this.clearTimeout();
}
setWaterAmount(value){
if(value <= 1000)
this.waterAmount = value;
else
alert("error value very big");
}
getWaterAmount(){
return this.waterAmount;
}
getPower(){
return this.power;
}
}
var coffe = new CoffeeMachine(150, 25, 1000);
var on = coffe.disable(); // Inheritance ==>> Method disable() at class Machine
coffe.run(on);
coffe.Stop();
coffe.setWaterAmount(100);
var water = coffe.getWaterAmount();
document.write(water+"<br>");
var power = coffe.getPower();
document.write(power+"<br>");
</script>
</body>
</html>