Skip to content

Instantly share code, notes, and snippets.

@Shtaba09
Created October 31, 2018 21:09
Show Gist options
  • Save Shtaba09/549d10287374a705259f6023f2ae27f8 to your computer and use it in GitHub Desktop.
Save Shtaba09/549d10287374a705259f6023f2ae27f8 to your computer and use it in GitHub Desktop.
Зделал незнаю почему но правильно ... Т-сказать вывод играет роль
package com.javarush.task.task24.task2409;
public interface Item {
int getId();
double getPrice();
String getTM();
}
package com.javarush.task.task24.task2409;
public interface Jeans extends Item {
int getLength();
int getSize();
}
package com.javarush.task.task24.task2409;
import java.util.List;
/*
Интернет-магазин продажи джинсов
*/
public class Solution {
public static List<Jeans> allJeans = Util.getAllJeans();
public static void main(String[] args) {
for (Jeans jeans : allJeans) {
System.out.println(jeans);
}
}
}
package com.javarush.task.task24.task2409;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
public class Util {
protected static Collection<Object[]> jeansArray = new LinkedList<>();
static {
jeansArray.add(new Object[]{1, Company.Levis, 34, 6, 150.0});
jeansArray.add(new Object[]{2, Company.Denim, 35, 8, 154.0});
jeansArray.add(new Object[]{3, Company.Colins, 32, 6, 120.0});
jeansArray.add(new Object[]{4, Company.CalvinKleinJeans, 31, 8, 125.0});
}
public static List<Jeans> getAllJeans() {
abstract class AbstractJeans implements Jeans{
int id;
int length;
int size;
double price;
public AbstractJeans(int id, int length, int size, double price) {
this.id=id;
this.length=length;
this.size=size;
this.price=price;
}
protected AbstractJeans() {
}
@Override
public int getLength() {
return length;
}
@Override
public int getSize() {
return 0;
}
@Override
public int getId() {
return id;
}
@Override
public double getPrice() {
return price ;
}
@Override
public String getTM() {
return getClass().getSimpleName();
}
@Override
public String toString() {
return getTM()+"{id="+getId()+", length="+getLength()+", size="+getSize()+", price="+getPrice()+"}";
}
}
class Levis extends AbstractJeans{
public Levis(int id, int length, int size, double price) {
this.id=id;
this.length=length;
this.price=price;
this.size=size;
}
}
class Denim extends AbstractJeans{
public Denim(int id, int length, int size, double price) {
this.id=id;
this.length=length;
this.price=price;
this.size=size;
}
}
//add your code here
List<Jeans> allJeans = new LinkedList<>();
for (Object[] obj : getJeansArray()) {
int id = (int) obj[0];
final Company company = (Company ) obj[1];
int length = (int) obj[2];
int size = (int) obj[3];
double price = (double) obj[4];
Jeans jeans = null;
if (Company.Levis == company) {
jeans = new Levis(id, length, size, price);
} else
if (Company.Denim == company) {
jeans = new Denim(id, length, size, price);
} else {
jeans = new AbstractJeans(id, length, size, price) {
public String getTM() {
return company.fullName;
}
};
}
allJeans.add(jeans);
}
return allJeans;
}
public static Collection<Object[]> getJeansArray() {
return jeansArray;
}
static enum Company {
Levis ("Levi's"),
Denim("Denim"),
Colins("COLIN'S"),
CalvinKleinJeans("Calvin Klein Jeans");
final String fullName;
Company(String name) {
this.fullName = name;
}
}
}
taskKey="com.javarush.task.task24.task2409"
Интернет-магазин продажи джинсов
1. Создай 2 интерфейса в отдельных файлах:
1.1) Item с методами int getId(), double getPrice(), String getTM()
1.2) Jeans extends Item с методами int getLength() и int getSize()
2. В классе Util в методе getAllJeans добавь пропущенную часть java-кода:
2.1) разберись в том, что уже есть в методе getAllJeans класса Util
2.2) создай абстрактный class AbstractJeans от интерфейса Jeans с одним абстрактным методом, реализуй остальные методы
2.3) создай классы Levis и Denim от AbstractJeans, реализуй оставшийся метод
2.4) в классе AbstractJeans реализуй метод toString() (можешь воспользоваться Alt+Insert -> toString())
2.5) метод toString класса AbstractJeans должен начинаться с имени подкласса, например, Levis{id=1, length=34, size=6, price=150.0}
Требования:
1. Интерфейс Item должен быть создан в отдельном файле.
2. Интерфейс Jeans должен расширять интерфейс Item и быть создан в отдельном файле.
3. В интерфейсе Item должны присутствовать все методы перечисленные в условии.
4. В классе Jeans должны присутствовать все методы перечисленные в условии.
5. В методе getAllJeans класса Util должен быть создан локальный абстрактный класс AbstractJeans, поддерживающий интерфейс Jeans.
6. В методе getAllJeans класса Util должен быть создан локальный класс Levis, унаследованный от класса AbstractJeans.
7. В методе getAllJeans класса Util должен быть создан локальный класс Denim, унаследованный от класса AbstractJeans.
8. В классе AbstractJeans должен быть реализован метод toString(), начинающийся с имени подкласса.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment