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() ...
随机推荐
- JS对表单的操作
JS对表单中的style的操作,包括复选框技术 废话不多说直接上文件代码!!! 功能:全选\反选,鼠标监测变颜色 <html> <head> <meta charset= ...
- Flask框架 之 功能详解
浏览目录 配置文件 路由系统 视图 请求相关 响应 模板渲染 session 闪现 中间件 蓝图(blueprint) 特殊装饰器 配置文件 知识点 给你一个路径 “settings.Foo”,可以找 ...
- [译]Javascript中的递归函数
本文翻译youtube上的up主kudvenkat的javascript tutorial播放单 源地址在此: https://www.youtube.com/watch?v=PMsVM7rjupU& ...
- UC浏览器体验
1.用户界面: 有两个页面,一个展示网页应用-可添加自己喜欢的网页应用,另一个用来搜索,有推荐的常用的网址,有UC头条,页面下有设置,整体布局常规 2.短期刺激: 没有特别花哨的地方:个人感觉比较实用 ...
- 容器编排之Kubernetes1.10.2安装与配置
k8s 1.10.2 https搭建文档 1.下载k8s镜像 方式一:docker hub + github,需要创建一个docker hub账户,连接指定的github账户,docker hub会从 ...
- C:简单的学生信息处理程序实现
描述 在一个学生信息处理程序中,要求实现一个代表学生的类,并且所有成员变量都应该是私有的. (注:评测系统无法自动判断变量是否私有.我们会在结束之后统一对作业进行检查,请同学们严格按照题目要求完成,否 ...
- SP34096 DIVCNTK - Counting Divisors (general)(Min_25筛)
题面 洛谷 \(\sigma_0(i)\) 表示\(i\) 的约数个数 求\(S_k(n)=\sum_{i=1}^n\sigma_0(i^k)\mod 2^{64}\) 多测,\(T\le10^4,n ...
- Shell-2-命令之乐
1.cat (1)基本用法 [root@cai tmp]# cat 1.txt 2.txt this is a test1 this is a test 2 (2)cat -s file(删除额外空白 ...
- Hadoop源码分析之产生InputSplit文件过程
用户提交 MapReduce 作业后,JobClient 会调用 InputFormat 的 getSplit方法 生成 InputSplit 的信息. 一个 MapReduce 任务 ...
- 实施MySQL ReplicationDriver支持读写分离
MySQL 提供支持读写分离的驱动类: com.mysql.jdbc.ReplicationDriver 替代 com.mysql.jdbc.Driver 注意,所有参数主从统一: jdbc:mysq ...