La figura apreciado por Java UML herencia de clases, la polimerización, sintetizados (combinado), dependencias asociadas

Este artículo por el diagrama de clases se muestra a continuación, un proyecto de construcción en el IDE, la preparación del código correspondiente reconocido herencia Java en la práctica, la polimerización, sintetizados (combinado), dependencias asociadas manos después de la finalización de este proyecto, estos la comprensión de unos pocos tendrá profunda experiencia del futuro, si alguien le da una práctica en el diagrama de clases también saben cómo también insistir en un diagrama de clases de pintura.
Aquí Insertar imagen Descripción

Heredar

Hay un máximo de herencia, la sucesión se divide en clases e interfaces, primeros animales, pájaros, gansos, patos, clases de interfaces de pingüinos, vuelan, la gente si se crea la interfaz, y la herencia se hacen realidad. clase de categoría y la relación de conversión de código es el siguiente:
Aquí Insertar imagen Descripción
Aquí Insertar imagen Descripción

Que tiene las propiedades y métodos de aplicación, cada clase con métodos relacionados con otras relaciones para alcanzar temporalmente. ¿Qué hay que decir es que esta ave en sí tiene un comportamiento (método) por el que, heredó gansos, patos, por el que el comportamiento (métodos) pingüino clase realidad reescribir los pájaros padres ponen el comportamiento de los huevos.

Reescribir polimorfismos heredados, también llamados método reescritura de recubrimiento, a menudo sobrecargados con los métodos para distinguir confuso.
Sobrecarga : De la misma clase, el mismo nombre de método (el mismo nombre aparece método), método que es llamado por la diferencia entre la lista de parámetros específica.
Cubierta : En la jerarquía de clases, si un método sub-clase con el mismo método que el nombre de la clase padre de familia, tipo de retorno, y el mismo número y el mismo tipo de lista de parámetros, este método se llama cobertura. Como método de cubrir el método de referencia es llamado por la clase padre, Java para determinar qué versión se realiza actualmente de acuerdo con el tipo del objeto referenciado.
Referencia a los miembros de la clase padre para formar la palabra clave super a la referencia:
.. Súper súper variable miembro o método miembro (parámetros)
para el método de construcción, la referencia es: super (parámetros)

class SuperClass {
    int a;
    SuperClass(){ 
      a = 10; 
    }
    public void printA() {
      System.out.println("父类中a ="+a);}
    }
class SubClass extends SuperClass {
      int a;
      SubClass(int a) { 
           this.a = a;  
      }
      public void printA() { 
            System.out.println("子类中a = "+a); 
      }
}
public class OverrideDemo {
   public static void main(String args[]) {
      SubClass s1 = new SubClass(10);
 	   s1.printA();
   }
}

Como resultado, el código que llama al método Impresión subclase.

Si la subclase método, sólo el nombre del método, tipo de retorno, y métodos consistentes con la clase padre, pero la lista de parámetros son diferentes, los sub-categoría método de recuento de sobrecargas tales casos, en lugar de sobrescribir.
Cuando la cubierta: una atención subclase cuando la variable miembro de la clase padre del mismo nombre que los "heredado de la clase padre, variables miembro sólo pueden operar las variables variable miembro de la clase padre de subclases y miembros definidos en la clase padre del mismo nombre, hijo. clase cuando se hace referencia a esta variable, el valor predeterminado es una referencia a una variable miembro de su propia definición, heredado de las variables miembro de la "tapa" la clase padre, es decir, la cubierta a los miembros ocultar de la clase padre del mismo nombre.
Sobre precauciones polimorfismo tengo estos resúmenes:
1, no variables miembro polimorfismo
2, la subclase objeto de clase padre puede completar tipo de conversión
3, visto desde la perspectiva de referencia polimorfismo subclase principalmente para entender cómo completar las variables miembro y métodos cubre miembro.
4, desde la perspectiva de la clase padre llama al objeto subclase referencias miran polimorfismos, se encuentra que incluso la clase padre subclase punto de referencia de objeto, la referencia a la clase de los padres y miembros de la clase padre aún clase padre operativo solamente directa de sus propias variables miembro. progenitor referencia debe llamar al método subclase de variables miembro de la subclase de operaciones indirectas (método aquí debe ser una subclase anulaciones de la clase padre, no puede ser una subclase del nuevo método). una de uso importante: método de asignación dinámica último, señalar que la palabra clave instanceof.

