一.类的定义与使用
java代码映射成现实事物的过程就是定义类的过程。
拿一部手机进行分析,它能用来做什么呢?它可以打电话,上网,聊微信等,这些就是手机所提供的功能,也就是方法;手机也有它的特征,如颜色、尺寸大小、品牌型号等,这些就是手机的特征,也就是属性。
类的定义格式:类中定义的属性没有个数要求
public class Phone { /* * 属性 */ String brand;// 品牌型号 String color;// 颜色 double size; // 尺寸大小 }
调用方法:
public class Test { public static void main(String[] args) { //定义了一个Phone类型的变量p Phone p = new Phone(); /* * 通过p,使用Phone中的属性 */ //访问p中的brand品牌属性 p.brand = "苹果6s"; //访问p中的color颜色属性 p.color = "白色"; //访问p中的size尺寸大小属性 p.size = 5.5; System.out.println("手机品牌为" + p.brand); System.out.println("手机颜色为" + p.color); System.out.println("手机尺寸大小为" + p.size); } }
自定义类型练习
学习了引用数据类型(类)以后,我们就能够使用类描述任何东西了。看几个具体的描述,如下:
l 电饭锅,包含属性(品牌、容量大小、颜色等)
public class DFG { String pinpai; String rongliang; String color; }
l 汽车,包含属性(品牌、排量、类型等)
public class CAR { String pinpai; String pailiang; String type; }
l 学生,包含属性(姓名,年龄,性别等)
public class Student { String name; int age; String sex; }
测试:
class Test { public static void main(String[] args){ DFG d=new DFG(); d.pinpai="苏泊尔"; d.rongliang="30l"; d.color="白色"; System.out.println(d.pinpai+" "+d.rongliang+" "+d.color+" "); CAR c=new CAR(); c.pinpai="奔驰"; c.pailiang="2.0l"; c.type="中大型车"; System.out.println(c.pinpai+" "+c.pailiang+" "+c.type+" "); Student s=new Student(); s.name="周杰伦"; s.age=30; s.sex="男"; System.out.println(s.name+" "+s.age+" "+s.sex+" "); } }
二.ArrayList集合
导包:import java.util.ArrayList;
创建对象:与其他普通的引用数据类型创建方式完全相同,但是要指定容器中存储的数据类型:
ArrayList<要存储元素的数据类型> 变量名 = new ArrayList<要存储元素的数据类型>();
l 集合中存储的元素,只能为<>括号中指定的数据类型元素;
l “<要存储元素的数据类型>”中的数据类型必须是引用数据类型,不能是基本数据类型;
下面给出8种基本数据类型所对应的引用数据类型表示形式:
示例:
import java.util.ArrayList; public class Jihe { public static void main(String[] args){ //创建arraylist<String>类型的对象 ArrayList<String> list=new ArrayList<String>(); list.add("张三"); list.add("李四");//集合的新增,通过对象.方法名 list.add("王五"); list.add(1,"小红");//在集合某个索引处新建一个元素,通过对象.add(int insex,你要新建的元素); /* list.remove(2);//从该集合中删除元素*/ list.clear(); list.set(2,"小明");//修改集合中某元素的值,对象.set(int index,"你要修改的值"); /*String a=list.get(0); String b=list.get(1); String c=list.get(2);*/ //循环遍历,获取集合中的数据,通过对象.get(int index); for(int i=0;i<list.size();i++){ System.out.print(list.get(i)+" "); } } }
基本数据类型 |
对应的引用数据类型表示形式 |
byte |
Byte |
short |
Short |
Int |
Integer |
long |
Long |
float |
Float |
double |
Double |
char |
Character |
boolean |
Boolean |
集合常用的方法:
boolean add(Object obj):将指定元素obj追加到集合的末尾
Object get(int index):返回集合中指定位置上的元素
int size():返回集合中的元素个数
import java.util.ArrayList; public class ArrayListDemo01 { public static void main(String[] args) { // 创建ArrayList集合 ArrayList<String> list = new ArrayList<String>(); // 向集合中添加元素 list.add("stu1"); list.add("stu2"); list.add("stu3"); list.add("stu4"); // 获取集合中元素的个数 System.out.println("集合的长度:" + list.size()); // 取出并打印指定位置的元素 System.out.println("第1个元素是:" + list.get(0));
System.out.println("第2个元素是:" + list.get(1));
System.out.println("第3个元素是:" + list.get(2));
System.out.println("第4个元素是:" + list.get(3));
}
}
集合的遍历:
示例:
A:遍历集合遍历输出。
B:求出年龄最大的学生,让后将该对象的姓名变为:葫芦娃。
public class Student { String name; int age; String sex; }
然后写主程序来调用:
import java.util.ArrayList; public class D032302 { public static void main(String[] args){ Student s=new Student(); Student s1=new Student(); Student s2=new Student(); s.name="小红"; s.age=30; s.sex="女"; s1.name="小明"; s1.age=23; s1.sex="男"; s2.name="小李"; s2.age=32; s2.sex="女"; ArrayList<Student> stu=new ArrayList<Student>(); stu.add(s); stu.add(s1); stu.add(s2); for(int i=0;i<stu.size();i++){ System.out.println(stu.get(i).name+" "+stu.get(i).age+" "+stu.get(i).sex); } int max=stu.get(0).age; int flag=0; for(int i=1;i<stu.size();i++){ if (stu.get(i).age>max){ max=stu.get(i).age; flag=i; } { } } stu.get(flag).name="葫芦娃"; for(int i=0;i<stu.size();i++){ System.out.println(stu.get(i).name +" "+stu.get(i).age +" "+stu.get(i).sex); } } }
2.定义一个手机类Phone,包含三个属性品牌(brand)、价格(price)、颜色(color)。
class Phone { String brand; double price; String color; }
import java.util.ArrayList; public class Testphone { public static void main(String[] args){ Phone p=new Phone(); Phone p2=new Phone(); Phone p3=new Phone(); Phone p4=new Phone(); p.brand="苹果"; p.price=5000; p.color="银色"; p2.brand="三星"; p2.price=4300; p2.color="黑色"; p3.brand="华为"; p3.price=2100; p3.color="灰色"; p4.brand="山寨机"; p4.price=500; p4.color="紫色"; ArrayList<Phone> pho=new ArrayList<Phone>(); pho.add(p); pho.add(p2); pho.add(p3); pho.add(p4); for(int i=0;i<pho.size();i++){ System.out.println(pho.get(i).brand+" "+pho.get(i).price+" "+pho.get(i).color); } } }
3.定义一个员工类Employee,包含三个属性姓名、工号、工资,创建三个员工对象存入ArrayList集合中,并遍历输出。
class Employee { String name; int id; double wage; }
import java.util.ArrayList; public class Testemp { public static void main(String[] args){ Employee emp1=new Employee(); Employee emp2=new Employee(); Employee emp3=new Employee(); emp1.name="张三"; emp1.id=1; emp1.wage=3500; emp2.name="李四"; emp2.id=2; emp2.wage=3900; emp3.name="王五"; emp3.id=S3; emp3.wage=5500; ArrayList<Employee> empl=new ArrayList<Employee>(); empl.add(emp1); empl.add(emp2); empl.add(emp3); for(int i=0;i<empl.size();i++) { System.out.println(empl.get(i).name+" "+empl.get(i).id+" "+empl.get(i).wage); } } }