Java面向对象程序设计2

Java面向对象程序设计

面向对象的思想:

  1. 只有一个主程序入口,入口在首页模块,入口是main函数,其它模块没有main方法,在其它模块中有方法。
  2. 模块理解成类,在实际的代码中,用户调用类,实例化,实例化后的就是对象。
  3. 编写代码中,需求,订单类需要用商品类中的相关信息,采用extends继承。   

1、如果把第一个地址中有数据的属性传递给第二个地址,第二个地址就有数据,第二个地址传递时,也把数据传递给第三个地址,保证数据依次传送

2、使整个extends只有一个地址存在。

第二种方法就是只有一个地址,简单,但是代码不一定可读。

需要找一个属性名最多的类实例化,也就是实例化继承链最底端的类,保证只有一个地址,这个实例在整个程序中有效,需要在main当中进行实例化。

3、在面向对象概念中,有一个重写

重写:父类定义方法,子类实现这个方法,子类继承了父类的方法,但父类方法满足不了子类的需求,需要重写。重写的关键字Override

4、系统自动产生构造函数

在类里右键

选择“Generate。。”后出现菜单,选择”constructor”选择“构造器”。

在出现的菜单中,按住shift键,把这两个变量都选中变蓝底。

然后点击下面的确定(ok)

用一个地址指向实现重点:

  1. new 一个地址就是一个地址指向,一个地址把new 逻辑放在main函数中
  2. 在调用模块中可能出现某个子类在父类中没有的方法 ,父类中定义这个方法,不实现方法中的代码,由子类去重写,重写的关键字是Override
  3. 在调用模块中可能出现某个子类在父类中没有的属性,直接把父类的属性去掉,在子类中构建构造函数,构造函数没有返回值,可以自己实现,可以使用编辑工具自动产生。这里代码只是实现属性的初始化。
  4. 如果实例化的类中有构造函数,构造函数中还有参数存在,在实例化时就需要指明参数的具体的值。
  5. 因为要使用一个地址,相当于实例化一次,在整个逻辑继承链中有实例化的代码都把实例化代码去掉,用this当前实例指向其调用的方法。

 功能上,如果帐户和钱可以用户输入,这个username和money改成Scanner

在构造函数中,同一个函数名,出现传参和不传参两种形式,这种技术叫重构。

 

注意:在函数处理方面

父类有函数,子类实现,这种方法是重写。

函数具有同一个函数名,不同的函数的参数,这种方法是重构。

构造器不般采用重构的方式,实例化就是执行构造器,也可以带参数进行实例化,也可以不带参数实例化。

总结:输出对应的商品信息,只进行new格式化一次。

代码写完,剩下安全性的问题

 注意:

关键字

Public关键字,意味着只要类实例化,每一个开发者都可以调用,不安全,make_order()方法只有子类去重写父类,只有继承后才可能发生重写。不继承调用不了,public 改成protected, 如果你的调用到某个类就截止了,后面不允许再调用,绝代方法。可以使用final.

再继承,后面的子类不能再使用final定义的方法了。

这时Pay支付没有下订单的权限了。

主类中调用时只要符合继承链的都可以调用。

除了public,protected外,还有一个关键字是private私有的,作用子类继承父类后,这个属性或者方法不允许子类使用。

final 继承过程中不再传承.

源码:Java面向对象程序设计2代码 · zyt/麦当劳投资人 - Gitee.comicon-default.png?t=N7T8https://gitee.com/zytscode/mcdonalds-investors/blob/master/Java%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A12%E4%BB%A3%E7%A0%81

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值