Aquí en Java punto de polimorfismo por ejemplo, hace referencia desde el punto de vista de la clase padre para llamar a la clase de objeto hijo no refleja el punto de vista del polimorfismo en este ejemplo, se habla menos, sólo el último párrafo de la mención de resumen. Continuar este caso.

dependencias

Como el nombre sugiere, hacer que se necesita xx Una dependencia B, como en los casos en que los animales necesitan oxígeno y el metabolismo del agua, la relación prestado, B dependiente convertido en A, B cambia cuando A también puede ser necesaria para el cambio. Rendimiento del código de un método de la clase que sea dependiente de la clase dependiente como su argumento, o algún método de crear un ejemplo de la clase A o clase B clase B llamada al método estático es.
Aquí Insertar imagen Descripción
A continuación, se puede lograr la dependencia de este ejemplo (Por supuesto, hay muchos otros métodos que tengo sólo una forma que quieran, y si hay nuevas ideas pueden pensar por sí mismos)

Animal.java

public class Animal {
	public char living;   //是否有生命
	
	public void  metabolism(Oxygen oxygen,Water water) {              //新陈代谢
		System.out.print("进行新陈代谢   ");
		oxygen.needOxygen();
		water.needWater();
	}
	public void reproduce() {
		System.out.print("我是可以繁殖的!");      //繁殖
	}

Oxygen.java

package edu.hut.software.zqh;
class Oxygen{                                 //依赖关系空气
	public void needOxygen() {
		System.out.print("被依赖类氧气   ");
	}
}

class Water{                                  //依赖关系水
	public void needWater() {
		System.out.print("被依赖类水   ");
	}
}

relación

Asociación se refleja en dos clases, con una clase o interfaces de nivel semántico entre la fuerte dependencia, se sabe que las propiedades y métodos de una clase a otra clase, esta relación es muy fuerte, más fuerte que la dependencia no es contingente ni temporal, pero a largo plazo, relativamente igual relación, que se refleja en el nivel de código, aparece en la clase a y clase B se asocian en forma de atributo de clase, puede estar asociada con la clase a son referencias clase B variables globales asociadas. Como ejemplos pingüinos y el clima, su relación es que la clase pingüino debe tener una clase climática atributo de clase, que son un tipo de relación "tener".
Aquí Insertar imagen Descripción
código de aplicación es:

Climate.java

package edu.hut.software.zqh;

public class Climate {
	public void changeClimate() {
		System.out.print("关联关系“天气”");
	}
}

Penguin.java
package edu.hut.software.zqh;

public class Penguin extends Bird{
	private Climate climate;         //关联关系
	
