рдСрдмреНрдЬреЗрдХреНрдЯ рдУрд░рд┐рдПрдВрдЯреЗрдб рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ (OOP) C ++, Java, C #, рд╡рд┐рдЬреБрдЕрд▓ рдмреЗрд╕рд┐рдХ .NET, рд░реВрдмреА, рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рд╕реА рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕реНрд╡рд┐рдлреНрдЯ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдХреЗрдВрджреНрд░ рдореЗрдВ рд╣реИред рд╡реЗ рд╡реЗрдм рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рдкрд╛рдпрдерди рдФрд░ рдкреАрдПрдЪрдкреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВредрдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореИрдЯ рд╡реАрд╕рдлреЗрд▓реНрдб рдПрдХ рд╡рд╕реНрддреБ-рдЙрдиреНрдореБрдЦ рддрд░реАрдХреЗ рд╕реЗ рд╕реЛрдЪ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдмрдврд╝рддрд╛ рд╣реИредрдпрд╣ рдкреБрд╕реНрддрдХ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдбреЗрд╡рд▓рдкрд░ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦреА рдЧрдИ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡реЛрддреНрддрдо рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЪреБрдирдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдЖрдк рд╕реАрдЦреЗрдВрдЧреЗ рдХрд┐ рд╡рд┐рд░рд╛рд╕рдд рдФрд░ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдареАрдХ рд╕реЗ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдПрдХрддреНрд░реАрдХрд░рдг рдФрд░ рд╕рдВрдШ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреЛ рд╕рдордЭреЗрдВ, рдФрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рднреНрд░рдорд┐рдд рдХрд░рдирд╛ рдмрдВрдж рдХрд░реЗрдВредрдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпрд╛рдВ рд▓рдЧрд╛рддрд╛рд░ рдмрджрд▓ рд░рд╣реА рд╣реИрдВ рдФрд░ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд░рд╣реА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рдЕрд╡рдзрд╛рд░рдгрд╛рдПрдВ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИрдВ рдФрд░ рд▓рдЧрд╛рддрд╛рд░ рдкреНрд░рднрд╛рд╡реА рдмрдиреА рд╣реБрдИ рд╣реИрдВред рдпрд╣ рдкреНрд░рдХрд╛рд╢рди OOP рдХреА рдореВрд▓ рдиреАрдВрд╡ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИ: рдбрд┐рдЬрд╛рдЗрди рдкреИрдЯрд░реНрди, рдирд┐рд░реНрднрд░рддрд╛ рдФрд░ рдареЛрд╕ рд╕рд┐рджреНрдзрд╛рдВрдд рдЬреЛ рдЖрдкрдХреЗ рдХреЛрдб рдХреЛ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп, рд▓рдЪреАрд▓рд╛ рдФрд░ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдмрдирд╛рдП рд░рдЦреЗрдВрдЧреЗредрдареЛрд╕ рд╡рд╕реНрддреБ рдЙрдиреНрдореБрдЦ рдбрд┐рдЬрд╛рдЗрди рд╕рд┐рджреНрдзрд╛рдВрдд
1. рдПрд╕рдЖрд░рдкреА: рдПрдХрдорд╛рддреНрд░ рдЬрд┐рдореНрдореЗрджрд╛рд░реА рд╕рд┐рджреНрдзрд╛рдВрдд
рдПрдХрдорд╛рддреНрд░ рдЬрд┐рдореНрдореЗрджрд╛рд░реА рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╡рд░реНрдЧ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рдХрд╛рд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдХрдХреНрд╖рд╛ рдФрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЙрдбреНрдпреВрд▓ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдореЗрдВ рдПрдХ рдХрд╛рд░реНрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рд▓рд┐рдП, рдЖрдкрдХреЛ рдЙрди рддрд░реАрдХреЛрдВ рдХреЛ рдкреЗрд╢ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рд╡рд░реНрдЧ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рд╡рд░реНрдЧ рд╡рд┐рд╡рд░рдг рдореЗрдВ рд╢рдмреНрдж "рдФрд░" рд╣реИ, рддреЛ SRP рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдореЙрдбреНрдпреВрд▓ рдпрд╛ рд╡рд░реНрдЧ рдХреЛ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рдПрдХ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреА рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░реА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрдХреНрд╖рд╛ рдореЗрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПредрдЖрдВрдХрдбрд╝реЛрдВ рдХрд╛ рдкрджрд╛рдиреБрдХреНрд░рдо рдмрдирд╛рдирд╛ рдХреНрд▓рд╛рд╕рд┐рдХ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдЬреЛ рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдЕрдХреНрд╕рд░ рд╢рд┐рдХреНрд╖рдг рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдореИрдВ рдЗрд╕реЗ рдЗрд╕ рдЕрдзреНрдпрд╛рдп (рдФрд░ рд╕рд╛рде рд╣реА рдкреВрд░реЗ рдкреБрд╕реНрддрдХ рдореЗрдВ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╕рд░реНрдХрд┐рд▓ рд╡рд░реНрдЧ рдХреЛ рдЖрдХреГрддрд┐ рд╡рд░реНрдЧ рд╕реЗ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИрдВред рдЖрдХрд╛рд░ рд╡рд░реНрдЧ рдПрдХ рдЙрдкрд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдмрдВрдз рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдореВрд░реНрдд рдХреИрд▓реНрдХреЗрд░рд┐рдпрд╛ () рд╡рд┐рдзрд┐ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдЧ рдЬрд┐рд╕реЗ рдЖрдХрд╛рд░ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ, рдЙрд╕рдХреЗ рдкрд╛рд╕ рдХреИрд▓реНрдХреНрд░рд┐рдпрд╛ () рдкрджреНрдзрддрд┐ рдХрд╛ рдЕрдкрдирд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:abstract class Shape{
protected String name;
protected double area;
public abstract double calcArea();
}
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╕рд░реНрдХрд┐рд▓ рд╡рд░реНрдЧ, рдЬреЛ рдХрд┐ рдЖрдХреГрддрд┐ рд╡рд░реНрдЧ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ, рдпрджрд┐ рдпрд╣ рд╣реИ:class Circle extends Shape{
private double radius;
public Circle(double r) {
radius = r;
}
public double calcArea() {
area = 3.14*(radius*radius) ;
return (area);
};
}
рддреАрд╕рд░реА рд╢реНрд░реЗрдгреА, CalculateAreas, рдЖрдХреГрддрд┐ рд╕рд░рдгреА рдореЗрдВ рдирд┐рд╣рд┐рдд рд╡рд┐рднрд┐рдиреНрди рдЖрдХреГрддрд┐рдпреЛрдВ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИред рдЖрдХреГрддрд┐ рд╕рд░рдгреА рдЖрдХрд╛рд░ рдореЗрдВ рдЕрд╕реАрдорд┐рдд рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдЖрдХреГрддрд┐рдпрд╛рдБ, рдЬреИрд╕реЗ рдХрд┐ рд╡рд░реНрдЧ рдФрд░ рддреНрд░рд┐рдХреЛрдг рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВредclass CalculateAreas {
Shape[] shapes;
double sumTotal=0;
public CalculateAreas(Shape[] sh) {
this.shapes = sh;
}
public double sumAreas() {
sumTotal=0;
for (inti=0; i<shapes.length; i++) {
sumTotal = sumTotal + shapes[i].calcArea() ;
}
return sumTotal ;
}
public void output() {
System.out.printIn("Total of all areas = " + sumTotal);
}
}
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ CalculateAreas рд╡рд░реНрдЧ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рднреА рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рдХреНрд╖реЗрддреНрд░ рдХреА рдЧрд┐рдирддреА рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдПрдХ рд╣реА рд╡рд░реНрдЧ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИрдВредрд╣рдо рдЙрдкрдпреБрдХреНрдд рдЯреЗрд╕реНрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЯреЗрд╕реНрдЯрд╕реНрдкреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рдХреЛрдб рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:public class TestShape {
public static void main(String args[]) {
System.out.printin("Hello World!");
Circle circle = new Circle(1);
Shape[] shapeArray = new Shape[1];
shapeArray[0] = circle;
CalculateAreas ca = new CalculateAreas(shapeArray) ;
ca.sumAreas() ;
ca.output();
}
}
рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрдкрдиреЗ рдирд┐рдкрдЯрд╛рди рдореЗрдВ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЖрд╡реЗрджрди рд╣реИ, рд╣рдо рдПрдХрдорд╛рддреНрд░ рдЬрд┐рдореНрдореЗрджрд╛рд░реА рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреА рд╕рдорд╕реНрдпрд╛ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдлрд┐рд░, рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХреИрд▓рдХреБрд▓реЗрдЯрд░реАрд╕ рд╡рд░реНрдЧ рдФрд░ рдЗрд╕ рддрдереНрдп рдХреЗ рд╕рд╛рде рд╣реИ рдХрд┐ рдЗрд╕ рд╡рд░реНрдЧ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдЖрдХреГрддрд┐рдпреЛрдВ рдХреЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдбреЗрдЯрд╛ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╡рд╣рд╛рд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВредрдореВрд▓ рдкреНрд░рд╢реНрди (рдФрд░, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рдорд╕реНрдпрд╛) рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдкрдХреЛ рдЖрдЙрдЯрдкреБрдЯ () рд╡рд┐рдзрд┐ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЧрдгрдирд╛рдУрдВ рдХреЗ рд╡рд░реНрдЧ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЪрд╛рд╣реЗ рдЖрдХрд╛рд░ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдХреА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рд╡рд┐рдзрд┐ рдмрджрд▓ рдЬрд╛рдПред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рд╣рдо рдЕрдЪрд╛рдирдХ HTML рдХрдВрд╕реЛрд▓ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдФрд░ рд╕рд╛рджреЗ рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ рдирд╣реАрдВ, рддреЛ рд╣рдореЗрдВ рдХреЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝рдирд╛ рдФрд░ рдлрд┐рд░ рд╕реЗ рдПрдореНрдмреЗрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рдЖрдВрдХрдбрд╝реЛрдВ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рд╕рднреА рдХреНрдпреЛрдВрдХрд┐ рджреЗрдпрддрд╛ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИредрдПрдХрдорд╛рддреНрд░ рдЬрд┐рдореНрдореЗрджрд╛рд░реА рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдХрд╛рд░реНрдп рдПрдХ рд╡рд┐рдзрд┐ рдХреЛ рдмрджрд▓рдирд╛ рд╣реИ рдЕрдиреНрдп рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИред "рд╡рд░реНрдЧ рдореЗрдВ рдПрдХ, рдХреЗрд╡рд▓ рдПрдХ, рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдХрд╛рд░рдг рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП - рдПрдХрдорд╛рддреНрд░ рдЬрд┐рдореНрдореЗрджрд╛рд░реА рдЬрд┐рд╕реЗ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред"рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рджреЛ рддрд░реАрдХреЛрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдХ рдореВрд▓ рдХрдВрд╕реЛрд▓ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП, рджреВрд╕рд░рд╛ HTML рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП:class CaiculateAreas {;
Shape[] shapes;
double sumTotal=0;
public CalculateAreas(Shape[] sh) {
this.shapes = sh;
}
public double sumAreas() {
sumTotal=0;
for (inti=0; i<shapes.length; i++) {
sumTotal = sumTotal + shapes[i].calcArea();
}
return sumTotal;
}
}
class OutputAreas {
double areas=0;
public OutputAreas (double a) {
this.areas = a;
}
public void console() {
System.out.printin("Total of all areas = " + areas);
}
public void HTML() {
System.out.printIn("<HTML>") ;
System.out.printin("Total of all areas = " + areas);
System.out.printin("</HTML>") ;
}
}
рдиреАрдЪреЗ рдХреА рд░реЗрдЦрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЕрдм рдЖрдк рдЬрд░реВрд░рдд рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд┐рднрд┐рдиреНрди рджрд┐рд╢рд╛рдУрдВ рдореЗрдВ рдирд┐рд╖реНрдХрд░реНрд╖ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдЕрдиреНрдп рдЖрдЙрдЯрдкреБрдЯ рд╡рд┐рдзрд┐ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, JSON, рддреЛ рдЖрдк рдЗрд╕реЗ рдХреИрд▓реНрдХреБрд▓рд░реЗрдЯ рдХреНрд▓рд╛рд╕ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд┐рдирд╛ OutputAreas рд╡рд░реНрдЧ рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдирддреАрдЬрддрди, рдЖрдк рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЕрдиреНрдп рд╡рд░реНрдЧреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдХреИрд▓реНрдХреЗрдЯреЗрд░рд╛рд╕ рд╡рд░реНрдЧ рдХреЛ рдкреБрдирд░реНрд╡рд┐рддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред2. OCP: рдЦреБрд▓рд╛ / рдмрдВрдж рд╕рд┐рджреНрдзрд╛рдВрдд
рдЦреБрд▓реЗрдкрди / рдирд┐рдХрдЯрддрд╛ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдореЗрдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдЖрдк рдмрджрд▓рд╛рд╡ рдХрд┐рдП рдмрд┐рдирд╛ рдПрдХ рд╡рд░реНрдЧ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВредрдЖрдЗрдП рдлрд┐рд░ рд╕реЗ рдЖрдВрдХрдбрд╝реЛрдВ рдХреЗ рд╕рд╛рде рдЙрджрд╛рд╣рд░рдг рдкрд░ рдзреНрдпрд╛рди рджреЗрдВред рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЛрдб рдореЗрдВ, рдПрдХ рд╢реЗрдк рдХрд▓рдХреНрдпреВрд▓рд░ рд╡рд░реНрдЧ рд╣реИ рдЬреЛ рдПрдХ рдЖрдпрдд рд╡рд╕реНрддреБ рд▓реЗрддрд╛ рд╣реИ, рдЗрд╕ рд╡рд╕реНрддреБ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдорд╛рди рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдпрд╣ рдПрдХ рд╕рд░рд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреЗрд╡рд▓ рдЖрдпрддреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИредclass Rectangle{
protected double length;
protected double width;
public Rectangle(double 1, double w) {
length = 1;
width = w;
};
}
class CalculateAreas {
private double area;
public double calcArea(Rectangle r) {
area = r.length * r.width;
return area;
}
}
public class OpenClosed {
public static void main(String args[]) {
System.out.printin("Hello World");
Rectangle r = new Rectangle(1,2);
CalculateAreas ca = new CalculateAreas ();
System.out.printin("Area = "+ ca.calcArea(r));
}
}
рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЖрд╡реЗрджрди рдХреЗрд╡рд▓ рдЖрдпрддреЛрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдПрдХ рд╕реАрдорд╛ рддрдХ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЦреБрд▓реЗрдкрди / рдмрдВрдж рд╣реЛрдиреЗ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ: рдпрджрд┐ рд╣рдо рд╕рд░реНрдХрд▓ рдХреНрд▓рд╛рд╕ рдХреЛ рдХреИрд▓реНрдХреБрд▓реЗрдЯрдЖрд░реЗ рдХреНрд▓рд╛рд╕ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдпрд╣ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ), рд╣рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╣реА рдмрджрд▓рд╛рд╡ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдпрд╣ рдЦреБрд▓реЗрдкрди / рдирд┐рдХрдЯрддрд╛ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рд╕рд╛рде рд╕рдВрдШрд░реНрд╖ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╡рд╣ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИредрдЦреБрд▓реЗрдкрди / рдирд┐рдХрдЯрддрд╛ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд░реАрдХреНрд╖рдг рдХрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдХреЗ рдЖрдВрдХрдбрд╝реЛрдВ рдХреЗ рд╕рд╛рде рд▓реМрдЯ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рдПрдХ рдЕрдореВрд░реНрдд рд╡рд░реНрдЧ рдЖрдХреГрддрд┐ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ рдФрд░ рд╕реАрдзреЗ рдЖрдХреГрддрд┐ рд╡рд░реНрдЧ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдЖрдВрдХрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд╕рд╛рд░ рд╡рд┐рдзрд┐ getArea () рд╣реИредрдлрд┐рд▓рд╣рд╛рд▓, рдЖрдк рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд░реНрдЧ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдмрд┐рдирд╛ рд╕реАрдзреЗ рдЖрдХреГрддрд┐ рд╡рд░реНрдЧ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рд▓рд┐рдП (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рд░реНрдХрд▓ рд╡рд░реНрдЧ)ред рдЕрдм рд╣рдо рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╢реЗрдк рдХреНрд▓рд╛рд╕ рдмрдВрдж рд╣реИредрдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рдХреЛрдб рдЖрдпрддреЛрдВ рдФрд░ рд╣рд▓рдХреЛрдВ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдЕрд╕реАрдорд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЖрдХреГрддрд┐рдпрд╛рдБ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:abstract class Shape {
public abstract double getArea() ;
}
class Rectangle extends Shape
{
protected double length;
protected double width;
public Rectangle(double 1, double w) {
length = 1;
width = w;
};
public double getArea() {
return length*width;
}
}
class Circle extends Shape
{
protected double radius;
public Circle(double r) {
radius = r;
};
public double getArea() {
return radius*radius*3.14;
}
}
class CalculateAreas {
private double area;
public double calcArea(Shape s) {
area = s.getArea();
return area;
}
}
public class OpenClosed {
public static void main(String args[]) {
System.out.printiIn("Hello World") ;
CalculateAreas ca = new CalculateAreas() ;
Rectangle r = new Rectangle(1,2);
System.out.printIn("Area = " + ca.calcArea(r));
Circle c = new Circle(3);
System.out.printIn("Area = " + ca.calcArea(c));
}
}
рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде, рд╢реЗрдк рдХреНрд▓рд╛рд╕ рдХрд╛ рдПрдХ рдирдпрд╛ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рддреЗ рд╕рдордп рдХреИрд▓рдХреНрд▓реЗрдЯрдЕрд░реЗрд╕ () рдкрджреНрдзрддрд┐ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПредрдЖрдк рдкрд┐рдЫрд▓реЗ рдХреЛрдб рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд┐рдП рдмрд┐рдирд╛ рдХреЛрдб рдХреЛ рд╕реНрдХреЗрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЦреБрд▓реЗрдкрди / рдирд┐рдХрдЯрддрд╛ рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рдпрд╣ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЙрдкрд╡рд░реНрдЧреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЛрдб рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдореВрд▓ рд╡рд░реНрдЧ рдХреЛ рд╕рдВрдкрд╛рджрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рди рд╣реЛред рд╣рд╛рд▓рд╛рдБрдХрд┐, "рд╡рд┐рд╕реНрддрд╛рд░" рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рд╕реНрд╡рдпрдВ SOLID рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдЪрд░реНрдЪрд╛рдУрдВ рдореЗрдВ рд╡рд┐рд╡рд╛рджрд╛рд╕реНрдкрдж рд╣реИред рдЗрд╕реЗ рдХреБрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рд╣рдо рд╡рд┐рд░рд╛рд╕рдд рдХреЗ рдмрдЬрд╛рдп рд░рдЪрдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЦреБрд▓реЗрдкрди / рдирд┐рдХрдЯрддрд╛ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛ рдХреИрд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ?рдПрдХ рдареЛрд╕ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХрд╛ рдЕрдиреБрдкрд╛рд▓рди рдХрд░рддреЗ рд╕рдордп, рдХреЛрдб рдЕрдиреНрдп SOLID рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЗ рдорд╛рдирджрдВрдбреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЦреБрд▓реЗрдкрди / рдирд┐рдХрдЯрддрд╛ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдбрд┐рдЬрд╛рдЗрди рдХрд░рддреЗ рд╕рдордп, рдХреЛрдб рдПрдХрдорд╛рддреНрд░ рдЬрд┐рдореНрдореЗрджрд╛рд░реА рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИред3. рдПрд▓рдПрд╕рдкреА: рд▓рд┐рд╕реНрдХ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╕рд┐рджреНрдзрд╛рдВрдд
рд▓рд┐рд╕рдХреЛрд╡ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдбрд┐рдЬрд╝рд╛рдЗрди рдХреЛ рдмрдЪреНрдЪреЗ рдХреА рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдХреЗ рд╕рд╛рде рдореВрд▓ рд╡рд░реНрдЧ рдХреЗ рдХрд┐рд╕реА рднреА рдЙрджрд╛рд╣рд░рдг рдХреЛ рдмрджрд▓рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЕрднрд┐рднрд╛рд╡рдХ рд╡рд░реНрдЧ рдХреЛрдИ рдХрд╛рд░реНрдп рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдмрд╛рд▓ рд╡рд░реНрдЧ рдХреЛ рднреА рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПредрдХреБрдЫ рдХреЛрдб рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдЬреЛ рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ рд╕рд╣реА рд╣реИ, рд▓реЗрдХрд┐рди рд▓рд┐рд╕реНрдХ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд░рддрд╛ рд╣реИред рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЛрдб рдореЗрдВ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЖрдХрд╛рд░ рдХрд╛ рд╕рд╛рд░ рд╡рд░реНрдЧ рд╣реИред рдЖрдпрдд рд╡рд░реНрдЧ, рдмрджрд▓реЗ рдореЗрдВ, рдЖрдХреГрддрд┐ рд╡рд░реНрдЧ рд╕реЗ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреА рд╕рд╛рд░ рдХреИрд▓реНрдХреЗрд░рд┐рдпрд╛ () рд╡рд┐рдзрд┐ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддрд╛ рд╣реИред рд╕реНрдХреНрд╡рд╛рдпрд░ рд╡рд░реНрдЧ, рдмрджрд▓реЗ рдореЗрдВ, рдЖрдпрдд рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИредabstract class Shape{
protected double area;
public abstract double calcArea();
}
class Rectangle extends Shape{
private double length;
private double width;
public Rectangle(double 1, double w) {
length = 1;
width = w;
}
public double calcArea() {
area = length*width;
return (area) ;
};
}
class Square extends Rectangle{
public Square(double s) {
super(s, Ss);
}
}
public class LiskovSubstitution {
public static void main(String args[]) {
System.out.printIn("Hello World") ;
Rectangle r = new Rectangle(1,2);
System.out.printin("Area = " + r.calcArea());
Square s = new Square(2) ;
System.out.printin("Area = " + s.calcArea());
}
}
рдЕрдм рддрдХ, рдЗрддрдирд╛ рдЕрдЪреНрдЫрд╛: рдЖрдпрдд рдЖрдХреГрддрд┐ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЪрд┐рдВрддрд╛ рдХреА рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд░реНрдЧ рдЖрдпрдд рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ - рдФрд░ рдлрд┐рд░, рд╕рдм рдХреБрдЫ рд╕рд╣реА рд╣реИ, рд╣реИ рдирд╛?рдЕрдм рдПрдХ рджрд╛рд░реНрд╢рдирд┐рдХ рдкреНрд░рд╢реНрди рдкреВрдЫрддреЗ рд╣реИрдВ: рдХреНрдпрд╛ рдПрдХ рд╡рд░реНрдЧ рдЕрднреА рднреА рдПрдХ рдЖрдпрдд рд╣реИ? рдХрдИ рдкреБрд╖реНрдЯрд┐рдорд╛рд░реНрдЧ рдореЗрдВ рдЬрд╡рд╛рдм рджреЗрдВрдЧреЗред рдпрджреНрдпрдкрд┐ рдпрд╣ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╡рд░реНрдЧ рдПрдХ рдЖрдпрдд рдХрд╛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓рд╛ рд╣реИ, рдЗрд╕рдХреЗ рдЧреБрдг рднрд┐рдиреНрди рд╣реЛрдВрдЧреЗред рдПрдХ рдЖрдпрдд рдПрдХ рд╕рдорд╛рдВрддрд░ рдЪрддреБрд░реНрднреБрдЬ рд╣реИ (рд╡рд┐рдкрд░реАрдд рдкрдХреНрд╖ рд╕рдорд╛рди рд╣реИрдВ), рдПрдХ рд╡рд░реНрдЧ рдХреА рддрд░рд╣ред рдЗрд╕реА рд╕рдордп, рд╡рд░реНрдЧ рднреА рдПрдХ рд╕рдорднреБрдЬ рд╣реИ (рд╕рднреА рдкрдХреНрд╖ рд╕рдорд╛рди рд╣реИрдВ), рдЬрдмрдХрд┐ рдЖрдпрдд рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдорддрднреЗрдж рд╣реИрдВредрдЬрдм рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рдбрд┐рдЬрд╝рд╛рдЗрди рдХреА рдмрд╛рдд рдЖрддреА рд╣реИ, рддреЛ рд╕рдорд╕реНрдпрд╛ рдЬреНрдпрд╛рдорд┐рддрд┐ рдирд╣реАрдВ рд╣реИред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдЖрдпрддреЛрдВ рдФрд░ рд╡рд░реНрдЧреЛрдВ рдХреЛ рдХреИрд╕реЗ рдмрдирд╛рддреЗ рд╣реИрдВред рдпрд╣рд╛рдБ рдЖрдпрдд рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рддрд╛ рд╣реИ:public Rectangle(double 1, double w) {
length = 1;
width = w;
}
рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рджреЛ рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡рд░реНрдЧ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛ рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рднрд▓реЗ рд╣реА рдореВрд▓ рд╡рд░реНрдЧ, рдЖрдпрдд, рджреЛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛредclass Square extends Rectangle{
public Square(double s) {
super(s, Ss);
}
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЗрди рджреЛ рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреНрд╖реЗрддреНрд░ рдХреА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рд╣реИред рдпрд╣реА рд╣реИ, рд╕реНрдХреНрд╡рд╛рдпрд░ рд╡рд░реНрдЧ, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдерд╛, рдПрдХ рдЖрдпрдд рдХреА рдирдХрд▓ рдХрд░рддрд╛ рд╣реИ, рдПрдХ рд╣реА рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рджреЛ рдмрд╛рд░ рдкрд╛рд╕ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХрд╛ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХрд╛рдлреА рдЙрдкрдпреБрдХреНрдд рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдХреЛрдб рдХреЗ рд╕рд╛рде рдЖрдиреЗ рд╡рд╛рд▓реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЧреБрдорд░рд╛рд╣ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╣реЛрдиреЗ рдкрд░ рдиреБрдХрд╕рд╛рди рдХреЗ рд╕рд╛рде рдХрд╛рдлреА рднрдпрд╛рд╡рд╣ рд╣реИред рдХрдо рд╕реЗ рдХрдо рдпрд╣ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдФрд░, рд╢рд╛рдпрдж, рдПрдХ рд╕рдВрджрд┐рдЧреНрдз рдбрд┐рдЬрд╛рдЗрди рдирд┐рд░реНрдгрдпред рдЬрдм рдПрдХ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рджреВрд╕рд░реЗ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдмреНрд░реЗрдХ рд▓реЗрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдХрдВрд╕реНрдЯреНрд░рдХреНрд╢рди рдкрд░ рдкреБрдирд░реНрд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ - рд╢рд╛рдпрдж рдЪрд╛рдЗрд▓реНрдб рдХреНрд▓рд╛рд╕ рдареАрдХ рд╕реЗ рдирд╣реАрдВ рдмрдирд╛ рд╣реИредрдЗрд╕ рд╕реНрдерд┐рддрд┐ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХрд╛ рд░рд╛рд╕реНрддрд╛ рдХреИрд╕реЗ рдЦреЛрдЬрд╛ рдЬрд╛рдП? рд╕реАрдзреЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдХрд╣реЗрдВ, рддреЛ рдЖрдк рдЖрдпрдд рдХреЗ рд▓рд┐рдП рд╡рд░реНрдЧрд╛рдХрд╛рд░ рд╡рд░реНрдЧ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддреЗред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕реНрдХреНрд╡рд╛рдпрд░ рдЖрдпрдд рд╡рд░реНрдЧ рдХрд╛ рдмрдЪреНрдЪрд╛ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ рд╡рд░реНрдЧ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПредabstract class Shape {
protected double area;
public abstract double calcArea();
}
class Rectangle extends Shape {
private double length;
private double width;
public Rectangle(double 1, double w) {
length = 1;
width = w;
}
public double calcArea() {
area = length*width;
return (area);
};
}
class Square extends Shape {
private double side;
public Square(double s) {
side = s;
}
public double calcArea() {
area = side*side;
return (area);
};
}
public class LiskovSubstitution {
public static void main(String args[]) {
System.out.printIn("Hello World") ;
Rectangle r = new Rectangle(1,2);
System.out.printIn("Area = " + r.calcArea());
Square s = new Square(2) ;
System.out.printIn("Area = " + s.calcArea());
}
}
4. рдЖрдИрдПрд╕рдкреА: рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╢реЗрдпрд░рд┐рдВрдЧ рд╕рд┐рджреНрдзрд╛рдВрдд
рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рдкреГрдердХреНрдХрд░рдг рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдореЗрдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдХрдИ рдмрдбрд╝реЗ рд▓реЛрдЧреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдИ рдЫреЛрдЯреЗ рдЗрдВрдЯрд░рдлреЗрд╕ рдмрдирд╛рдирд╛ рдмреЗрд╣рддрд░ рд╣реИредрдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо рдПрдХ рдПрдХрд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд╕реНрддрдирдкрд╛рдпреА рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдХрдИ рд╡реНрдпрд╡рд╣рд╛рд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдЦрд╛рдиреЗ () рдФрд░ рдореЗрдХрдУрдирд┐рдЬрд╝ ():interface IMammal {
public void eat();
public void makeNoise() ;
}
class Dog implements IMammal {
public void eat() {
System.out.printIn("Dog is eating");
}
public void makeNoise() {
System.out.printIn("Dog is making noise");
}
}
public class MyClass {
public static void main(String args[]) {
System.out.printIn("Hello World");
Dog fido = new Dog();
fido.eat();
fido.makeNoise()
}
}
рд╕реНрддрдирдкрд╛рдпреА рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдПрдХрд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЖрдкрдХреЛрд╕рднреА рд╡реНрдпрд╡рд╣рд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рдЗрдВрдЯрд░рдлреЗрд╕ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ :interface IEat {
public void eat();
}
interface IMakeNoise {
public void makeNoise() ;
}
class Dog implements IEat, IMakeNoise {
public void eat() {
System.out.printIn("Dog is eating");
}
public void makeNoise() {
System.out.printIn("Dog is making noise");
}
}
public class MyClass {
public static void main(String args[]) {
System.out.printIn("Hello World") ;
Dog fido = new Dog();
fido.eat();
fido.makeNoise();
}
}
рд╣рдо рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╕реНрддрдирдкрд╛рдпреА рд╡рд░реНрдЧ рд╕реЗ рдЕрд▓рдЧ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо (рдЕрдзрд┐рдХ рд╕рдЯреАрдХ, рдЗрдВрдЯрд░рдлреЗрд╕) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдПрдХрд▓ рд╕реНрддрдирдзрд╛рд░реА рд╡рд░реНрдЧ рдмрдирд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд╣рдо рдкрд┐рдЫрд▓реЗ рдЕрдзреНрдпрд╛рдп рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЧрдИ рд░рдгрдиреАрддрд┐ рдХреЗ рд╕рдорд╛рди рд░рдЪрдирд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдбрд┐рдЬрд╛рдЗрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВредрдХреБрдЫ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде, рд╣рдо рдПрдХ рд╣реА рд╕реНрддрдирдкрд╛рдпреА рд╡рд░реНрдЧ рдореЗрдВ рдПрдореНрдмреЗрдбреЗрдб рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рд╣реЛрдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд░рдЪрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕реНрддрдирдзрд╛рд░реА рд╡рд░реНрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдПрдХ рд╕реНрддрдирдкрд╛рдпреА рдХреА рдЦреЛрдЬ рдХреА рдЧрдИ рд╣реИ рдЬреЛ рднреЛрдЬрди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рддреНрд╡рдЪрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреЛрд╖рдХ рддрддреНрд╡реЛрдВ рдХреЛ рдЕрд╡рд╢реЛрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рд╣рдо рдЦрд╛рдиреЗ () рд╡реНрдпрд╡рд╣рд╛рд░ рд╡рд╛рд▓реЗ рд╕реНрддрдирдкрд╛рдпреА рд╡рд░реНрдЧ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдирдП рд╕реНрддрдирдкрд╛рдпреА рдХреЗ рд▓рд┐рдП рдмреЗрдорд╛рдиреА рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рд╕рднреА рд╡реНрдпрд╡рд╣рд╛рд░реЛрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдПрдХрд▓ рдЗрдВрдЯрд░рдлреЗрд╕ рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдпрд╣ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрддрдирдкрд╛рдпреА рдХреЗ рд╡рд░реНрдЧ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдареАрдХ рдЙрд╕реА рддрд░рд╣ рд╣реЛрдЧрд╛ рдЬреИрд╕рд╛ рдХрд┐ рдЗрд░рд╛рджрд╛ рдерд╛ред┬╗рдкреБрд╕реНрддрдХ рдХреА рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рдХрд╛рд╢рдХ рдХреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдорд┐рд▓ рд╕рдХрддреА рд╣реИ┬╗ рд╕рд╛рдордЧреНрд░реА рдХреА рддрд╛рд▓рд┐рдХрд╛┬╗ Habrozhitelami рдХреЗ рд▓рд┐рдП рдЕрдВрд╢рдХреВрдкрди рдкрд░ 25% рдЫреВрдЯ -OOPрдкреБрд╕реНрддрдХ рдХреЗ рдкреЗрдкрд░ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рднреБрдЧрддрд╛рди рдкрд░, рдПрдХ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рдкреБрд╕реНрддрдХ рдИ-рдореЗрд▓ рджреНрд╡рд╛рд░рд╛ рднреЗрдЬреА рдЬрд╛рддреА рд╣реИред