面试题_面向对象编程 面向过程和面向对象的区别

面向对象编程面向过程编程和面向对象编程的区别:面向过程,面向对象是两种不同处理问题的角度面向过程更注重的是事情的每个步骤以及顺序,面向对象更注重事情的参与者以及各自的任务面向过程编程:举个栗子:洗衣机洗衣服面向过程将这个任务解析成一系列的步骤:1、打开洗衣机 2、放入脏衣服 3、放洗衣粉 4、注水 5、开始洗衣服。。。面向对象编程:还是举个栗子:洗衣机洗衣服在这个任务中,面向对象将任务拆分成两个对象:人:1、打开洗衣机 2、放入衣服 3、放入洗衣机粉 4、盖上洗衣机盖子洗衣机:1、启
摘要由CSDN通过智能技术生成

面向对象编程

面向过程编程和面向对象编程的区别:

面向过程,面向对象是两种不同处理问题的角度

面向过程更注重的是事情的每个步骤以及顺序,面向对象更注重事情的参与者以及各自的任务

面向过程编程:

举个栗子:洗衣机洗衣服

面向过程将这个任务解析成一系列的步骤:1、打开洗衣机 2、放入脏衣服 3、放洗衣粉 4、注水 5、开始洗衣服。。。

面向对象编程:

还是举个栗子:洗衣机洗衣服

在这个任务中,面向对象将任务拆分成两个对象:

人:1、打开洗衣机 2、放入衣服 3、放入洗衣机粉 4、盖上洗衣机盖子

洗衣机:1、启动 2、自动注水 3、开始请洗 4、风干

从上面的例子中可以看出,面向过程比较直接高效,而面向对象方便复用,扩展和维护。

面向对象编程三大特征:封装、继承、多态

封装

封装:封装的意义在于明确标识出允许外部使用的所有成员方法和参数,而内部的细节不对外公开,外部可以通过对象反复调用。

  • javaBean的属性私有,提供getset对外访问,因为属性的赋值或者获取逻辑只能由JavaBean本身决定,而不能由外部修改;
private String name;
public void setName(String name){
	this.name="Test_"+name'
}
//该name有自己的命名规则,不能由外部直接复制修改赋值
  • orm框架

    操作数据库,我们不需要关心连接时如何建立的,sql执行的过程是怎样的,只需要引入mybatis

    ,调用对象所需要的方法即可。

继承

继承:把相同的属性和方法集成父类,再由父类提供给子类使用,私有类除外;子类(派生类)继承父类(基类、超类)的方法,并作出自己的改变或者扩展。

this和super的区别:

  • this:代表当前调用的对象,this可以调用到本类中的成员方法,this(age,name)调用奔雷的构造方法
  • super:可以调用到父类成员变量、父类的方法,super(age,name)调用父类的构造方法、super.sayHello()调用父类的方法
多态

多态:英文Polymorphism 一个类的多种形态;基于对象所属类的不同,外部对同一个方法的调用,实际执行的逻辑不同,多态是在一定的继承关系方法重写的情况下实现的;

编译时多态:

  • 编译期间决定目标方法
  • 通过overloading重载实现
  • 方法名相同,参数不同
/**
 * 方法重载
 */

public class Demo1 {
    public int addtion(int x,int y){
        return x+y;
    }
    public  int addtion(double x,int y,int z){
        return (int)x+y+z;
    }
    public int addtion(int x,int y,int z){
        return  x+y+z;
    }

    public static void main(String[] args) {
        Demo1 demo=new Demo1();
        System.out.println(demo.addtion(1,2));
        System.out.println(demo.addtion(1.0,2,3));
        System.out.println(demo.addtion(3,4));
    }
}
//运行结果:
3
6
7

运行时多态:

  • 运行期间决定目标方法】
  • 方法名相同,参数相同
  • overriding和继承实现
  • JVM目标方法
package EverydayTopic;

/**
 * 方法重写override
 */


 class Animal {
    public void run() {
        System.out.println("animal is running..");

    }

 void eat() {
        System.out.println("animal is eating...");
    }
}

    //dog
class Dog extends Animal {
        @Override
        public void run(){
            System.out.println("i can running---dog");
        }      
    }
class Cat extends Animal {
    @Override
    public void run(){
        System.out.println("i can running++cat");
    }

    @Override
    public void eat(){
        System.out.println("i can eating++cat");
    }
}

    public class OverideDemo {
    public static void main(String[] args) {
    Animal dog=new Dog();
    Animal cat=new Cat();
    dog.eat();
//    dog.run();
    cat.eat();
    cat.run();
    }
}
//运行结果
animal is eating...
i can eating++cat
i can running++cat
    
    
    //运行结果可见dog中eat()没有重写实现,则把父类Animal的eat()打印出来
    //Cat中的eat() run()实现重写,结果能够打印
类和对象的关系:

类:把相同特征的归为一类,是抽象的概念;比如鱼类、汽车等

对象:是类的实体。是真实存在的一个事物。符合类的概念的一个实物,叫做对象。

如果要调用类里面的属性和方法,首先要创建对象。 对象是类的实例,通过对象可以重复调用属性和方法。

优势:代码重用,提高开发效率。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

坐着地板打地鼠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值