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() ...
随机推荐
- __clone()方法
<?php class NbaPlayer{ public $name; } $james = new NbaPlayer(); $james->name = 'James'; echo ...
- [学习笔记]Vfork深入理解
#include<stdio.h> #include<stdlib.h> #include<string.h> #include <unistd.h> ...
- Boot Option Menu
SATA HDD:TOSHIBA MQ02ABF100 1000G SATA HDD:SAMSUNG MZVLW512HMJP-000L2 => Invalid Partition T ...
- Android将程序崩溃信息保存本地文件
大家都知道,现在安装Android系统的手机版本和设备千差万别,在模拟器上运行良好的程序安装到某款手机上说不定就出现崩溃的现象,开发者个人不可能购买所有设备逐个调试,所以在程序发布出去之后,如果出现了 ...
- 小小c#算法题 - 11 - 二叉树的构造及先序遍历、中序遍历、后序遍历
在上一篇文章 小小c#算法题 - 10 - 求树的深度中,用到了树的数据结构,树型结构是一类重要的非线性数据结构,树是以分支关系定义的层次结构,是n(n>=0)个结点的有限集.但在那篇文章中,只 ...
- JavaScript prototype原型链介绍
javascript 是一种基于原型的编程 (prototype based programming) 的语言, 而与我们通常的基于类编程 (class based programming) 有很大的 ...
- wpf跳转网页
如果是本地磁盘上的网页,可以考虑利用操作系统的文件关联自动调用操作系统默认浏览器: System.Diagnostics.Process.Start("explorer.exe", ...
- winfrom浏览器控件
(1)webbrowser 在ie的基础上开发出来的,一般情况下很好用,特殊情况下没法用,一堆坑,h5支持效果不好 使用:直接拖控件就好了 (2)WebKit .NET http://webkitdo ...
- ListView 动态生成 Header
//取得结果集 DataTable dt = ub.GetUser().Tables[0]; //清空原本的内容 listView1.Items.Clear(); //通过DataTable 得到当前 ...
- 使用metasploit进行栈溢出攻击-2
基本的栈溢出搞明白了,真实攻击中一个很重要的问题是shellcode生成. 利用Metasploit提供的工具,可以方便的生成shellcode,然后可以使用第一篇中的代码进行验证. 先说一下如何生成 ...