ЛР3. Задание 1

This commit is contained in:
Victor 2013-11-11 15:47:16 +02:00
parent b43ab172e2
commit b784617677
4 changed files with 119 additions and 5 deletions

View File

@ -1,5 +1,7 @@
package tse; package tse;
import tse.lr3.LR_3_Tasks;
/** /**
* @author aNNiMON * @author aNNiMON
*/ */
@ -17,6 +19,7 @@ public class LR_3 implements ILabRab {
public void execute(int index) { public void execute(int index) {
switch(index) { switch(index) {
case 0: case 0:
LR_3_Tasks.getInstance().task1();
break; break;
case 1: case 1:
break; break;

View File

@ -1,12 +1,15 @@
package tse.lr2; package tse.lr2;
import java.awt.Point; import java.awt.Point;
import java.io.Serializable;
/** /**
* *
* @author aNNiMON * @author aNNiMON
*/ */
public class Circle extends Ellipse { public class Circle extends Ellipse implements Serializable {
private static final long serialVersionUID = 1L;
public Circle() { public Circle() {
super(); super();

View File

@ -1,14 +1,16 @@
package tse.lr2; package tse.lr2;
import java.awt.Point; import java.awt.Point;
import java.io.Serializable;
import java.util.Arrays; import java.util.Arrays;
/** /**
* *
* @author aNNiMON * @author aNNiMON
*/ */
public class Ellipse { public class Ellipse implements Serializable {
private static final long serialVersionUID = 1L;
private static final int POINTS = 4; private static final int POINTS = 4;
protected final Point[] points; protected final Point[] points;
@ -78,14 +80,14 @@ public class Ellipse {
@Override @Override
public String toString() { public String toString() {
/*StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
for (int i = 0; i < POINTS; i++) { for (int i = 0; i < POINTS; i++) {
sb.append(points[i].toString()).append('\t'); sb.append(points[i].toString()).append('\t');
} }
sb.append("\nSquare: ").append(getSquare()); sb.append("\nSquare: ").append(getSquare());
sb.append("\nCenter: ").append(getCenterPoint().toString()); sb.append("\nCenter: ").append(getCenterPoint().toString());
return sb.toString();*/ return sb.toString();
return "Я - Эллипс"; // return "Я - Эллипс";
} }
} }

106
src/tse/lr3/LR_3_Tasks.java Normal file
View File

@ -0,0 +1,106 @@
package tse.lr3;
import tse.lr2.*;
import java.awt.Point;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.List;
/**
*
* @author aNNiMON
*/
public class LR_3_Tasks {
private static LR_3_Tasks instance;
public static synchronized LR_3_Tasks getInstance() {
if (instance == null) instance = new LR_3_Tasks();
return instance;
}
private Ellipse ellipse1, ellipse2, ellipse3;
private Circle circle1, circle2;
public void task1() {
makeObjects();
System.out.println("До сериализации");
System.out.println(ellipse1.toString());
serialize("t1_ellipse.ser", ellipse1);
Ellipse el = (Ellipse) deserialize("t1_ellipse.ser");
if (el != null) {
System.out.println("После сериализации");
System.out.println(el.toString());
}
System.out.println("Готово!");
}
public void task2() {
makeObjects();
ArrayList<Ellipse> ellipses = new ArrayList<>();
ellipses.add(ellipse1);
ellipses.add(ellipse2);
ellipses.add(ellipse3);
ellipses.add(circle1);
ellipses.add(circle2);
printList(ellipses);
}
public void task5() {
makeObjects();
}
private void makeObjects() {
ellipse1 = new Ellipse(
new Point(2, 2), new Point(8, 2),
new Point(2, 6), new Point(8, 6)
);
ellipse2 = new Ellipse(
new Point(0, -4), new Point(20, -4),
new Point(0, 12), new Point(20, 12)
);
ellipse3 = new Ellipse(ellipse1);
circle1 = new Circle( new Point(3, 3), 6 );
circle2 = new Circle( new Point(5, 4), 2 );
}
private void serialize(String filename, Object object) {
try {
FileOutputStream fos = new FileOutputStream(filename);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(object);
oos.close();
fos.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
private Object deserialize(String filename) {
Object object = null;
try {
FileInputStream fis = new FileInputStream(filename);
ObjectInputStream ois = new ObjectInputStream(fis);
object = ois.readObject();
ois.close();
fis.close();
} catch (IOException | ClassNotFoundException ex) {
ex.printStackTrace();
}
return object;
}
private void printList(List<Ellipse> list) {
for (int i = 0; i < list.size(); i++) {
Ellipse ellipse = list.get(i);
System.out.println( String.format("%2d. %f", i + 1, ellipse.getSquare()) );
}
}
}