编程思想
什么是面向对象和面向过程
面向过程与面向对象都是我们编程中,编写程序的一种思维方式。
面向过程的程序设计方式,是遇到一件事时,思考“我该怎么做”,然后一步步实现的过程。例如:公司打扫卫生(擦玻璃、扫地、拖地、倒垃圾等),按照面向过程的程序设计方式会思考“打扫卫生我该怎么做,然后一件件的完成”,最后把公司卫生打扫干净了。
2:面向对象的程序设计方式,是遇到一件事时,思考“我该让谁来做”,然后那个“谁”就是对象,他要怎么做这件事是他自己的事,反正最后一群对象合力能把事就好就行了。
举例:公司打扫卫生(擦玻璃、扫地、拖地、倒垃圾等),按照面向对象的程序设计方式会思考“我该让谁来做,如小明擦玻璃、让小丽扫地、让小郭拖地、让小强倒垃圾等”,这里的“小明、小丽、小郭、小强”就是对象,他们要打扫卫生,怎么打扫是他们自己的事,反正最后一群对象合力把公司卫生打扫干净了。
面向对象思维方式的好处
1:面向对象思维方式是一种更符合人们思考习惯的思想
2:面向过程思维方式中更多的体现的是执行者(自己做事情),面向对象中更多的体现是指挥者(指挥对象做事情)。
3:面向对象思维方式将复杂的问题简单化。
面向对象的特征
1:封装:保护内部的操作不被破坏;
2:继承:在原本的基础之上继续进行扩充;
3:多态:在一个指定的范围之内进行概念的转换。
继承(extends)
extends:延伸 拓展继承:子类继承父类,拥有父类的属性和方法。
`
public class Animal {
public String name;
public String sex;
}
class Dog extends Animal{
}
Dog dog = new Dog();
特点
1,继承父类的属性和方法
2,不能继承父类的 private 修饰的属性和方法 父类的构造方法 子类和父类不在同一包下,使用默认的访问修饰符
3,java中的类只有单继承,一个子类只有一个父类。但是可以多重继承 4,一个类如果没有extends继承,默认继承Object。Object是所有类的父类 5,父类又叫超类,基类。子类又叫派生类。
多态(Polymorphism)
概念: 多种形态
水–放在不同的容器中,产生不同的形态形成多态的必要条件
多态的使用
1,要有关系–继承
2,要有方法重写–重写式多态
3,要有向上转型–父类的引用指向子类的对象
public class Animal {
public void eat(){
System.out.println("animal eatting...");
}
}
public class Cat extends Animal{
public void eat(){
System.out.println("我吃鱼");
}
}
public class Dog extends Animal{
public void eat(){
System.out.println("我吃骨头");
}
public void run(){
System.out.println("我会跑");
}
}
public class Main {
public static void main(String[] args) {
Animal animal = new Cat(); //向上转型 指向 指针
animal.eat();
Cat cat = (Cat)animal; //向下转型
int 4 double 8
int a = 1;
double d = a;
int c = d;
animal = new Dog();
animal.eat();
}
}