目的

复习如何实现代码的逻辑思路;

复习类的封装;

复习类和对象的创建使用和封装;

练习

实现功能:人到超市买东西

抽出三个类:  人   超市    东西;

功能点:     买;

它们之间的联系:东西包含于超市  , 东西可以考虑用数组来表示;

把类这个模型建立起来:人  超市   东西;

具体实现
package exercise1;

public class Product {
private String ProductName; public String getProductName() {
return ProductName;
} public void setProductName(String productName) {
this.ProductName = productName;
} }
package exercise1;

public class Market {
private String marketName;
private Product[] productArr; public String getMarketName() {
return marketName;
} public void setMarketName(String marketName) {
this.marketName = marketName;
} public Product[] getProduct() {
return productArr;
} public void setProduct(Product[] product) {
this.productArr = product;
} Product sell(String name){
for (int i=0;i<productArr.length;i++){
if (productArr[i].getProductName()==name){
return productArr[i];
}
}
return null;
}
}
package exercise1;

public class Person {
private String name; public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} //购物,指定去哪个超市,商品名
//调用超市的卖货方法
Product shopping(Market market,String name){
return market.sell(name);
}
}
package exercise1;
//购买,给前面的类的具体对象属性赋值,并调用相关方法;
public class Shopping {
public static void main(String[] args) {
//创建商品对象,给名字赋值
Product p1=new Product();
Product p2=new Product();
Product p3=new Product();
Product p4=new Product();
Product p5=new Product();
p1.setProductName("苹果"); //为什么没有main这个方法这行会报错??? 因为方法的调用,必须要放到代码块或方法中;
p2.setProductName("梨子");
p3.setProductName("洗衣粉");
p4.setProductName("香皂");
p5.setProductName("扫帚"); //创建超市对象,给超市名字赋值,给仓库赋值
Market m=new Market();
m.setMarketName("家家乐超市");
m.setProduct(new Product[]{p1,p2,p3,p4,p5}); //调用购物方法,指定超市和商品名,得到购物结果
Person p=new Person();
p.setName("靖路");
Product result=p.shopping(m, "苹果"); //根据结果进行判断
if (result==null){
System.out.println("对不起,我们超市没有该商品!");
}else{
System.out.println(p.getName()+"在"+m.getMarketName()+"买了"+result.getProductName());
//靖路在家家乐超市买了exercise1.Product@1b6d3586 为什么不能是result?而是乱码? 是不是result是一个商品对象
//而不是商品名?
} } }
												

java面向对象复习之一的更多相关文章

  1. 简单登录注册实现(Java面向对象复习)

    简单登录注册的实现(面向对象的复习) 需求: 设计用户类,包含用户名和密码两个属性 设计LoginDemo类设计用户登录方法 用户有三次登录机会,如果连续三次登录失败则退出程序 功能实现页面:     ...

  2. JAVA面向对象复习

    对象:真实存在的唯一的事物. 类: 同一种类型的事物公共属性与公共行为的抽取. java面向对象语言: 核心思想: 找适合的对象做适合的事情. 找对象的方式: 方式一: sun已经定义好了很多了类,我 ...

  3. Java项目实例之---学生选课(面向对象复习)

    学生选课(面向对象复习) 设计一个学生选课的程序,分别有学生类(Student)和课程类(Course) 学生类的属性有:学号(String),姓名(String),性别(char),所选科目(Cou ...

  4. Java项目案例之---计算公司员工的工资(面向对象复习)

    计算公司员工的工资(面向对象复习) 某公司的雇员分为以下若干类: Employee:这是所有员工总的父类,属性:员工的姓名,员工的生日月份.方法:double getSalary(int month) ...

  5. Java项目案例之---开灯(面向对象复习)

    开灯(面向对象复习) 设计一个台灯类(Lamp)其中台灯有灯泡类(Buble)这个属性,还有开灯(on)这个方法 设计一个灯泡类(Buble),灯泡类有发亮的方法 其中有红灯泡类(RedBuble)和 ...

  6. Java面向对象编程基础

    一.Java面向对象编程基础 1.什么是对象?Object 什么都是对象! 只要是客观存在的具体事物,都是对象(汽车.小强.事件.任务.按钮.字体) 2.为什么需要面向对象? 面向对象能够像分析现实生 ...

  7. 20165220实验二《Java面向对象程序设计》

    实验封面: 实验二 面向对象程序设计-1 实验要求: 参考 http://www.cnblogs.com/rocedu/p/6371315.html#SECUNITTEST 参考http://www. ...

  8. 2017-2018-2 20165207实验二《Java面向对象程序设计》实验报告

    2017-2018-2 20165207实验二<Java面向对象程序设计>实验报告 课程:Java程序设计 班级:1652 姓名:李天林 学号:20165207 实验日期:2018年4月1 ...

  9. 20162304 实验二《Java面向对象程序设计》实验报告

    20162304 实验二<Java面向对象程序设计>实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 ...

随机推荐

  1. robotframework json解析

    用robotframework做接口测试,现在用的最多的就是json格式的数据,刚开始接触会感觉一脸懵逼,不知道怎么去取里面的值.在这里简单介绍一下,其实本身json取值不会太难,只要理解层次关系,一 ...

  2. 正则表达式——Unicode 匹配规则

      一般来说,数字字符解释[0-9],单词字符就是[0-9a-zA-Z_],空白字符则包括空格.回车等字符,但这是 ASCII 编码中的情况,在 Unicode 编码中并非如此.   因为包括了多种语 ...

  3. Jmeter---不同线程组的使用介绍(转)

    在添加线程组:发现线程组种类挺多的  翻查资料后对几个工具进行总结: 原本想写三个 在翻阅资料,后发现下面博文比较详情, 本文大部分来自: https://blog.csdn.net/sinat_32 ...

  4. LeetCode算法题-Rectangle Overlap(Java实现)

    这是悦乐书的第325次更新,第348篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第195题(顺位题号是836).矩形表示为数组[x1,y1,x2,y2],其中(x1,y ...

  5. kettle入门大数据管理工具

    研究 kettle 的使用 大佬博客:https://www.cnblogs.com/mq0036/p/9238646.html 国内镜像下载:http://mirror.bit.edu.cn/pen ...

  6. mysql数据库负载均衡高可用之主从、主主备份,实时同步

    一:MySQL Replication 什么是MySQL Replication Replication可以实现将数据从一台数据库服务器(master)复制到一或多台数据库服务器(slave) 默认情 ...

  7. Nginx日志监控 使用 goaccess查看nginx日志

    nginx日志监控 yum install goaccess   安装使用教程 goaccess access.log -o ../html/report.html --real-time-html ...

  8. CentOS7搭建NTP服务器及客户端同步时间

    一.服务器配置 1.查看服务器.客户端操作系统版本 [root@hadoop101 ~]# cat /etc/redhat-release CentOS Linux release (Core) 2. ...

  9. [集合]Map的 entrySet() 详解以及用法(四种遍历map的方式)

    Entry 由于Map中存放的元素均为键值对,故每一个键值对必然存在一个映射关系. Map中采用Entry内部类来表示一个映射项,映射项包含Key和Value (我们总说键值对键值对, 每一个键值对也 ...

  10. 批处理遍历文件夹执行git pull

    echo off & color 0A for /d %%f in (D:\www\*) do ( D: cd %%f chdir git pull ) pause 遍历D:\www\这个文件 ...