2021-05-25

面向对象的特点?面向对象的三大特征?

 特点:

         1.适应性强,拓展性好

         2.从任务的执行者为,变成指挥者

 三大特征:

      封装,继承,多态

 封装:

      是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。

封装的原则,封装好处:

1.将不需要对外提供的内容隐藏起来

2.把属性隐藏,提供公共方法对其访问

3.提高代码的复用性

4.提高安全性【禁止对象之间的不良交互提高模块化】

继承:

多个类中存在相同属性和 行为时,将这些内容抽渠道单独一个类中 ,多个类无需在定义这些属性和行为,只需要继承那个类即可

继承的好处:

 1.提高了代码的复用性,维护性

 2.让类与类之间 产生了关系,是多态的前提 

继承的弊端:

 1.类的耦合性 增强了

 2.开发的原则:高内聚,低耦合

 3. 耦合:类与类的关系

 4:内聚:就是自己完成某件事情的能力

继承注意的事项:

  1.子类只能继承父类所有非私有的成员(成员方法和成员变量)

  2.子类不能继承父类的构造方法,但是可以通过super关键字去访问父  类的构造方法

  为什么是单继承而不能多继承?

   1.若为多继承,那么多个父类中有重复的属性或者方法时,子类的调用结果会含糊不清,因此用单继承

    2.多继承虽然能使子类同时拥有多个父类的特征,但是其缺点也是显著的,主要有两个方面:

     1.如果在一个子类继承的多个父类中拥有相同名字的实例变量,子类在引用该变量时将产生歧义,无法判断应该使用哪个父类的变量。

     2.如果在一个子类继承的多个父类拥有相同的方法,子类中没有被覆盖该方法,那么调用是将产生歧义,无法判断应该调用哪个父类的方法

为什么是多实现呢?
o 通过实现接口拓展了类的功能,诺实现多个接口中有重复的方法也没有关系,因为实现类中必须重写接口中的方法,所以调用时还是调用类中重写的方法
 
多态
   多态是Java要实现的多种形式
   多态实现条件?
o Java实现多态有三个必要条件“继承、重写、向上转型
o 继承:在多态中必须存在有继承关系的子类和父类
o 重写:子类对父类中某些方法进行重新定义,再调用这些方法时就会调用子类的方法。
o 向上转型:在多态做中需要将子类的引用赋给父类对象,只有这样该引用才能够具备技能调用父类方法和子类的方法
 
多态的实现方式:
· 多态的实现方式有哪些?
o 多态作用:多态性就是相同的消息使得不同的类做出不同的响应
 
· 第一种实现方式:基于继承实现的多态
  基于继承的实现机制主要表现在父类和继承父类的一个或多个子类对某些就是不同的对象可以执行相同的行为。多态的表现就是不同对象可以执行的相同的行为,但是他们都需要通过自己的实现方式来执行,这就是要得益于向上转型了
· 第二种实现多态得方式:基于接口实现的多态
   继承是通过重写父类的同意方法得几个不同子类来体现的,那么就可以是通过实现接口并覆盖接口中同一方法的几个不同的类的体现
  在接口的多态中,指向接口的引用必须是指定这是下了该接口的一个类的实例程序,在运行时,根据对象引用的实际类型来执行对应的方法
  继承都是单继承,只能为一组相关的类提供一致的服务接口。但是接口可以是多继承多实现,它能够利用一组相关或者不相关的接口进行组合与扩充,能够对外提供一致的服务接口。所以它相对于继承来说有更好的灵活性
 
多态好处:
     提高了代码的维护性
     提高了代码的扩展性
多态的弊端:
     不转型的话,不能使用子类特有的属性和行为

使用python中的pymsql完成如下:表结构与数据创建 1. 建立 `users` 表和 `orders` 表。 `users` 表有用户ID、用户名、年龄字段,(id,name,age) `orders` 表有订单ID、订单日期、订单金额,用户id字段。(id,order_date,amount,user_id) 2 两表的id作为主键,`orders` 表用户id为users的外键 3 插入数据 `users` (1, '张三', 18), (2, '李四', 20), (3, '王五', 22), (4, '赵六', 25), (5, '钱七', 28); `orders` (1, '2021-09-01', 500, 1), (2, '2021-09-02', 1000, 2), (3, '2021-09-03', 600, 3), (4, '2021-09-04', 800, 4), (5, '2021-09-05', 1500, 5), (6, '2021-09-06', 1200, 3), (7, '2021-09-07', 2000, 1), (8, '2021-09-08', 300, 2), (9, '2021-09-09', 700, 5), (10, '2021-09-10', 900, 4); 查询语句 1. 查询订单总金额 2. 查询所有用户的平均年龄,并将结果四舍五入保留两位小数。 3. 查询订单总数最多的用户的姓名和订单总数。 4. 查询所有不重复的年龄。 5. 查询订单日期在2021年9月1日至9月4日之间的订单总金额。 6. 查询年龄不大于25岁的用户的订单数量,并按照降序排序。 7. 查询订单总金额排名前3的用户的姓名和订单总金额。 8. 查询订单总金额最大的用户的姓名和订单总金额。 9. 查询订单总金额最小的用户的姓名和订单总金额。 10. 查询所有名字中含有“李”的用户,按照名字升序排序。 11. 查询所有年龄大于20岁的用户,按照年龄降序排序,并只显示前5条记录。 12. 查询每个用户的订单数量和订单总金额,并按照总金额降序排序。
06-03
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值