La programación orientada a objetos de Java

1. ¿Qué es la programación orientada a objetos

   POO (Programación Orientada a Objetos, por lo que a menudo se llama programación orientada a objetos) no es única para Java, pero una idea de programación, Java, C ++, Python tiene su realización. Su esencia se refleja en el modelo de proceso de pensamiento abstracto y el enfoque orientado a objetos de establecer. Modelo se utiliza para reflejar las características de las cosas en el mundo real, cualquier modelo no puede reflejar todas las características específicas de las cosas objetivas, solamente una regla de cosas abstractas y variedad, y más generalmente en el rango que cubre, más centrado y más profunda descripción de las características del objeto. Al establecer el modelo para lograr el resumen es profundizar en la comprensión de la gente del objeto.

2, ventajas y desventajas OOP

Pros: Fácil de mantener y ampliar, de alta capacidad de reutilización de código. Puesto que hay encapsulación orientado a objetos, la herencia, polimorfismo característico, el sistema puede ser diseñado bajo acoplamiento, haciendo el sistema más flexible.
Desventaja: sobrecarga de la CPU de gran tamaño, que ocupan más recursos

3, las tres características

Paquete: propiedades de los objetos y detalles de implementación oculta, sólo se conserva algunas de las interfaces externas;
Herencia: subclases heredan los atributos y métodos de la clase padre;
polimorfismo: una pluralidad de capacidad o forma de diferentes formas de la misma conducta.

3.1, el paquete

   modificador de acceso utilizado para lograr el control de las propiedades y métodos, incluyendo privado: Esta clase sólo puede acceder; por defecto (permisos predeterminados): Este paquete sólo se puede acceder; protegida: y subclases paquetes en sucesión sólo se puede acceder ; pública: accesible. A continuación, definir una clase de objetos, atributos normalmente ocultos, proporcionando un conjunto común, obtener métodos de acceso.

/**
 * @author RuiMing Lin
 * @date 2020-03-05 16:01
 */
public class Person {
    
    private String name;
    private int age;

    public Person() {
    }

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() { return age; }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

3.2, la herencia

   La herencia permite el acceso a todos los atributos y métodos de la clase padre subclases no privados, la reutilización de código se reduce. Inheritance puede hacer que la jerarquía de objetos, escriba más clara.

/**
 * @author RuiMing Lin
 * @date 2020-03-05 18:18
 */
public class Demo {
    public static void main(String[] args) {
        Son s = new Son("小明",23);
        s.eat();        //从父类继承的方法
        s.sleep();      //重新父类的方法
        s.study();      //子类自己定义的方法
    }
}

class Father{
    String name;
    int age;


    public Father(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public void eat(){
        System.out.println("吃饭");
    }

    public void sleep(){
        System.out.println("父亲睡觉");
    }
}

class Son extends Father{
    public Son(String name, int age) {
        super(name, age);
    }

    @Override
    public void sleep(){
        System.out.println("儿子睡觉");
    }

    public void study(){
        System.out.println("儿子学习");
    }
}

3.3, polimórfica

public abstract class Animal { 
	public abstract void eat(); 
}
class Cat extends Animal { 
	public void eat() { 
		System.out.println("吃鱼"); 
	} 
}
class Dog extends Animal { 
	public void eat() { 
		System.out.println("吃骨头"); 
	} 
}
public class Test { 
	public static void main(String[] args) { 
	// 多态形式,创建对象 
	Cat c = new Cat(); 
	Dog d = new Dog(); 
	// 调用showCatEat 
	showCatEat(c);
	// 调用showDogEat
	showDogEat(d); 
	showAnimalEat(c); 
	showAnimalEat(d); 
}
	public static void showCatEat (Cat c){ 
		c.eat(); 
	}
	public static void showDogEat (Dog d){ 
		d.eat(); 
	}
	public static void showAnimalEat (Animal a){ 
		a.eat(); 
	} 
}

   Dado que las características del polimorfismo de soporte, tipo showAnimalEat Animal de método, de perros y gatos es el tipo de clase de padres, el tipo de objeto receptor padre subclase, el objeto puede pasar objeto gato y el perro al método. Cuando la coma método ejecutado, el polimorfismo predeterminado, una subclase anula un método lleva a cabo, a continuación, consistente con el efecto de showCatEat natural, método showDogEat, puede reemplazar la showAnimalEat por encima de dos métodos. No es sólo una alternativa, en términos de escalabilidad, ya sea después de que aparezcan más sub-categorías, no necesitamos a showXxxEat método de escritura, el uso directo de showAnimalEat se puede hacer. Por lo tanto, los beneficios de multi-estado, incorporados en el programa pueden ser escritos en más simple, y la extensión buena.

3.3.1, reglas de operación multi-estatales

  Si el método de compilación de los padres (interfaz de matriz) o la propia clase, el error no se usan IDE; ver el funcionamiento de un determinado tipo, clase o si la clase del método, el error no utilizará IDE.

  1. variables miembro: Look compilación izquierda, mirada en el lado izquierdo de la carrera;
  2. Los métodos estáticos: compilación izquierda mira, mira en el lado izquierdo de la carrera;
  3. método no estático: Look compilación izquierda, aspecto adecuado de la carrera.

4, resumen

  ideas de programación orientados a objetos distintos de la programación orientada a los procesos, su uso y especificaciones más estrictas. Java programación orientada a objetos es que hay muchos más estandarizada, un estudio más profundo de la necesidad de java lo entenderá mejor.

Por favor indique el lugar equivocado! Pensó que estaba en problemas si se puede dar un elogio! sección de comentarios o intercambio carta privada Damos la bienvenida!

Publicado 30 artículos originales · ganado elogios 72 · Vistas a 10000 +

Supongo que te gusta

Origin blog.csdn.net/Orange_minger/article/details/104680093
Recomendado
Clasificación