<> Object oriented day 8 :

<> First day of submarine game :

* Design 6 Class , Design World Class and test
<> The second day of submarine game :

* to 6 Add constructor to class , And test
<> Submarine game day 3 :

* Design reconnaissance submarine array , Torpedo submarine array , Mine submarine array , Mine array , Deep water bomb array , And test
* Design SeaObject Superclass , Design 6 Class inherits superclass
* to SeaObject Two construction methods are designed ,6 Each class is called separately
<> Submarine game day 4 :

* Array of reconnaissance submarines , Torpedo submarine array , The mine submarine array is uniformly combined into SeaObject array , And test
* stay 6 Overridden in a class move() move , And test
* Draw window
<> Submarine game day 5 :

* Add an access control modifier to a member in a class
* establish Images Picture class
<> Submarine game day 6 :

* The width and height of the design window are constant , Make changes where appropriate
* Draw an ocean map , Painting object :
* If you want to draw an object, you need to get the image of the object , Each object can get pictures ,
It means that the behavior of obtaining pictures is a common behavior , So the design is SeaObject In class ,
The behavior of each object to get pictures is different , So it is designed as an abstract method
---- stay SeaObject Design abstraction method in getImage() Get picture
* stay 6 Overridden in a derived class getImage() Get a picture of the object
---- rewrite getImage() Get picture
* Because only living objects need to be drawn into the window , So you need to design the state of the object ,
Every object has a state , It means that the status is a common attribute , So the design is SeaObject in ,
States are generally designed as constants , Simultaneous design state Variable represents the current state
---- stay SeaObject Design state constant in LIVE,DEAD,state Variable represents the current state
In later business, you also need to judge the status of the object , Each object can judge the state ,
It means that the behavior of judging the state is a common behavior , So the design is SeaObject in ,
The behavior of each object to judge the state is the same , So the design is a common method
---- stay SeaObject Medium design isLive(),isDead() Judge the state of the object
* With all the data, you can start painting , Every object can be painted ,
It means that the behavior of the painting object is a common behavior , So the design is SeaObject in ,
The behavior of each object is the same , So the design is a common method
---- stay SeaObject Medium design paintImage() Draw pictures --------- How to draw , Not required to master
* The behavior of the painting object is done well , In the window World Call in :
* Prepare object
* rewrite paint() method ------ call paintImage() method
<> Day 7 of submarine game :

*
Submarine admission :

* Submarines are produced by windows , So in the window World Design in class nextSubmarine() Generate submarine object
* Submarine admission occurs regularly , So in run Call in submarineEnterAction() Realize submarine admission
stay submarineEnterAction() in :
each 400 millisecond , Get submarine object obj,submarines Capacity expansion , take obj Add to submarines On the last element
stay run() Call in submarineEnterAction() after , Must call repaint() Method to redraw

*
Mine entry :------------- Only part of today ( The rest will be done on Friday )

* Mines are launched by mine submarines , So in MineSubmarine Medium design shootMine() Generate mine object
* Mine admission occurs regularly , So in run Call in MineEnterAction() Realize mine admission
stay MineEnterAction() in :
each 1000 millisecond …-------------- Speaking on Friday
*
Ocean object movement ( Excluding warships ):

* Object movement is a behavior common to all objects , So in superclass SeaObject Design abstraction in move() To achieve mobile ,6 Overridden in a derived class
* The movement of ocean objects occurs regularly , So in run Call in moveAction() Realize the movement of ocean objects
stay moveAction() in :
Traverse all submarines and let them move , Traverse all mines and let the mines move , Traverse all deep-water bombs and let the deep-water bombs move
<> Submarine game day 8 :

*
Deep water bomb admission :

* Deep water bombs were launched by warships , So in Battleship Medium design shootBomb() Deep water bomb launch
* The entry of the deep-water bomb was triggered by the event , So override in listener keyReleased() Key lifting event :
* Judge if the key is a space bar , Then get the deep-water bomb object obj,bombs Capacity expansion , take obj Add to last element
*
Warship movement :

* The act of moving a warship into a warship , So in Battleship Medium design moveLeft() Shift left ,moveRight() Shift right
* The warship movement is triggered by the event , So in the listener keyReleased() Key lifting event :
* Judge if the key is the left key head , Then the warship moves to the left , If the key is a right key head , Then the warship moves to the right
*
Delete out of bounds objects ( submarine , mine , Deep water bomb ):------ Guaranteed performance

