1.类
类是由属性和方法组成的,属性中定义类的具体信息(变量),方法是一些操作的行为,对象则是类的实例化。
class ElectricBowl
{
String brand;
double volume;
String color;
}
//新建一个类
class Test
{
public static void main(String[] args)
{
ElectricBowl gree = new ElectricBowl();
//同包内直接引用类,新建对象,实例化类
gree.brand = "格力";//定义对象属性
gree.volume = 2;
gree.color = "黑色";
System.out.println(gree.brand+gree.volume+gree.color);
}
}
class Car
{
String brand;
double displacement;
String type;
public String test(){ //新建一个方法
return brand+displacement+type;
}
}
class Test
{
public static void main(String[] args)
{
Car tesla = new Car();
tesla.brand = "特斯拉";
tesla.displacement = 0;
tesla.type = "电动车";
String sum = tesla.test(); //利用对象调用方法
System.out.println(sum);
}
}
2.ArrayList 集合
ArrayList是一个可变长度的数组,数组长度随着元素的增加而增加,集合内可放入数据以及对象。
import java.util.ArrayList; //导包
class Test
{
public static void main(String[] args)
{
ArrayList<String> car = new ArrayList<String>();
//泛型,<>内填写引用数据类型,只有此类元素可以放入集合内
//Integer,Byte,Short,Long,Float,Double,Character,Boolean
car.add("大众"); //向集合内添加元素,注意,是添加至集合末尾
car.add("福特");
car.add("丰田");
car.add("吉利");
car.add("比亚迪");
for(int i=0;i<car.size();i++){ //size()方法返回集合长度
System.out.println(car.get(i));//get()方法返回指定下标元素
}
}
集合内放入对象:
class Students
{
String name;
int age;
char sex;
}
import java.util.ArrayList;
class Test
{
public static void main(String[] args)
{
Students wizard = new Students();
wizard.name = "Harry";
wizard.age = 17;
wizard.sex = '男';
Students assassin = new Students();
assassin.name = "Ezio";
assassin.age = 20;
assassin.sex = '男';
Students mechanic = new Students();
mechanic.name = "Windy";
mechanic.age = 15;
mechanic.sex = '女';
ArrayList<Students> students = new ArrayList<Students>();
students.add(wizard);
students.add(assassin);
students.add(mechanic);
for(int i=0;i<students.size();i++){
System.out.print(students.get(i).name+' '+students.get(i).age+' '+students.get(i).sex);//注意,此处如果输出get(i),则返回对象的内存地址
System.out.println("");
}
}
常用方法:
add(数据); 添加元素。
add(下标,数据); 在指定下标位置添加元素,前提是该下标存在,否则数组下标越界错误。
set(下标,数据) 修改指定下标位置的元素。
remove(下标); 删除指定下标位置元素。
clear(); 清空数组中所有元素。
注意!当把主方法内的集合作为参数传入其他方法时,如果集合添加了泛型,请务必如在定义方法形参时加上泛型,否则编译报错:

原因在于在主方法内,用一个参数引用了集合,如果在主方法内用参数名.get().属性 完全没有问题,但是如果当做参数传入其他方法,
形参只写ArrayList 形参名 ,则形参指向不明,在Eclipse内会黄线警告,提示集合未实例化,而传入的集合指向不明,所以无法读取其内部元素的属性。
正确书写方式:
import java.util.Scanner;
import java.util.ArrayList;
public class kucun{
public kucun(String cname,double csize,double cprice,int cinventory){
pname = cname;
size = csize;
price = cprice;
inventory = cinventory;
} //有参构造方法,实例化对象时默认调用该方法,不定义则默认使用无参构造方法
public static void CheckInventory(ArrayList<kucun> product){ //有泛型一定要把泛型写上!!
int tinventory = 0;
double tprice = 0;
System.out.println("------------------"+"商城库存清单"+"------------------");
System.out.println("");
System.out.println("商品编号"+' '+"品牌型号"+' '+' '+"尺寸"+' '+"价格"+' '+"库存数");
for(int j=0;j<product.size();j++){
System.out.println((j+1)+" "+' '+product.get(j).pname+' '+product.get(j).size+' '+product.get(j).price+' '+product.get(j).inventory);
}
System.out.println("-----------------------------------------------");
for(int i=0;i<product.size();i++){
tinventory+=product.get(i).inventory;
tprice+=product.get(i).price;
}
System.out.println("总库存数:"+tinventory);
System.out.println("库存商品总额:"+tprice);
}
public static void main(String[] args){
kucun mba = new kucun("MacBOOKAir",13.3,6988.88,5);
kucun tp = new kucun("ThinkpadT450",14.0,5999.99,10);
kucun asus = new kucun("ASUS-FL5800",15.6,4999.5,18);
ArrayList<kucun> product = new ArrayList<kucun>();
product.add(mba);
product.add(tp);
product.add(asus);
CheckInventory(product);
}
}
