面向对象
java开发的核心基础思想,就是面向对象编程思想,贯穿了java开发的整个历史,包括现在和将来
1.理解:
面向对象是相对面向过程而言的,这是一种思想的转变,面向过程是要扣清每一个实现细节,而面向对象则是有一种拿来即用的感觉,我不关心这个东西怎么实现的,我只关心这个东西可以干什么,,给大家举个例子吧:
中午肚子饿的时候,面向过程的人是考虑,我们要吃什么。然后要买什么菜,然后要用什么工具,然后要则么做等一些列过程细节,面向对象的人则是我要吃饭,只要用美团点一个外卖就可以了,不去考虑这道菜到底是怎么做出来的。只关心能不能吃的问题。也就是问题本身,我们本来就是要吃饭的。
以上就是对面向对象的浅层次理解,你会发现在java的世界里。万物皆对象,类,线程,瓶子,。树,花。。。。
2.面向对象的三大特性
1.封装性:
基于面向对象的思想,我们可以将一类事物的共性进行抽取,包括属性和行为,然后进行封装,变成java中的一个类,然后我们可以根据这个类去创造去,实例化出很多同一类下的事物,
//话不多说看代码:抽取汽车的共性
class Car{
private String name;
private String color;
private String size;
......
public Car(String name){
this.name=name;
}
//跑的行为功能
public void run(){
}
......
}
//我们将汽车的 名字,颜色,尺寸,以及跑的行为,进行封装,变为一个汽车类, 假设现在我们要通过这个汽车的抽象性的类,去创造一个雪佛兰汽车
Car car= new Car("雪佛兰");
//需要一个大众汽车
Car car =new Car("一汽大众");
2.继承,从原有类中派生出一个新的类,新类被称作子类,原有类被称作父类,用关键字extends修饰,子 类继承父类的所有公有方法,不能继承父类中私有的方法 ,同时在java中只能单继承,但是一个父类可 以有若干个子类。通过继承我们可以实现程序的延展性和可维护性,
//父类
class Animal{
private String name;
private Integer age;
public void eat(){
System.out.println("吃好吃的");
}
}
//子类
class Dog extends Animal{
}
Dog dog= new Dog();
dog.eat();//打印结果,吃好吃的
3.多态性:同一对象在不同时刻具有不同的结果,其实就是,父类引用指向子类对象,利用多态可以实现通用代码的编写,实现代码的统一调度。(接口的体现最为明显)
//接口代码的实现
public interface Animal{
void eat();
}
class Dog implements Animal{
@Override
public void eat(){
//书写属于Dog类的业务代码
}
}
class Pig implements Animal{
@Override
public void eat(){
//书写属于Pig类的业务代码
}
}
**总结:**面向对象是Java的编程基础一定要学会