Java学习笔记day06_自定义类_ArrayList

1.自定义类class

  使用类的形式, 对现实中的事物进行描述. 类是引用数据类型.

    事物: 方法,变量.

      方法:事物具备的功能.
      变量:事物的属性.

  格式:

public class 类名{
    //属性定义(变量):
        修饰符 数据类型 变量名 = 值;
            
    //功能定义(方法):
        修饰符 返回值类型 方法名(参数列表){
                    
    }
}

 

 

2.使用自定义类

  创建引用类型变量的格式:
    数据类型 变量名 = new 数据类型();

  实现引用类型的步骤:
    1.导入包. 类在同一个文件夹,不需要导入包.
    2.创建引用类型的变量
    3.变量.类型中的功能

 

 

3.ArrayList集合

  ArrayList集合只存储引用类型, 不存储基本类型.(相当于存储引用类型的"数组", 可存多个引用类型).

  导包 java.util.ArrayList;

  ArrayList集合起始索引为0.

  格式:

ArrayList<集合存储的数据类型> 变量名 = new ArrayList<集合存储的数据类型>();
如:
ArrayList<String> array = new ArrayList<String>();

 

 

4.ArrayList中的方法

  add() 向集合中添加元素. 注意添加的参数类型.

  get(index) 取出集合中的索引为index的元素.

  size() 返回集合的长度.

  

  add(index, 元素) 将元素添加到索引位置, 该位置及之后元素后移.

  set(index, 元素) 将索引元素进行修改.

  remove(index) 删除索引位置元素, 之后的元素前移.

  clear() 清空集合.

 

5.自定义类及ArrayList的运用_库存管理案例

/*
        Goods.java
    定义描述商品的类
    商品 4个属性
        商品名字    大小    价格    库存
         String       double  double    int
         
    这个类型的变量,存储到集合中
*/

public class Goods{
    //定义商品名字
    String brand;
    //大小
    double size;
    //价格
    double price;
    //库存属性
    int stock;
}

 

/*
    Shopp.java
    实现库存管理案例:
        1.存储商品信息(方法)
            存储商品类型变量
            将商品类型的变量,存储到集合中
            
        2.查看库存的清单
            将集合进行遍历,获取出集合中存储的Goods类型变量
            输出每一个Goods类型的属性
            计算求和:总库存,总金额
            
        3.修改商品的库存
            集合遍历,获取出集合中存储的Goods类型变量
            变量调用Goods类的属性stock值进行修改(键盘输入)
*/
import java.util.*;
public class Shopp{
    public static void main(String[] args){
        //创建集合,存储Goods类型
        ArrayList<Goods> j = new ArrayList<Goods>();
        //调用添加商品信息的方法
        addGoods(array);
        
        //进入死循环
        while(true){
            //调用选择功能的方法,获取到用户输入的序号
            int i = chooseFunction();
            switch(i){
                case 1:
                    //查看库存清单,遍历集合
                    printStore(array);
                    break;
                case 2:
                    update(array);
                    break;
                case 3:
                    return ;
                default:
                    System.out.println("输入有误");
                    break;
            }
        }
        
    }
    
    
    
    /*
        定义方法,实现选择菜单,用户根据功能选择菜单
    */
    public static int chooseFunction(){
        System.out.println("-----------库存管理----------");
        System.out.println("1.查看库存清单");
        System.out.println("2.修改商品库存量");
        System.out.println("3.退出");
        System.out.println("请输入要执行的操作序号");
        Scanner sc = new Scanner(System.in);
        int number = sc.nextInt();
        return number;
    }
    
    
    
    /*
        定义方法,修改库存
        键盘输入,将Goods中的属性值,修改
    */
    public static void update(ArrayList<Goods> array){
        Scanner sc = new Scanner(System.in);
        //遍历集合,获取集合中的每个元素
        for(int i=0; i<array.size(); i++)
        {
            Goods g = array.get(i);
            System.out.println("请输入"+g.brand+"的库存数:");
            g.stock = sc.nextInt();
        }
    }
    
    
    
    
    
    /*
        定义方法,查看库存清单,遍历集合
    */
    public static void printStore(ArrayList<Goods> array){
        //输出表头
        System.out.println("--------商场库存清单---------");
        System.out.println("品牌型号    尺寸    价格    库存数");
        //定义变量,保存总库存,总金额
        int totalStock = 0;
        double totalMoney = 0.0;        
        //遍历集合
        for(int i=0; i<array.size(); i++)
        {
            Goods g = array.get(i);
            System.out.println(g.brand+"    "+g.size+"    "+g.price+"    "+g.stock);
            totalStock += g.stock;
            totalMoney = totalMoney + g.stock*g.price;
        }
        
        System.out.println("总库存数:"+totalStock);
        System.out.println("商品库存总金额:"+totalMoney);
    }
    
    
    
    /*
        定义方法,将商品信息存储到集合中
        集合是所有方法的共享数据,参数传递
    */
    public static void addGoods(ArrayList<Goods> array){
        //创建商品类型变量
        Goods g1 = new Goods();
        Goods g2 = new Goods();
        
        g1.brand = "MacBookAir";
        g1.size = 13.3;
        g1.price = 9998.9;
        g1.stock = 7;
        
        g2.brand = "ThinkPad";
        g2.size = 15.6;
        g2.price = 6998.9;
        g2.stock = 4;
        
        //Goods类型的变量,存储到集合中
        array.add(g1);
        array.add(g2);
    }
}

 

posted @ 2018-02-03 14:59  NemoWang  阅读(182)  评论(0编辑  收藏  举报