Java面向对象的程序设计

Java基础:

三种基本语句(选择,循环,顺序)

If 条件,switch条件,for循环,while循环中

Println输出  Scanner输入设备

结合于java基本类型的变量(有一些问题用函数)  

数组(定长,相同数据类型)

 注意:数组是引用对象,赋值赋值的是地址

       索引从0开始,获取长度length属性

读/(修改) for循环,或者增强for,简易方法: Arrays.toString()

之前开发特点:思路一条线

缺点:项目主导 不利于团队开发

 面向对象的设计

大程序:分模块(分工协作)

电商: 商品 订单 支付 用户 购物车(子功能)

面向对象的开发

做项目之前: 有抽象的描述(想法) ---à规划

 后面开发    抽象的描述具体化---à对抽象的描述改进,功能实现   

Java 引入概念: 类   对象

类: 对一些事物的抽象描述 ,统称,

对象,是实现抽象的具体化

 Class 就是类

当我们把写好的class使用new 把class具体使用时,就是对象,把类转成对象的new过程,就是一个实例化的过程.

new ---à实例(对象实现类)

面向对象编程----à定义类,程序员实现类中的方法

有利于项目中管理,有利于分工协作开发,有利于项目中模块分离

编程:变量定义(变量往往代表值) 功能(算法)――>函数

变量:代表编程中某个值

函数:代表编程中某个功能(通过循环,条件,顺序写逻辑)

商品

维度:

ISBN编号:9787515222585书名:伤寒论 白话彩图典藏版作者:辛丽静

是否是套装:否出版社名称:中医古籍出版社

对购买和加入购物车所有的商品都有功能

淘宝搜药(出来的有药方面的书,有药)

药类属性:

型号:圣艾元云南本草痔立消品牌:圣艾元(医药)产地:湖北

颜色分类:5盒装【重度痔疮适用】 3盒装【较重痔疮适用】 2盒装【中度痔疮适用】 1只装【轻度痔疮适用】生产企业:湖北林源堂医药有限公司增值服务:正品保障

适用人群:内外痔疮/大便出血/肛周湿疹症状:内外痔疮/大便出血/肛周湿疹注册证号:鄂襄阳械备20190153号

选购热点:痔疮膏医疗器械产品名称:伤口护理软膏伤口敷料种类:其他

剂型:乳膏

有相同的特征,也有不同的特征,都在商品模块,操作都是大同小异

在商品模块中,属性有共性的内容,又有个性的内容,操作是大同小异(秒杀)

采用面向对象的思维

把共性的内容定义成类,个性的东西相当于具体的实例

把商品用面向对象的方法来进行思考问题,商品模块中就有一个类是商品

Java建立类的时候,类名需要大写,对象的名字就小写,小写相当于实例化的类

与之前编程不一样的地方,在于之前编程有一个main函数,这里main是java的执行程序,所有程序都要有一个程序去做主管,其它模块只是程序执行过程中的调用.

淘宝是主程序,main函数只显示taobao首页就ok了.

其它模块程序都是用户交互(点击)进去,触发了某个函数,函数调用模块.

面向对象编程:(1)分模块,写模块,不要写main方法,只有变量和函数

              (2)最终分析逻辑,哪个模块是主函数,模块和模块之间如何调用.(调用流程就是用户操作逻辑,把操作逻辑中共性的内容提取成类)

商品改成类

配送(地址,就是值) java分析类型  String

数量(1或2,就是值)java 分析类型 int

价格(值)有小数  java分析类型 double

函数:立即购买(用户点击立即购买),加入购物车(用户点击加入购物车)

注意: 这里没有main  

这样,商品类的代码

public class Goods {
    //把变量定义完成,peisong 配送的变量  num 数量的变量 price 价格的变量
    String peison;
    int num;
    double price;
    //有两个方法  buy是立即购买 addcar加入购物车
    public static void buy(){
        System.out.println("你购买了这个商品");
    }
    public static void addcar(){
        System.out.println("你已经把商品加入购物车");
    }
}

 首页模块中模拟用户操作,实现触发商品

/*
首页模块
是最终执行的模块
 */
public class SouYe {
    //这里有main函数
    public static void main(String[] args) {
        //用户点击商品,把这个商品具体化了,对商品具体化就是把商品的类实例化,实例化过程就是new
        Goods goods = new Goods();
        //具体化,把属性赋值,首页告诉商品名称,商品价格
        goods.name="伤寒论张仲景正版原著中医书籍大全白话彩图典藏版";
        goods.price=9.8;
        //模拟用户点击,当前步骤省略了从商品列表页到详情页
        //相当于在首页中选中这个商品,进入到商品具体页面,
        //看到商品的其它属性,变量值直接赋值就可以
        goods.peison="江苏南京至北京市昌平区";
        goods.num=1;
        //触发"立即购买",函数是要用()
        goods.buy();
    }
}

 因为有主函数,主函数就是面向对象开发程序的入口,执行首页模块即可.

使用this时出现

   报错原因:this不能用在静态中。写面向对象的方法时,把static的静态去掉。

注意:在写对象的方法函数时,不用加static.

面向对象的思想中,变量专业名称:属性 函数专业名称:方法

对于类,编写类中的属性和类中的方法

按照面向对象思维完成基本电商逻辑图

首页:整个程序的组织者,调度者,用户参与都是通过首页来参与的

功能:

首页模块: 功能:显示平台中的所有商品(商品列表:名称,价格)

商品模块:选择商品--à商品模块--à显示商品的详细 (名称,价格,配送,数量)

订单模块:  功能:订单号(属性) 商品的全部信息    方法:  去支付

支付:功能:帐户名称,帐户余额 方法:支付

购物车模块:订单号 商品全部信息的数组(定长,要求用户购买商品不能超过5个)

首页:显示所有商品,必须有main函数,main函数中是所有商品的显示,商品是具体的实例,原来商品是抽象的概念,在首页上知道内容,首页上是商品实例对象的显示.首页代码,new商品类的对象,让用户选择浏览哪一个商品.

 商品模块:

显示商品详情因为变换页面,显示商品详情属性商品模块, 在商品模块多一个方法,显示商品详情,并且触发立即购买或者触发加入购物车.

 用户选择立即购买,网站出现变换页面,触发订单模块.

生成订单是功能,生成订单后才能支付,还要计算用户的钱,有商品价格,商品的数量,商品的名称

这里的订单,需要继承goods的类,把类中所有内容取出来,用到订单中.继承后就是子类和父类,子类具备父类的所有属性和方法.继承的关键字是extends,

在订单中总价,最终生成定单就是把总价,商品名称,地址打包放在一起,形成订单编号,然后去支付。

凡是面向对象(属性,方法)

属性: 总价(商品模块没有总价,只有生成订单才会有总价,总价是一个值)

方法:生成订单功能(形成订单号,包含相关信息,实现去支付)

包含相关信息,通过继承extends Goods获取的

支付模块:

支付类(属性,方法)

支付帐户信息,名称,余额,

方法:支付逻辑(余额正确,支付,支付完把余额减掉)  

在方法中对比用户余额和最终订单的总价格,对比需要订单里面的总价信息,获取订单中的信息,采用继承。

继承后,如果发了new,所有信息清空,解决。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值