Java第九课

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
的执行程序,所有程序都要有一个程序去做主管,其它模块只是程序执行过程中
的调用.
http://www.taobao.com 是主程序,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,所有信息清空,解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值