java面向对象(一)

1、类和对象是什么?
类是共同特征的描述(设计图);对象:是真实存在的具体实例。

2.如何设计类?
在这里插入图片描述
3.如何创建对象?

类名 对象名 = new 类名();

4.拿到对象之后怎么访问对象信息?
①对象.成员变量
②对象.成员方法(…)

先创建Car类

package com.study.oop;

public class Car {

    String name;
    double price;

    public void start() {

        System.out.println(name + "启动了");

    }

    public void  run(){

        System.out.println("价值"+price+"的"+name+"跑的很快");
    }


}

package com.study.oop;

//学会设计对象并使用
public class Test01 {
    public static void main(String[] args) {
        Car c =new Car();
        c.name="宝马";
        c.price=38.9;
        System.out.println(c.name);
        System.out.println(c.price);
        c.start();
        c.run();


        System.out.println("------------------------");
        Car c1 =new Car();
        c1.name="奔驰";
        c1.price=40.23;
        c1.start();
        c1.run();


    }


}


5.定义类的补充注意事项
①类名其首字母建议大写,且有意义,满足驼峰式
②一个java文件可以定义多个class类,但只能一个类是public修饰,而且public修饰的类名必须成为代码文件名。建议实际开发中一个代码文件定义一个类。
在这里插入图片描述

③成员变量的完整定义格式是:修饰符 数据类型 变量名称 =初始名称;一般无需指定初始值,存在默认值。

6.对象到底放在哪个位置?
放在堆内存中

7.Car c =new Car(); c变量名中存储的是什么?
是对象在堆内存中的地址

8.成员变量(name,price)的数据放在哪里?存在于哪个位置?
数据放在对象中,存在于堆内存中。

package com.study.oop.practice;

//面向对象编程训练,购物车模块模拟
//注意:此训练仅基于此前知识来模拟,尚存在许多缺陷。

import java.util.Scanner;

public class ShopCar {

    public static void main(String[] args) {
        Goods[] shopCar = new Goods[100];
        while (true) {
            System.out.println("请你选择以下命令进行操作:");
            System.out.println("添加商品到购物车:add");
            System.out.println("查询购物车商品展示:query");
            System.out.println("修改商品购物数量:update");
            System.out.println("结算购买商品的金额:pay");
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入命令:");
            String command = sc.next();
            switch (command) {

                case "add":
                    //商品添加模块
                    addGoods(shopCar, sc);
                    break;

                case "query":
                    //查询商品模块
                    queryGoods(shopCar, sc);
                    break;

                case "update":
                    //修改商品购物数量
                    updateGoods(shopCar, sc);
                    break;

                case "pay":
                    //结算商品金额
                    payGoods(shopCar, sc);
                    break;

                default:
                    System.out.println("你输入的命令有问题");


            }
        }


    }

    private static void payGoods(Goods[] shopCar, Scanner sc) {
        queryGoods(shopCar, sc);
        System.out.println("=========你的结算账单如下============");
        double money=0;double money1=0;

        for (int i=0;i<shopCar.length;i++){

            Goods g =shopCar[i];
            if (g!=null){
                money1=g.price* g.buyNumber;
                for (int j=0;j<g.id;j++){
                    System.out.println("购买的"+g.name+"金额为:"+money1);
                    break;
                }

            }else {
                break;
            }
            money=money1+money;
        }
        System.out.println("订单总金额:"+money);



    }

    private static void updateGoods(Goods[] shopCar, Scanner sc) {

        System.out.println("请输入要修改购买数量的商品编号(不能重复):");
        int input = sc.nextInt();
//        Goods g = getGoodsById(shopCar, input);
        out:
        for (int i=0;i<shopCar.length;i++){
            Goods g =shopCar[i];
            if (g == null) {
                //没有该商品
                System.out.println("对不起,没有该商品");
            } else {
                //存在该商品对象,可以修改了

                for (int j= 0;j<= g.id+1;j++){
                    System.out.println("请输入" + g.name + "最新商品数量:");
                    g.buyNumber = sc.nextInt();
                    System.out.println("修改完成");
                    queryGoods(shopCar, sc);
                    break out;

                }

            }
        }



    }

    private static void queryGoods(Goods[] shopCar, Scanner sc) {

        System.out.println("=============查询购物车信息如下===============");
        for (int i = 0; i < shopCar.length; i++) {

            if (shopCar[i] != null) {
                System.out.println("编号\t\t名称\t\t购买数量\t\t价格");

                System.out.println(shopCar[i].id + "\t\t" + shopCar[i].name + "\t\t" + shopCar[i].buyNumber + "\t\t" + shopCar[i].price);
            } else {
                break;
            }


        }

    }

    private static void addGoods(Goods[] shopCar, Scanner sc) {
        //1.录入用户商品购买信息

        System.out.println("请输入商品购买编号:");
        int id = sc.nextInt();
        System.out.println("请输入商品购买名称:");
        String name = sc.next();
        System.out.println("请输入商品购买数量:");
        int number = sc.nextInt();
        System.out.println("请输入商品购买价格:");
        double price = sc.nextDouble();


        //2.将商品信息封装成一个商品对象
        Goods g = new Goods();
        g.id = id;
        g.name = name;
        g.price = price;
        g.buyNumber = number;


        //3.把这个商品对象添加到购物车数组中去

        for (int i = 0; i < shopCar.length; i++) {

            if (shopCar[i] == null) {

                shopCar[i] = g;
                break;
            }


        }
        System.out.println("您的商品" + g.name + "添加到购物车完成");


    }


    //定义一个根据id查出商品信息的方法
    public static Goods getGoodsById(Goods[] shopCar, int id) {
        for (int i = 0; i < shopCar.length; i++) {

            if (shopCar[i] != null) {
                if (shopCar[i].id == id) {


                    return shopCar[i];


                } else {

                    return null;//代表找完了前面存在的商品,都没有找到
                }

            }


        }
        return null;//代表找完了100个都没找到存在的商品

    }


}

package com.study.oop.practice;

public class Goods {
    int id;//编号
    String name;//名称
    double price;//价格
    int buyNumber;//购买数量


}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值