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);
}
}

Java学习笔记day06_自定义类_ArrayList的更多相关文章

  1. java学习笔记7--抽象类与抽象方法

    接着前面的学习: java学习笔记6--类的继承.Object类 java学习笔记5--类的方法 java学习笔记4--类与对象的基本概念(2) java学习笔记3--类与对象的基本概念(1) jav ...

  2. Java学习笔记16---抽象类与接口的浅显理解

    抽象类是由abstract修饰的类,定义方式如public abstract class A{...}. 接口由interface修饰,定义方式如public interface B{...}. 抽象 ...

  3. 1.9(java学习笔记)object类及toString()与equals()方法

    object类 java中objec是所有类公共的父类,一个类只要没有明显的继承某一类,那么它就是继承object类. 例如 class Person {......};和class Person e ...

  4. 【原】Java学习笔记031 - 常用类

    package cn.temptation; public class Sample01 { public static void main(String[] args) { /* * 类 Math: ...

  5. Java学习笔记(2)——有关类

    Java类的高级特性: {Java管理文件机制:类包. 同一个包中的类互相访问时,可以不指定包名. 同一个包中的类不必存放在同一位置,如com.lang.class1和com.lang.class2可 ...

  6. Java学习笔记5(类的入门以及ArrayList)

    1.类的概念:将现实生活中的事物抽象成了代码(类),我们可以使用自定义的数组类型(类)来描述现实生活中的事物. 2.分析:用一部手机来分析,手机可以打电话,上网,听音乐,这些就是方法,手机有型号,颜色 ...

  7. 0029 Java学习笔记-面向对象-枚举类

    可以创建几个对象? n多个:大部分的类,都可以随意创建对象,只要内存不爆掉 1个:比如单例类 有限的几个:采用单例类的设计思路,可以只允许创建少数的几个特定的对象:还有就是枚举类. 创建少数几个对象, ...

  8. java学习笔记之String类

    String类总结 String类概述: java.lang.String 类是字符串操作类 String类的常用构造方法: //1.直接赋值 String str= "hellojava& ...

  9. java学习笔记之System类

    System类常用总结 System类概述 java.lang.System类,系统属性信息工具类 常用静态方法: 1. public static long currentTimeMillis() ...

随机推荐

  1. JS的Prototype属性

    转载至: http://blog.sina.com.cn/s/blog_7045cb9e0100rtoh.html 函数:原型 每一个构造函数都有一个属性叫做原型(prototype,下面都不再翻译, ...

  2. Python 求和函数

    #coding=utf-8 ########################### #求1到10,20到30,30到40之和 ########################### sum=0 for ...

  3. 每个程序中只有一个public类,主类?

    import java.io.*; public class GameSaverTest { public static void main(String[] args){ //创建人物 GameCh ...

  4. Git 之 修复bug

    前面介绍了Git版本控制,为我们省去了很多不必要的麻烦. 回滚 有没有想过,在我们开发过程中,修改需要是常有的事,如果我们现在不想要这个功能了,那么如何回到之前的版本呢?回滚,回到上一个版本. 那如果 ...

  5. Mat类的输出格式

    从前面的例程中, 可以看到 Mat 类重载了<<操作符, 可以方便得使用流操作来输出矩阵的内容.默认情况下输出的格式是类似 Matlab 中矩阵的输出格式.除了默认格式,Mat 也支持其他 ...

  6. 3D立体菜单导航

    今天在微博里面看到别人分享的一个立体效果,我觉得挺好的,就拿下来自己存着,万一以后用到. 效果如下: index.html <!DOCTYPE html> <html > &l ...

  7. 5.移动渗透测试工具之drozer

    本篇博文主要来介绍drozer在移动渗透中的作用 本次实验环境所用工具为:夜神模拟器,drozer-2.3.4,sieve.apk,adb drozer安装这里不再多嘴,给出链接:https://ww ...

  8. c# 的默认访问修饰符小结(转)

    c# 的访问修饰符是private 还是 internal? 准确的说,不能一概而论. [MSDN] Classes and structs that are not nested within ot ...

  9. C指针的解析

    这是我从网上转载的一篇关于C指针的文章,方便自己以后回顾,自己添加修改部分内容 ,不对请指正 Attention:指针是指针变量 ,数组是指针常量 第一章 指针的概念  指针是一个特殊的变量,它里面存 ...

  10. HTTP 协议 -- 浏览器缓存机制

    浏览器缓存机制 浏览器缓存机制主要是 HTTP 协议定义的缓存机制. HTTP 协议中有关缓存的缓存信息头的关键字有 Cache-Control,Pragma,Expires,Last-Modifie ...