Java de programação orientada a objeto

1. O que é programação orientada a objetos

   OOP (Programação Orientada a Objetos, tantas vezes chamado OOP) não é exclusivo para Java, mas uma idéia de programação, Java, C ++, Python tem a sua realização. Sua essência é refletido no modelo de processo de pensamento abstrato e abordagem orientada a objetos para estabelecer. Modelo é usada para refletir as características das coisas no mundo real, qualquer modelo não pode refletir todas as características específicas de coisas objetivas, única uma regra de coisas abstratas e variedade, e mais geralmente no intervalo que abrange, mais focado e descrição mais profunda das características do objeto. Ao estabelecer o modelo para alcançar o resumo é aprofundar a compreensão do objeto das pessoas.

2, vantagens e desvantagens OOP

Prós: Fácil de manter e expandir, de alta capacidade de reutilização de código. Uma vez que não são objecto de encapsulamento orientada, herança, característica polimorfismo, o sistema pode ser concebido acoplamento baixo, tornando o sistema mais flexível.
Drawback: sobrecarga da CPU de grandes, ocupando mais recursos

3, as três características

Pacote: hidden propriedades do objecto e detalhes de implementação, mantendo apenas algumas das interfaces externos;
Herança: subclasses herdar os atributos e métodos da classe pai;
polimorfismo: uma pluralidade de capacidade ou a forma de diferentes formas do mesmo comportamento.

3.1, o pacote

   modificador de acesso utilizado para conseguir o controle das propriedades e métodos, incluindo privada: Esta classe só pode acesso; padrão (permissões padrão): Este pacote só pode acessar; protegido: e subclasses pacotes em sucessão só pode ser acessado ; público: acessível. Em seguida, definir uma classe de objeto, atributos normalmente escondidos, fornecendo um conjunto comum, obter métodos de acesso.

/**
 * @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, herança

   Herança permite o acesso a todos os atributos e métodos da classe pai subclasses não-privadas, a reutilização de código é reduzida. Herança pode fazer a hierarquia de objetos, digite mais 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(); 
	} 
}

   Como as características do polimorfismo apoio, tipo showAnimalEat animal de método, cão e gato é o tipo classe pai, tipo de objeto receptor pai subclasse, o objeto pode passar objeto Cat and Dog para o método. Quando a comer método executado polimorfismo, pré-determinada, uma subclasse substitui um método realizado, em seguida, consistente com o efeito de showCatEat natural, método showDogEat, é possível substituir o showAnimalEat acima de dois métodos. Não apenas uma alternativa, em termos de escalabilidade, se depois mais sub-categorias aparecem, não precisa método de gravação showXxxEat, o uso direto de showAnimalEat pode ser feito. Portanto, os benefícios de multi-estado, incorporadas no programa pode ser escrito em simples, e extensão bom.

3.3.1, regras de funcionamento multi-estaduais

  Se o método pai de compilação (interface de pai) ou a própria classe, o erro não usar IDE, ver o funcionamento de um determinado tipo, classe ou se a classe do método, o erro não vai usar IDE.

  1. variáveis ​​de membro: Olhar compilação esquerda, olhar para o lado esquerdo do prazo;
  2. Os métodos estáticos: compilação esquerda Olhe, olhe para o lado esquerdo do prazo;
  3. método não-estático: Olhar compilação esquerda, direita olhar do prazo.

4, resumo

  idéias programação orientada a objetos diferentes da programação orientada a processos, a sua utilização e as especificações mais rigorosas. Java objeto programação orientada é que existem muitos mais padronizado, mais estudo aprofundado da necessidade de Java vai entender melhor.

Por favor, indicar o lugar errado! Pensei que ele estava em apuros se você pode dar um louvor! Congratulamo-nos com seção de comentários ou troca carta particular!

Publicado 30 artigos originais · ganhou elogios 72 · vê 10000 +

Acho que você gosta

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