	public Penguin(Climate climate) {
		this.climate=climate;
	}
	public void layEggs() {
		System.out.print("我是企鹅所以我生企鹅蛋    ");
		climate.changeClimate();
	}
}

relación

La polimerización es un caso especial de la asociación, es un fuerte correlato de polimerización se toda la relación entre los individuos , a continuación, toda la parte puede separarse y que tienen su ciclo de vida, puede pertenecer a una pluralidad de partes de objetos, puede haber una pluralidad de compartir objetos; y un ordenador, tales como la relación entre la CPU y el empleado de la compañía; polimérico asociado con el código es el mismo nivel, puede distinguir a partir de la semántica.
relación de agregación es el uso de variables de instancia para lograr, en el área de la gramática java demasiado estrecha correlación y agregación, asociación para una jerarquía de clases, polimerizado en dos niveles diferentes de aparente.
Como este ejemplo gansos y gansos, compuestas de una pluralidad de gansos gansos individuales, gansos dejaron gansos, ambos de los cuales pueden existir independientemente.
Aquí Insertar imagen Descripción
código de implementación:

WideGoose.java

package edu.hut.software.zqh;
public class WideGoose extends Bird implements Fly{
	public void layEggs() {
		System.out.print("我是大雁所以我生大雁蛋");
	}
	public void fly() {
		System.out.print("我能够飞翔");
	}
}

WideGooseAggregate.java

package edu.hut.software.zqh;
public class WideGooseAggregate {
	private WideGoose[] arrayWideGoose;   //这里暂时不知道应该怎么给那些属性赋值,感觉没太大用,就不赋值了
	public void horizontalFly() {	
		System.out.printf("雁群一字型飞行队列");
	}
	public void vFiy() {
		System.out.printf("雁群一字型飞行队列");
	}
}

Desde el punto de vista del código de aplicación y de asociación no distingue de Java, pero los dos no están en una jerarquía de clases.

Síntesis de relación (combinaciones)

Las combinaciones son un caso especial de las relaciones de asociación, más fuerte que la polimerización, la polimerización es una relación fuerte. También refleja la relación entre el todo y la parte, pero el final de este tiempo el todo y son parte inseparable del ciclo de vida total también significa la parte final del ciclo de vida, y viceversa. Tales como el cerebro y el ser humano, también como en este caso los pájaros y las alas, las alas de un ave no hay realmente horrible.
Aquí Insertar imagen Descripción
Los códigos son los siguientes:

Wing.java
package edu.hut.software.zqh;
public class Wing {
	public void wing() {
		System.out.print("合成关系“有翅膀”");
	}
}

Animal.java
package edu.hut.software.zqh;
public class Bird extends Animal{
	public int feather;   //是否有羽毛
	public int mouse;     //嘴巴是否是有角质喙而没有牙齿
	private Wing wing;
	
	public Bird() {
		wing=new Wing();
		wing.wing();
	}
	public void layEggs() {                    //下蛋
		System.out.print("不同种类的鸟下蛋种类不同!");
	}	
}

Y también carece de las diferencias asociadas en el código

finalmente

En el proceso me he dado mayor parte del código, y el resto es la herencia de la clase, de la siguiente manera:

package edu.hut.software.zqh;

public class DonaldDuck extends Duck implements Speak{
	public void speak() {
		System.out.print("大家好,我是唐老鸭,我和其他鸭子不一样的是我继承了讲人话接口,会说话");
	}
}

package edu.hut.software.zqh;

public class Duck extends Bird{
	public void layEggs()
	{
		System.out.print("我是鸭子所以我生鸭蛋");
	}
}

package edu.hut.software.zqh;

public interface Speak {
	public abstract void speak();
}

interface Fly{
	public abstract void fly();
}
public static void main(String args[]) {            //调用继承的方法并输出相关语句验证各种关系是否实现
		Penguin penguin=new Penguin(new Climate());   
		System.out.print("  ");
		penguin.layEggs();
		System.out.print("  ");
		penguin.metabolism(new Oxygen(), new Water());
		System.out.print("  ");
		penguin.reproduce();
		System.out.println();
		DonaldDuck donaldduck=new DonaldDuck();
		System.out.print("  ");
		donaldduck.layEggs();
		System.out.print("  ");
		donaldduck.metabolism(new Oxygen(), new Water());
		System.out.print("  ");
		donaldduck.reproduce();
		System.out.print("  ");
		donaldduck.speak();
		System.out.println();
		WideGoose widegoose=new WideGoose();
		System.out.print("  ");
		widegoose.layEggs();
		System.out.print("  ");
		widegoose.metabolism(new Oxygen(), new Water());
		System.out.print("  ");
		widegoose.reproduce();
		System.out.print("  ");
		widegoose.fly();
	}
}

Todo el código se ha cargado, se puede ver el orden de marcha de la ejecución
Aquí Insertar imagen Descripción

Publicado 21 artículos originales · ganado elogios 2 · Vistas 3354

Supongo que te gusta

Origin blog.csdn.net/weixin_44164333/article/details/104820494
Recomendado
Clasificación