黑马day02

作者: 苗超 | 来源:发表于2016-07-01 23:28 被阅读50次

    day02.01_java基础语法_案列需求介绍

    * A: 需求
        * a: 超市购物小票
            * 含有运算的过程
            * 数据之间有关系
            * 运算结果不需要对齐
    * B: 案例效果
    
          品名                   售价            数量            金额
    -------------------------------------------------------------------
    少林寺酥饼核桃(090115)       15.5            22            341.0
    然光α移(090028)              16.0            55            880.0
    尚康杂粮牡丹饼(090027)       14.5            24            348.0
    -------------------------------------------------------------------
    3项商品      共计:101件
    总计:1569.0
    凭此小票换取发票!
    

    day02.02_java基础语法_小票界面结构分析

    * A:需求分析
        * a: 小票界面结构分析
            * 通过小票界面分析,可以将复杂的问题简单化,规划出来更为具体的需求
        * b: 数据模型分析
            * 实际开发过程中的数据是复杂的,存在多个维度的信息。需要分析出我具体需要操作的数据有哪些
    

     逻辑分析
    * c: 逻辑分析
    * 在接收到最基本的必要数据后,需要加入业务逻辑来完成所有需求。如本例中,求总价的过程
    * B: 小票界面结构分析
    * a: 票头
    * 票头又分为两部分,即欢迎光临欢迎语与具体的物品属性标题
    * b: 票体
    * 票体是读取的真实数据内容,即打印对应的变量值即可
    * 这里为了简化需求,去掉了时间与付钱找零的统计
    * c: 票脚
    * 票脚也分为两部分,即统计信息与开发票的提醒信息。
    * 前期为了简化需求,我们去掉用户付钱的部分,只完成商品价钱和数量统计部分

    ----上面的内容需求的内容完成了

    day02.03_java基础语法_数据模型分析

    * A: 数据模型
        * 是指对现实事务的抽象。即将现实事物抽象成代码
    * B: 购物小票的数据模型分析
        * a: 票体(每份物品是真正的数据,一项物品应该有如下几个属性)
            * 品名:物品名称,String型、
            * 商品编号:用于区分管理商品的编号(和序号区分),String型
            * 售价:物品单价,double型
            * 数量:购买数量,原型中是小数,我们这里以个为单位,设计成int型
            * 金额:这一项物品的购物总金额,double型
        * b: 票脚:我们发现三个单独的可变化量
            * 商品项数:共有几项商品,int型
            * 共计:所有项商品一共多少件,int型
            * 总计:所有商品花费,double型
    

    day02.04_java基础语法_逻辑分析

    * A: 逻辑分析
        * a: 与直接打印数据不同,这个案例的基本需求中存在许多统计信息,显然类似总价这样的值是由其他数据计算得来
        * b: 普通变量值直接打印
        * c: 需要计算的数据的打印
            * 赋值运算符
            * 算术运算符
    

    day02.05_java基础语法_赋值运算符与算数运算符简介

    * A: 什么是运算符
        * 就是对常量和变量进行操作的符号。
    * B: 赋值运算符(=)
        * 可以为变量赋值
        * 把=右边的数据赋值给左边
        * 如: int a = 10;  String s = “我爱Java”;
    * C: 算数运算符(+,-,*,/,%)
        * +(加法运算),-(减法运算),*(乘法运算),/(除法运算),%(取模运算)
        * /:代表除法,两个整数相除时,只取整数部分
        * %:代表当两整数相除时,取余数部分
        * 如:int a = 301; int b = 100;a/b的值为3;a%b的值为1
    
    * D:案例代码
        class Demo01 
            {
                public static void main(String[] args) 
                {
                    int a = 10;
                    //a = 10 + 1;
                    //a = a + 1;
                    a = 2 * a;
                    System.out.println(a);
    
                    int b = 12;
                    int c = 22;
    
                    System.out.println(b+c);
                    System.out.println(b-c);
                    System.out.println(b*c);
                    System.out.println(c/b);
                    System.out.println(c%b);
                }
            }
    

    day02.06_java基础语法_票头票体实现

    * A: 票头票体实现分析
        * a: 由于小票逻辑比较简单,并且没有使用更为高级的语法,所有变量顺序打印即可
        * b: 票头打印,都是字符串信息,直接打印即可
        * c: 票体打印
            * 以商品为单位定义变量,分别为3个商品定义对应的属性变量并赋值
            * 如:
                * String  slsName = “少林寺酥饼核桃”;
                * String  slsID = “090115”;
                * double  slsPrice = 15.5;
                * int  slsNumber = 22;
                * //定义“少林寺酥饼核桃”的金额
                * double  slsMoney;
                * //计算“少林寺酥饼核桃”的金额
                * slsMoney = slsPrice* slsNumber;
    
    * B: 案例代码
        public class ShoppingReceipt
        {
            public static void main(String[] args) 
            {
                //--------票头-----------------------------------------
                System.out.println("                           欢  迎  光  临");
                System.out.println();
                System.out.println("      品名                   售价            数量            金额");
                //--------票体-----------------------------------------
                System.out.println("-------------------------------------------------------------------");
                //定义变量:品名   编号   售价   数量   金额
    
                //少林寺
                String slsName = "少林寺酥饼核桃";
                String slsID = "090115";
                double slsPrice = 15.5;
                int slsNumber = 22;
                double slsMoney = slsPrice*slsNumber;
    
                //然光α移
                String rgName = "然光α移";
                String rgID = "090028";
                double rgPrice = 16;
                int rgNumber = 55;
                double rgMoney = rgPrice*rgNumber;
    
                //尚康杂粮牡丹饼
                String skName = "尚康杂粮牡丹饼";
                String skID = "090027";
                double skPrice = 14.5;
                int skNumber = 24;
                double skMoney = skPrice*skNumber;
                System.out.println(slsName+"("+slsID+")       "+slsPrice+"            "+slsNumber+"            "+slsMoney);
                System.out.println(rgName+"("+rgID+")             "+rgPrice+"            "+rgNumber+"            "+rgMoney);
                System.out.println(skName+"("+skID+")       "+skPrice+"            "+skNumber+"            "+skMoney);        
            }
        }
    

    day02.07_java基础语法_票脚打印

    * A: 票脚实现分析
        * a: 商品项数:本例中直接指定3项
            * int  totalItemsNumber = 3;
        * b: 共计:所有项商品的数量和
            * int  totalNumber = slsNumber+其他两项的数量;
        * c: 总计:所有项商品的金额总和
            * double  totalMoney = slsMoney+其他两项的金额;    
    

     * d: 最后的开发票的提醒信息为字符串常量,直接打印即可

    * B: 案例代码
        public class ShoppingReceipt
        {
            public static void main(String[] args) 
            {
                //--------票头-----------------------------------------
                System.out.println("                           欢  迎  光  临");
                System.out.println();
                System.out.println("      品名                   售价            数量            金额");
                //--------票体-----------------------------------------
                System.out.println("-------------------------------------------------------------------");
                //定义变量:品名   编号   售价   数量   金额
    
                //少林寺
                String slsName = "少林寺酥饼核桃";
                String slsID = "090115";
                double slsPrice = 15.5;
                int slsNumber = 22;
                double slsMoney = slsPrice*slsNumber;
    
                //然光α移
                String rgName = "然光α移";
                String rgID = "090028";
                double rgPrice = 16;
                int rgNumber = 55;
                double rgMoney = rgPrice*rgNumber;
    
                //尚康杂粮牡丹饼
                String skName = "尚康杂粮牡丹饼";
                String skID = "090027";
                double skPrice = 14.5;
                int skNumber = 24;
                double skMoney = skPrice*skNumber;
                System.out.println(slsName+"("+slsID+")       "+slsPrice+"            "+slsNumber+"            "+slsMoney);
                System.out.println(rgName+"("+rgID+")             "+rgPrice+"            "+rgNumber+"            "+rgMoney);
                System.out.println(skName+"("+skID+")       "+skPrice+"            "+skNumber+"            "+skMoney);
    
                //-------票脚------------------------------------------
                System.out.println("-------------------------------------------------------------------");
                //项数
                int totalItemsNumber = 3;
                //共计
                int totalNumber = slsNumber + rgNumber + skNumber;
                //总计
                double totalMoney = slsMoney + rgMoney + skMoney;
    
                System.out.println(totalItemsNumber+"项商品      共计:"+totalNumber+"件");
                System.out.println("总计:"+totalMoney);
                System.out.println("凭此小票换取发票!");
            }
        }
    

    =======================ppt上的第一个阶段"超市购物小票案例实现"===============================

    day02.08_java基础语法_算数运算符详解

    * A: 算数运算符补充
        * a: ++(自增),--(自减)
            * ++:自加。对原有的数据进行+1
            * --:自减。对原有的数据进行-1
            * 注意:
                * 1: 单独使用:
                    * 放在操作数的前面和后面效果一样。(这种用法是我们比较常见的)
                * 2: 参与运算使用:
                    * 放在操作数的前面,先自增或者自减,然后再参与运算
                    * 放在操作数的后面,先参与运算,再自增或者自减
                * 3: ++或- -为前缀时,先产生副作用,再使用值
                * 4: ++或- -为后缀时,先使用值再产生副作用
        * b: +(代表字符串的连接的功能)
            * 只有直接与字符串相加才会转成字符串
        * c: /(除法)
            * 当两边为整数时,取整数部分,舍余数。当两边为浮点型时,按正常规则相除
        * d: %(取模)
            * 为整除取余符号,小数取余没有意义,结果的符号只和左边有关系,与右边无关
        * e: /(除法)和%(取模)的注意事项
            * a: 整数做被除数,0不能做除数,否则报错
            * b: 小数做被除数,整除0结果为Infinity,对0取模结果为NaN
    * B: 案例代码
        class Demo01 
        {
            public static void main(String[] args) 
            {
                //++&--
                //++在前:先产生副作用,再使用变量值
                //++在后:先使用变量值,再产生副作用
                System.out.println("===============================");
                int d = 10; // 10
                d++;        // 11
                ++d;        // 12
                System.out.println(d++);    //执行的过程中,由于++在后所以先用值12,执行完这局话后,再产生副作用+1,d变量的值是13
                System.out.println(++d);    //执行的过程中,由于++在前所以先产生副作用+1,再用值14,执行完这局话后,d变量的值是14
    
                //+法的连接字符串功能,直接 与字符串相加则变为字符串
                int e = 100;
                int f = 5;
                System.out.println("我的得分是"+100+5);
                System.out.println(100+5+"是我的得分");
    
                //除法/用于小数计算
                double g = 100.1;
                double h = 100;
                System.out.println(g/h);
    
                //取模%的符号问题:取模的符号与%前边的数符号相同
                int i = -99;
                int j = 100;
                System.out.println(i%j);
    
                //0不能做除数
                //System.out.println(1/0);
    
            }
        }
    

    day02.09_java基础语法_赋值运算符详解

    * A:赋值运算符有哪些
        * a:基本的赋值运算符:=
            * 把=右边的数据赋值给左边。
            
        * b:扩展的赋值运算符:+=,-=,*=,/=,%=
            * += 把左边和右边做加法,然后赋值给左边
            * 诸如+=这样形式的赋值运算符,会将结果自动强转成等号左边的数据类型
        
        运算符    运算规则    范例    结果
        =    赋值        int a=2     2
        +=    加后赋值    int a=2,a+=2    4
        -=    减后赋值    int a=2,a-=2    0
        *=    乘后赋值    int a=2,a*=2    4
        /=    整除后赋值    int a=2,a/=2    1
        %=    取模后赋值    int a=2,a%=2    0
    

    day02.10_java基础语法_追加需求

    * A: 超市购物小票追加需求
        * a: 总价打折
            * 如:如果商品总价超过1000元,并且少林寺酥饼核桃购买超过30份, 则总价打九折(运算符:逻辑,比较,三元)
        * b: 购物数量等信息可以手工输入
            * 购买商品数量由用户选择(Scanner键盘录入商品数量)
        * c: 截取有效的商品名称
            * 如果商品名称超过7个字,则截取前7个字加…完成小票商品名
        * d: 总金额四舍五入
            * 使用工具类操作数字,将最终总价四舍五入(Math)
    

    day02.11_java基础语法_比较运算符

    * A: 比较运算符有哪些(关系运算符,条件运算符)
        * ==,!=,>,>=,<,<= 
        * 注意事项:
            * 无论你的操作是简单还是复杂,结果是boolean类型            
            * "=="不能写成"="
    * B: 案例代码
        public class Demo02 
        {
            public static void main(String[] args) 
            {
                int a = 100;
                int b = 200;
                System.out.println(a<b);
                System.out.println(a<=b);
                System.out.println(a==b);
                System.out.println(a!=b);
            }
        }
    

    day02.12_java基础语法_逻辑运算符

    * A: 逻辑运算符
        * a: 概念
            * 逻辑是在中学数学中学习的概念,是判断是非关系的运算。所以逻辑运算符操作的均为布尔值:true与false
        * b: &&  短路与,即并且,有假则假,同时满足两个条件
            * 特点:&&具有短路效果。左边是false,右边不执行
        * c: ||  短路或,即或者,有真则真,只要满足一个条件即可
            * 具有短路效果.左边是true,右边不执行
    * B: 案例代码
        public class Demo03
        {
            public static void main(String[] args) 
            {
                System.out.println(true && true);        //结果为 true
                System.out.println(true && false);        //结果为false
                System.out.println(false && true);        //结果为false
                System.out.println(false && false);        //结果为false
                System.out.println("========================================");
                System.out.println(true || true);        //结果为 true
                System.out.println(true || false);        //结果为 true
                System.out.println(false || true);        //结果为 true
                System.out.println(false || false);        //结果为false
                System.out.println("========================================");
                System.out.println(!true);        //结果为 true
                System.out.println(!false);        //结果为false
            }
        }
    

    day02.13_java基础语法_三元运算符

    * A: 三元运算符
        * a: 概念
            * 用来完成简单的选择逻辑,即根据条件判断,从两个选择中选择一种执行
        * b: 使用格式
            * (条件表达式)?表达式1:表达式2;
        * c: 运算规则
            * 1: 判断条件表达式,结果为一个布尔值
            * 2: true,运算结果为表达式1
            * 3: false,运算结果为表达式2
    * B: 案例代码
        public class  Demo04
        {
            public static void main(String[] args) 
            {
                int a = 10;
                int b = 20;
                int c;
                //三元运算符的结果必须被使用
                //a == b? 10:20;
                //20;
                //System.out.println(a == b? 10:20);
                System.out.println(a == b? (c=10):(c=20));
                System.out.println(c);
            }
        }
    

    =======================ppt上的第二个阶段"运算符"===============================

    day02.14_java基础语法_客户键盘录入界面分析

    * A: 需求分析
        * a: 数量应为客户输入的,在完成输入数据这个需求时用到了我们需要介绍的引用数据类型
        * b: 增加物品展示与提示用户输入页面
            * 想让用户输入信息,应该先为用户展示都有哪些商品,再让用户输入,所以可以参照第1天的商品报价单,提示信息后,依次输入购买个数
            * 商品报价单->用户输入商品数量->购物小票
    * B: 引用数据类型
        * a: 定义格式
            * 数据类型  变量名  =  new 数据类型();
        * b: 使用方法
            * 变量名.方法名();
    

    day02.15_java基础语法_键盘录入

    * A: 键盘录入的步骤
        * a: 导包import java.util.Scanner;
        * b:创建键盘录入对象 Scanner sc = new Scanner(System.in);
        * c: 读取键盘录入的一个整数
            * int enterNumber = sc.nextInt();
        * d: 读取键盘录入的字符串
            * String enterString = sc.next();
    * B: 案例代码
        import java.util.Scanner;
        public class Demo05Scanner{
            public static void main(String[] args) 
            {
                Scanner sc = new Scanner(System.in);
    
                int enterNumber = sc.nextInt();
                System.out.println("用户输入的整数为"+enterNumber);
    
                String enterString = sc.next();
                System.out.println("用户输入的字符串为"+enterString);
            }
        }
    

    day02.16_java基础语法_字符串长度与截取方法

    * A: String类(字符串)的使用
        * a: String是引用数据类型,必须先创建对象再使用
        * b: 使用方法
            * 1: 创建字符串对象
                * String s = new String("i love java");
                * String s = "i love java";
            * 2: 调用方法完成功能
                * length():获取该字符串长度(注意length是方法,不是属性)
                * substring(m,n)方法:截取字符串,返回一个新的字符串   
                    * 索引:将内容从0开始编号
                    * 包含头,不包含尾
                    * 将调用方法的字符串从m截取到n
                * trim():去掉两端空白
    * B: 案例代码
        public class Demo06String 
        {
            public static void main(String[] args) 
            {
                String s = "i love java";
                int len = s.length();
                System.out.println(len);
    
                String newString = s.substring(0,7);
                System.out.println(newString);
    
                String s2 = "\t i love java      ";
                String s3 = s2.trim();
    
                System.out.println(s2);
                System.out.println(s3);
            }
        }
    

    day02.17_java基础语法_Math类四舍五入功能

    * A: Math类
        * 特点
            * Math同为引用类型,但其使用方法与一般引用类型不同,不需要创建对象,直接使用,在学习完static关键字后会理解。
        * 使用格式
            * Math.方法名(给予所需数据);
                * Math.round(小数):对给定的小数进行四舍五入
    * B:案例代码
        public class Demo07Math 
        {
            public static void main(String[] args) 
            {
                double number = 12.45;
                double afterNumber = Math.round(number);
                System.out.println(afterNumber);        
            }
        }
    

    day02.18_java基础语法_类型转换

    * A: 类型转换
        * a: 隐式类型转换
            * 取值范围小的数据类型与取值范围大的数据类型进行运算,会先将小的数据类型提升为大的,再运算 
            * byte < short < int < Long < float < double
        * b: 强制类型转换
            * 将现有类型强制转换成所需要的类型,但是如果超出了被赋值的数据类型的取值范围得到的结果会与你期望的结果不同
            * 格式:转后的类型  变量 = (转后的类型)转前的类型值;
            * 如: int  i = (int)6.718;   //i的值为6
                    或
                    double  d = 3.14;
                    int  i2 = (int)d;     //i2的值为3
    * B: 案例代码
        public class Demo07Math 
        {
            public static void main(String[] args) 
            {
                int number2 = (int)3.0;
                System.out.println(number2);
            }
        }
        
        
        =======================================这是ppt中的一个阶段==========================================
    

    day02.19_java基础语法_实现打折逻辑

    * A: 案例代码(实现了打折逻辑)
            public class ShoppingReceipt
            {
                public static void main(String[] args) 
                {
                    //--------票头-----------------------------------------
                    System.out.println("                           欢  迎  光  临");
                    System.out.println();
                    System.out.println("      品名                   售价            数量            金额");
                    //--------票体-----------------------------------------
                    System.out.println("-------------------------------------------------------------------");
                    //定义变量:品名   编号   售价   数量   金额
    
                    //少林寺
                    String slsName = "少林寺酥饼核桃";
                    String slsID = "090115";
                    double slsPrice = 15.5;
                    int slsNumber = 32;
                    double slsMoney = slsPrice*slsNumber;
    
                    //然光α移
                    String rgName = "然光α移";
                    String rgID = "090028";
                    double rgPrice = 16;
                    int rgNumber = 55;
                    double rgMoney = rgPrice*rgNumber;
    
                    //尚康杂粮牡丹饼
                    String skName = "尚康杂粮牡丹饼";
                    String skID = "090027";
                    double skPrice = 14.5;
                    int skNumber = 24;
                    double skMoney = skPrice*skNumber;
                    System.out.println(slsName+"("+slsID+")       "+slsPrice+"            "+slsNumber+"            "+slsMoney);
                    System.out.println(rgName+"("+rgID+")             "+rgPrice+"            "+rgNumber+"            "+rgMoney);
                    System.out.println(skName+"("+skID+")       "+skPrice+"            "+skNumber+"            "+skMoney);
    
                    //-------票脚------------------------------------------
                    System.out.println("-------------------------------------------------------------------");
                    //项数
                    int totalItemsNumber = 3;
                    //共计
                    int totalNumber = slsNumber + rgNumber + skNumber;
                    //总计
                    //double totalMoney = slsMoney + rgMoney + skMoney;
                    //加入打折逻辑:总价超过1000,少林寺酥饼核桃超过30个单位,打折九折
                    double beforeTotalMoney = slsMoney + rgMoney + skMoney;
                    //boolean ifCheap = (beforeTotalMoney >= 1000 && slsNumber >= 30);
                    //double totalMoney = ifCheap ? beforeTotalMoney*0.9 : beforeTotalMoney;
                    double totalMoney = (beforeTotalMoney >= 1000 && slsNumber >= 30)? beforeTotalMoney*0.9 : beforeTotalMoney;
    
                    System.out.println(totalItemsNumber+"项商品      共计:"+totalNumber+"件");
                    System.out.println("总计:"+totalMoney);
                    System.out.println("凭此小票换取发票!");
                }
            }
    

    day02.20_java基础语法_实现用户录入数量

    * A:案例代码(实现键盘录入数量的功能,其它功能暂不实现)
        import java.util.Scanner;
        public class ShoppingReceipt2 
        {
            public static void main(String[] args) 
            {
                //少林寺
                String slsName = "少林寺酥饼核桃";
                String slsID = "090115";
                double slsPrice = 15.5;
                int slsNumber;
                double slsMoney;
    
                //然光α移
                String rgName = "然光α移";
                String rgID = "090028";
                double rgPrice = 16;
                int rgNumber;
                double rgMoney;
    
                //尚康杂粮牡丹饼
                String skName = "尚康杂粮牡丹饼";
                String skID = "090027";
                double skPrice = 14.5;
                int skNumber;
                double skMoney;
    
                //打印货品报价单
                System.out.println("                        货品报价单");
                System.out.println("   编号      货物名称                物品单价");
                System.out.println(slsID+"      "+slsName+"                "+slsPrice);
                System.out.println(rgID+"      "+rgName+"                "+rgPrice);
                System.out.println(skID+"      "+skName+"                "+skPrice);
    
                //创建Scanner对象,用于用户输入数量。
                Scanner sc = new Scanner(System.in);
    
                System.out.println("请输您要购买的少林寺酥饼核桃核桃核桃核桃核桃核桃数量:");
                slsNumber = sc.nextInt();
                slsMoney = slsNumber * slsPrice;
                System.out.println("请输您要购买的然光α移数量:");
                rgNumber = sc.nextInt();
                rgMoney = rgNumber * rgPrice;
                System.out.println("请输您要购买的尚康杂粮牡丹饼数量:");
                skNumber = sc.nextInt();
                skMoney = skNumber * skPrice;        
            }
        }
    

    day02.21_java基础语法_实现商品名称判断截取

    * A: 案例代码(实现商品名称截取)
    
        import java.util.Scanner;
        public class ShoppingReceipt2 {
            public static void main(String[] args) {
                // 少林寺
                String slsName = "少林寺酥饼核桃核桃核桃核桃核桃核桃";
                String slsID = "090115";
                double slsPrice = 15.5;
                int slsNumber;
                double slsMoney;
    
                // 然光α移
                String rgName = "然光α移";
                String rgID = "090028";
                double rgPrice = 16;
                int rgNumber;
                double rgMoney;
    
                // 尚康杂粮牡丹饼
                String skName = "尚康杂粮牡丹饼";
                String skID = "090027";
                double skPrice = 14.5;
                int skNumber;
                double skMoney;
    
                // 打印货品报价单
                System.out.println("                        货品报价单");
                System.out.println("   编号      货物名称                物品单价");
                System.out.println(slsID + "      " + slsName + "                "
                        + slsPrice);
                System.out.println(rgID + "      " + rgName + "                "
                        + rgPrice);
                System.out.println(skID + "      " + skName + "                "
                        + skPrice);
    
                // 创建Scanner对象,用于用户输入数量。
                Scanner sc = new Scanner(System.in);
    
                System.out.println("请输您要购买的少林寺酥饼核桃核桃核桃核桃核桃核桃数量:");
                slsNumber = sc.nextInt();
                slsMoney = slsNumber * slsPrice;
                System.out.println("请输您要购买的然光α移数量:");
                rgNumber = sc.nextInt();
                rgMoney = rgNumber * rgPrice;
                System.out.println("请输您要购买的尚康杂粮牡丹饼数量:");
                skNumber = sc.nextInt();
                skMoney = skNumber * skPrice;
    
                // ---------票头-----------------------------------------
                // 定义变量:品名 编号 售价 数量 金额
                System.out.println("                           欢  迎  光  临");
                System.out.println();
                System.out
                        .println("      品名                   售价            数量            金额");
                System.out
                        .println("-------------------------------------------------------------------");
    
                // --------票体-----------------------------------------
    
                // 分别判断三种货品的名称
                // 满足:slsName.length()>7
                // 截取
                // slsName = slsName.substring(0,7)+"...";
                // 不满足:slsName.length()>7
                // 保持原样
    
                slsName = slsName.length() > 7 ? slsName.substring(0, 7) + "..."
                        : slsName;
                rgName = rgName.length() > 7 ? rgName.substring(0, 7) + "..." : rgName;
                skName = skName.length() > 7 ? skName.substring(0, 7) + "..." : skName;
    
                System.out.println(slsName + "(" + slsID + ")       " + slsPrice
                        + "            " + slsNumber + "            " + slsMoney);
                System.out.println(rgName + "(" + rgID + ")             " + rgPrice
                        + "            " + rgNumber + "            " + rgMoney);
                System.out.println(skName + "(" + skID + ")       " + skPrice
                        + "            " + skNumber + "            " + skMoney);
    
                // -------票脚------------------------------------------
                System.out
                        .println("-------------------------------------------------------------------");
                // 项数
                int totalItemsNumber = 3;
                // 共计
                int totalNumber = slsNumber + rgNumber + skNumber;
                // 总计
                // 加入打折逻辑:总价超过1000,少林寺酥饼核桃超过30个单位,打折九折
                double beforeTotalMoney = slsMoney + rgMoney + skMoney;
                // boolean ifCheap = (beforeTotalMoney >= 1000 && slsNumber >= 30);
                // double totalMoney = ifCheap ? beforeTotalMoney*0.9 :
                // beforeTotalMoney;
                double totalMoney = (beforeTotalMoney >= 1000 && slsNumber >= 30) ? beforeTotalMoney * 0.9
                        : beforeTotalMoney;
    
                // 将总计四舍五入,并强转为整数
                totalMoney = Math.round(totalMoney);
    
                System.out.println(totalItemsNumber + "项商品      共计:" + totalNumber
                        + "件");
                System.out.println("总计:" + (int) totalMoney);
                System.out.println("凭此小票换取发票!");
    
            }
        }
    

    day02.22_java基础语法_总计四舍五入

    * A:案例代码(总计四舍五入)
        * 上面实现商品名称截取功能时已经实现了总计的四舍五入(看最后四行代码)
    

    day02.23_java基础语法_运算符总结

    * A: 运算符总结
        * a: 关系运算符
            * >=(表示或者的关系,大于或者等于),<=(表示或者的关系,小于或者等于)
        * b: 逻辑运算符
            * 逻辑运算符一般用于连接boolean类型的表达式或者值
            * &逻辑与:有false则false。
            * |逻辑或:有true则true。
            * ^逻辑异或:相同为false,不同为true。
            * !逻辑非:非false则true,非true则false。
        * c: &&和&的区别?
            * 最终结果一样。
            * &&具有短路效果。左边是false,右边不执行。
            * &是无论左边是false还是true,右边都会执行
        * d: ||和|的区别?
            * 最终结果一样
            * ||具有短路效果.左边是true,右边不执行
            * |是无论左边是false还是true,右边都会执行
        * e: 开发中最常用:&&,||,!
    

    day02.24_java基础语法_引用数据类型与基本数据类型(复习引用数据类型)

    * A: 引用数据类型
        * a: 引用类型变量赋值格式
            * 数据类型  变量名  =  new 数据类型(固定参数);
            * 这里的new 数据类型(固定参数)是用来创建引用类型实例(对象),而变量的值就是这个实例。使用该变量,就是使用这个实例。
        * b:引用类型调用方法格式
            * 变量名.方法名();
            * 当调用方法后,经常会有一个功能执行后的执行结果,这里叫做返回值。该值就是一个数值,可以为其他变量赋值或参与计算。
        * c: 使用步骤
            * 导入引用类型变量所在包,使用import来进行导包
            * 定义引用类型变量并创建实例赋值给变量
            * 使用引用类型变量调用方法,完成功能
    * B:键盘录入的步骤(Scanner是用来接收键盘录入信息的引用类型。)
        * a: 导包import java.util.Scanner;
        * b:创建键盘录入对象 Scanner sc = new Scanner(System.in);
        * c: 读取键盘录入的一个整数
            * int enterNumber = sc.nextInt();
        * d: 读取键盘录入的字符串
            * String enterString = sc.next();
    * C: Math(数学工具类)的使用
        * Math类是数学工具类,提供了许多数学算法方便数字运算。
    

     * 所属包:java.lang.Math java.lang包下的所有类无需导入,可以直接使用
     * 创建实例格式:Math比较特殊,不需要创建实例可以直接使用Math.方法的形式完成方法调用
     * 方法简介
    public static int min(int a,int b) 求两个数的最大值
    public static int max(int a,int b) 求两个数的最小值
    public static long round(double a) 四舍五入
    public static double ceil(double a) 向上取整
    public static double floor(double a) 向下取整
    * D: String(字符串)类的使用
    * String是引用数据类型的一种,是特殊的引用数据类型,代表字符串类型。
     * 所属包:java.lang.String
     * 创建实例格式:String直接使用 双引号字面值常量即可创建实例
     * 方法简介
    public int length()用来返回字符串长度
    public String trim()用来去除字符串两端空白
    public String substring(开始索引,结束索引)用来截取大字符串中小字符串的一部分, 包含头不包含尾等。
    * E: 案例代码
    public class Demo07Math
    {
    public static void main(String[] args)
    {
    double a = Math.ceil(-3.14);
    double b = Math.floor(-3.14);

                    System.out.println(a);
                    System.out.println(b);
                    
                    String s2 = "\t i love java      ";
                    String s3 = s2.trim();
    
                    System.out.println(s2);
                    System.out.println(s3);
                }
            }
    

    day02.25_总结

    • 把今天的知识点总结一遍。

    相关文章

      网友评论

        本文标题:黑马day02

        本文链接:https://www.haomeiwen.com/subject/mohqjttx.html