java面向对象复习之一

目的

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

复习类的封装;

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

练习

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

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

功能点:     买;

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

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

具体实现
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());
            //靖路在家家乐超市买了[email protected]       为什么不能是result?而是乱码?   是不是result是一个商品对象
            //而不是商品名?
        }

    }

}


原文地址:https://www.cnblogs.com/shijinglu2018/p/11142395.html

时间: 2024-10-14 02:19:40

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

java面向对象复习

Java面向对象复习 1.类是抽象的,对象是具体的 2.方法的重载: 条件: (1):在同一个类中 (2):方法名称相同 (3):方法参数不同 3.构造方法: 语法: (1)必须和类名相同 (2)必须没有返回类型,可以重载 (3)如果没有自定义一个构造方法,系统会为自动创建一个无参构造方法 (4)如果已经自定义了一个构造方法,系统就不会创建这个无参的构造方法 作用: (1)初始化类中的成员变量 (2)完成一些必须的初始化工作 4.this相当于当前对象,一般情况下可以省略 5.作用域: 类的作用

Java面向对象复习(一)类和对象

类和对象 1)类和对象的概念?为什么要使用类? 2)如何定义类?定义类,定义类的属性(成员变量),定义类的方法(构造方法,成员方法) 3)如果适用对象?类 对象变量 =new 类(); 4)方法的定义:访问修饰符,返回值类型(void),方法名,参数列表(形参),方法体 5)方法调用:如果方法有参数的话,要传实参给方法 6)两个不同的参数传递方式:值传递,引用传递(数组,类,接口)值传递:实参在方法里面改变的结果是不保留的:引用传递:实参在方法里面改变的结果是保留的:赋值也是类似的道理. 7)成

复习 深入理解Java面向对象程序设计1

复习 深入理解Java面向对象程序设计 类是一种抽象的概念,对象是类的一种具体表示形式,是具体的概念.先有类,然后由类生成对象(Object).对象又叫做实例(Instance). 类由两大部分构成:属性及方法.属性一般用名词来表示,方法一般用动词来表示. 如果一个Java源文件定义了多个类,那么这些类中最多只有一个类是public的,换句话说,定义的多个类可以都不是public的. 在Java中进行方法的参数传递时,无论传递的是原生数据类型还是引用类型,参数传递方式统一是传值(pass by

2062326 齐力锋 实验四《Java面向对象程序设计Android开发》实验报告

北京电子科技学院(BESTI) 实 验 报 告 课程: 程序设计与数据结构  班级: 1623  姓名: 齐力锋 学号: 20162326 成绩: 指导教师: 娄嘉鹏/王志强 实验日期: 2017年5月26日 实验密级:非密级 预习程度: 优良 实验时间: 2 Hours 仪器组次: 必修/选修: 必修 实验序号: 04 实验名称:Java面向对象程序设计Android开发 实验内容 1.Android Stuidio的安装测试: 参考<Java和Android开发学习指南(第二版)(EPUBI

java面向对象的核心思想

Java面向对象-抽象类与接口 1.Java final关键字的使用 package edu.tongji.fni; /*final关键字 * 1.final关键字在java中被称为完结器,表示最终的意思 * 2.final能声明类.方法.属性: * 使用final声明的类不能被继承 * 使用final声明的方法不能被重写 * 使用final声明的变量变成常量,常量是不可以被修改的 */ class People{ //前面加了final下面的类会报错 public void tell(){ }

JavaSE入门学习21:Java面向对象之接口(interface)(二)

一接口实现的多态 在上一篇博文:JavaSE入门学习20:Java面向对象之接口(interface)(一)中提到了接口的实现存在多态性,那么 这一篇主要就要分析接口实现的多态. 实例一 Test.java源文件代码: public class Test{ public static void main(String[] args){ //实现接口Singer Singer s1 = new Student("Amy"); s1.sing(); s1.sleep(); s1.study

第5篇-JAVA面向对象Ⅰ

第5篇-JAVA面向对象Ⅰ 每篇一句 :面向对象面向君,不负代码不负卿 初学心得: 代码虐我千百遍,我待代码如初恋 (笔者:JEEP/711)[JAVA笔记 | 时间:2017-04-03| JAVA面向对象 Ⅰ] 1.JAVA作为一种面向对象语言,具有以下基本概念: ● 多态 ● 继承 ● 封装 ● 抽象 ● 类 ● 对象 ● 实例 ● 方法 ● 重载 2.面向对象 什么是面向对象?: 面向对象是一种编程思想 通俗的说:面向对象是一种思考问题的思维方式 为什么使用面向对象以及它的作用 计算机语

《Java面向对象编程第二版》今年出版以来获得读者一致好评。

<Java面向对象编程第一版>自2016年出版以来,承蒙读者们的厚爱,至今已经重印了二十多次,成为国内Java领域里的经典Java技术宝典.在当当网上获得了1500多条好评: http://product.dangdang.com/9186890.html?point=comment_point 应广大读者的要求,为第一版进行了升级,第二版融合了最新的Java8的语言特性,它继续为Java开发人员们提供丰富全面的技术支持和帮助.在京东网上读者们对第二版的好评如潮,一致认为这是Java开发人员必

java面向对象 泛型

这个第一篇知识梳理的博客,希望我可以坚持下去将知识进行总结. 这是在极客学院里看到的视频,目录如下,蛮清晰的.然后我将视频中所说再记忆下. java面向对象之泛型:认识泛型 Java SE 1.5的新特性,泛型的本质是参数化类型,可以代表任何数据类型. java面向对象之泛型:构造函数中使用 class Gen<T>{ private T value; Gen(T value){//构造函数中就泛型就不需要用尖括号了 this.value=value; } public void setVal