学习内容:
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) { ArrayListcar = new ArrayList (); //泛型,<>内填写引用数据类型,只有此类元素可以放入集合内 //Integer,Byte,Short,Long,Float,Double,Character,Boolean car.add("大众"); //向集合内添加元素,注意,是添加至集合末尾 car.add("福特"); car.add("丰田"); car.add("吉利"); car.add("比亚迪"); for(int i=0;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 = '女'; ArrayListstudents = new ArrayList (); students.add(wizard); students.add(assassin); students.add(mechanic); for(int i=0;i ){ System.out.print(students.get(i).name+'\t'+students.get(i).age+'\t'+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(ArrayListproduct){ //有泛型一定要把泛型写上!! int tinventory = 0; double tprice = 0; System.out.println("------------------"+"商城库存清单"+"------------------"); System.out.println(""); System.out.println("商品编号"+'\t'+"品牌型号"+'\t'+'\t'+"尺寸"+'\t'+"价格"+'\t'+"库存数"); for(int j=0;j ){ System.out.println((j+1)+" "+'\t'+product.get(j).pname+'\t'+product.get(j).size+'\t'+product.get(j).price+'\t'+product.get(j).inventory); } System.out.println("-----------------------------------------------"); for(int i=0;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 product = new ArrayList (); product.add(mba); product.add(tp); product.add(asus); CheckInventory(product); } }