* stay SeaObject Medium design isOutOfBounds() Detect whether the submarine crosses the boundary ,
stay Bomb/Mine Medium rewrite isOutOfBounds() Detection of deep-water bombs / Whether the mine crosses the boundary
* Deleting out of bounds objects occurs regularly , So in run Call in outOfBoundsAction() Delete out of bounds objects
stay outOfBoundsAction() in :
Traverse all submarines / mine / Deep water bomb , If the judgment goes beyond the boundary :
Replace the out of bounds element with the last element , Volume reduction ( Shrinking is the last element )
*
Design interface :

* Design EnemyScore Scoring interface , Scoring interface between reconnaissance submarine and torpedo submarine
* Design EnemyLife Get life interface , Realization of life interface for mine submarine
<> review :

* Member inner class :-------------- understand
Nested class in class , External class only , Invisible to the outside world , Inner class objects are usually created in outer classes
Members of the inner class that have direct access to the outer class ( Including private )
---- There is an implicit reference in the inner class to the external class object that created it ------- External class name .this------API Can be used when
* Anonymous Inner Class :------------------ Greatly simplify the code
If you want to create a class ( Derived class ) Object of , And the object is created only once , Anonymous inner classes are recommended
The default external variable of anonymous inner class is final of ------------------------------API Can be used when
All classes have independent .class
<> note :

* Interface :
* Is a reference data type
* from interface definition
* Can only contain constants and abstract methods
* Interface cannot be instantiated (new object )
* Interfaces need to be implemented / Inherited , Implementation class / Derived class :
---- All abstract methods must be overridden
* A class can implement multiple interfaces , Separated by commas , If you inherit and implement , It should be inherited before implementation
* Interfaces can inherit interfaces // Interface demonstration public class InterfaceDemo { public static void main(String
[] args) { //Inter5 o1 = new Inter5(); // Compilation error , Interface cannot be instantiated Inter5 o2 = new Doo();
// Upward modeling ( Can be modeled as the interface it implements ) Inter4 o3 = new Doo(); // Upward modeling } } // Demo interface inheritance interface interface
Inter4{ void show(); } interface Inter5 extends Inter4{ void test(); } class Doo
implements Inter5{ public void test(){} public void show(){} } // Multi implementation of demo interface
interface Inter2{ void show(); } interface Inter3{ void test(); } abstract class
Boo{ abstract void say(); } class Coo extends Boo implements Inter2,Inter3{
public void show(){} public void test(){} public void say(){} } // Implementation of demo interface
interface Inter1{ void show(); // The default access permission is public void test(); } class Aoo
implements Inter1{ public void show(){} // Rewrite abstract methods in interfaces , Access rights must be public public void
test(){} } // Demonstrates the syntax of the interface interface Inter{ public static final int NUM = 5;
// The access rights of members in the interface can only be public of public abstract void show(); int COUNT = 6; // default public
static final void say(); // default public abstract //int number; // Compilation error , Constants must be declared and initialized at the same time
//void test(){} // Compilation error , Abstract methods cannot have method bodies }
<> Essence note :

* Interface :
* Is a reference data type
* from interface definition
* Can only contain constants and abstract methods
* Interface cannot be instantiated (new object )
* Interfaces need to be implemented / Inherited , Implementation class / Derived class :
---- All abstract methods must be overridden
* A class can implement multiple interfaces , Separated by commas , If you inherit and implement , It should be inherited before implementation
* Interfaces can inherit interfaces
<> supplement :

* Boundary crossing detection diagram :

* relationship :
* Classes and classes --------------------- inherit extends
* Interfaces and interfaces --------------- inherit extends
* Classes and interfaces ------------------ realization implements
* Design rules :
* Attributes and behaviors common to all derived classes , Draw into superclass --------------- Pumping commonness
* If all objects behave the same , Design as common method
If the object behaves differently , Design as abstract method
* Attributes and behaviors shared by some derived classes , Draw into the interface
An interface is an extension of the singleness of inheritance --------------------------- Implement multiple inheritance
* Meaning of interface :
* Implement multiple inheritance
* Developed a set of standards , rule

Technology