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);
}
}
Java学习笔记day06_自定义类_ArrayList的更多相关文章
- java学习笔记7--抽象类与抽象方法
接着前面的学习: java学习笔记6--类的继承.Object类 java学习笔记5--类的方法 java学习笔记4--类与对象的基本概念(2) java学习笔记3--类与对象的基本概念(1) jav ...
- Java学习笔记16---抽象类与接口的浅显理解
抽象类是由abstract修饰的类,定义方式如public abstract class A{...}. 接口由interface修饰,定义方式如public interface B{...}. 抽象 ...
- 1.9(java学习笔记)object类及toString()与equals()方法
object类 java中objec是所有类公共的父类,一个类只要没有明显的继承某一类,那么它就是继承object类. 例如 class Person {......};和class Person e ...
- 【原】Java学习笔记031 - 常用类
package cn.temptation; public class Sample01 { public static void main(String[] args) { /* * 类 Math: ...
- Java学习笔记(2)——有关类
Java类的高级特性: {Java管理文件机制:类包. 同一个包中的类互相访问时,可以不指定包名. 同一个包中的类不必存放在同一位置,如com.lang.class1和com.lang.class2可 ...
- Java学习笔记5(类的入门以及ArrayList)
1.类的概念:将现实生活中的事物抽象成了代码(类),我们可以使用自定义的数组类型(类)来描述现实生活中的事物. 2.分析:用一部手机来分析,手机可以打电话,上网,听音乐,这些就是方法,手机有型号,颜色 ...
- 0029 Java学习笔记-面向对象-枚举类
可以创建几个对象? n多个:大部分的类,都可以随意创建对象,只要内存不爆掉 1个:比如单例类 有限的几个:采用单例类的设计思路,可以只允许创建少数的几个特定的对象:还有就是枚举类. 创建少数几个对象, ...
- java学习笔记之String类
String类总结 String类概述: java.lang.String 类是字符串操作类 String类的常用构造方法: //1.直接赋值 String str= "hellojava& ...
- java学习笔记之System类
System类常用总结 System类概述 java.lang.System类,系统属性信息工具类 常用静态方法: 1. public static long currentTimeMillis() ...
随机推荐
- linux 监控内存介绍
一:系统监控:1.对cpu的监测:查看进程占用内存情况 top pid user PRI NI size RSS share stat 进程号 进程所属用户 优先级 优先级 进程所占空间 使用物理内存 ...
- php的变量引用详解
<?php class SimpleClass { // property declaration public $var = 'a default value'; // method decl ...
- setjmp和longjmp
此文是学习 C专家编程 中的笔记. setjmp和longjmp是C语言所独有的,它们部分弥补了C语言有限的转移能力. 函数说明(来自wiki百科): int setjmp(jmp_buf env) ...
- js实现上传单个文件
js上传文件:js 上传单个文件(任意大小) 疯狂代码 http://www.CrazyCoder.cn/ :http:/www.CrazyCoder.cn/Javascript/Article832 ...
- Luogu U15118 萨塔尼亚的期末考试(fail)
感觉...昨天是真的傻... 题意 T个询问,每个询问给一个n,求 $ \frac{\sum_{n}^{i = 1}Fib_{i} * i}{n * (n + 1) / 2} $ Fib是斐波那契数列 ...
- python常见的加密解密
#!/usr/bin/env python ''' Python Crypto Wrapper - By Chase Schultz Currently Supports: AES-256, RSA ...
- 获取GridView控件总列数
GridView控件,它不管是放在MasterPage母版页内,还是放在Page单独网页内,它不管是自动显示列AutoGenerateColumns="true",还是手动定列Au ...
- 使用穷人版profiler定位调试MySQL
此文已由作者温正湖授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 周末闲得蛋疼,来英飞特做人工空气净化器.开了电脑后,习惯性得点击xshell按钮,进入InnoSQL稳定性测 ...
- Glib学习笔记(三)
你将学到什么 如何实现Object的方法 Object的方法 Object的public方法 在头文件声明一个函数,然后在源文件中实现函数即可 /* declaration in the header ...
- Django之博客系统:增加评论
3既然是博客,那肯定就有留言评论系统.在这一章就来建立一个评论系统. 1 创建一个模型来保存评论 2 创建一个表单来提交评论并且验证输入的数据 3 添加一个视图函数来处理表单和保存新的评论到数据库 4 ...