Java day1【第八章】引用传递实际应用 【第九章】数据表与简单Java类映射转换
第八章:
1.类的关联类:
人和车:俩个独立的类,本身并没有什么关联
class Car{ private String name; private double price; private Person person;//车 应该属于一个人 public Car(String name,double price) { this.name = name; this.price = price; } public void setPerson(Person person) { this. person = person; } public Person getPerson() { return this.person; } public String getInfo() { return"汽车品牌号:"+this.name+"汽车价值:"+this.price; } } class Person{ private String name;//人应该有一个名字 private int age;//人的年龄 private Person person; private Car car; public Person(String name,int age) { this.name= name; this.age = age; } public void setCar(Car car) { this.car = car; } public Car getCar() { return this.car; } public String getInfo() { return "姓名:"+this.name+"年龄:"+this.age; } } public class Main { public static void main(String[] args) { //第一步:生命都西昂并且设置彼此的关系: Person person = new Person("林强",29); Car car = new Car("宾利",8000000.00); person.setCar(car); car.setPerson(person); //第二步:根据关系获取数据: System.out.println(person.getCar().getInfo()); System.out.println(car.getPerson().getInfo()); } }
以上操作将人和车俩个没有关联的类联系起来。
2.自身关联:
现在已经确定了人和车的关系,但是现在也可以进一步进行该操作的完善,例如:
孩子成年之后也可以有车
class Car{ private String name; private double price; private Person person;//车 应该属于一个人 public Car(String name,double price) { this.name = name; this.price = price; } public void setPerson(Person person) { this. person = person; } public Person getPerson() { return this.person; } public String getInfo() { return"汽车品牌号:"+this.name+"汽车价值:"+this.price; } } class Person{ private String name;//人应该有一个名字 private int age;//人的年龄 private Person person; private Car car; private Person children[]; public Person(String name,int age) { this.name= name; this.age = age; } public void setChildren(Person children []) { this.children = children; } public Person [] getChildren() { return this.children; } public void setCar(Car car) { this.car = car; } public Car getCar() { return this.car; } public String getInfo() { return "姓名:"+this.name+"年龄:"+this.age; } } public class Main { public static void main(String[] args) { //第一步:声明对象并且设置彼此的关系 Person person = new Person("林强",29); Car car = new Car("宾利",8000000.00); Person childA =new Person("吴强",3); Person childB = new Person("吴川",12); person.setChildren(new Person [] {childA,childB}); person.setCar(car); car.setPerson(person); //第二步:根据关系获取数据: System.out.println(person.getCar().getInfo()); System.out.println(car.getPerson().getInfo()); //根据人找到孩子并找到所以的车: for(int x = 0;x<person.getChildren().length;x++) { System.out.println("\t|-"+person.getChildren()[x].getInfo()); System.out.println("\t\t|-"+person.getCar().getInfo()); } } }
数组可以设置多个孩子
3.合成设计模式:
假设说现在要求你定义一种能够描述电脑组成的类,在这样的状态下就必须进行拆分。
在人类的所有科技产品中,都可以进行拆分后继续合成,在JAVA中这种模式叫做合成设计模式。
第九章:
1.数据表和JAVA类映射转换:
step1:配置基本类,抛开数据表中的关联字段
step2:配置数据表中的关系字段
step3:根据要求获取数据
范例
class Dept { private long depno; //编号用long类型 private String dname; private String loc; private Emp emps[]; public Dept(long depno , String dname , String loc){ this.depno = depno; this.dname = dname; this.loc = loc; } //setter getter 无参数构造省略 public String getInfo() { return "【部门信息】部门编号="+this.depno+"、部门名字="+this.dname+"、部门位置="+this.loc; } public void setEmps(Emp [] emps){ this.emps = emps; } public Emp[] getEmps(){ return this.emps; } } class Emp { private long empno; private String ename; private String job; private double sal; private double comm; private Dept dept; private Emp mgr; public Emp(long empno , String ename , String job , double sal , double comm){ this.empno = empno; this.ename = ename; this.job = job; this.sal = sal; this.comm = comm; } public String getInfo(){ return "【雇员信息】雇员编号"+ this.empno +"、雇员姓名"+ this.ename +"、雇员工作"+ this.job +"、基本工资"+ this.sal +"、奖金" + this.comm; } public void setDept(Dept dept){ this.dept = dept; } public void setMgr(Emp mgr){ this.mgr = mgr; } public Dept getDept(){ return this.dept; } public Emp getMgr(){ return this.mgr; } //setter getter 无参数构造省略 } public class dep{ public static void main(String[] args) { Dept dept = new Dept(15,"财务部","上海"); Emp empA =new Emp(4656L,"Smith","Clerk",800.00,0.0); Emp empB =new Emp(4485L,"Jhons","Manger",12800.00,0.0); Emp empC =new Emp(4182L,"Eric","Present",152800.00,0.0); empA.setDept(dept); empB.setDept(dept); empC.setDept(dept); empA.setMgr(empB); empB.setMgr(empC); dept.setEmps(new Emp[]{empA,empB,empC}); //根据关系获取数据: System.out.println(dept.getInfo()); for(int x = 0; x<dept.getEmps().length;x++){ System.out.println("\t|-"+dept.getEmps()[x].getInfo()); if(dept.getEmps()[x].getMgr() != null){ System.out.println("\t\t|-"+dept.getEmps()[x].getMgr().getInfo()); } } System.out.println("------------------------------------------------------"); System.out.println(empB.getDept().getInfo()); System.out.println(empB.getMgr().getInfo()); } }
在以后的开发中,这种转换一定要求熟练完成;
第十章:String 类特点分析
1.String类简介:
字符串严格意义上不是一种数据类型,没有一门语言会提供String的数据类型,但是在Java中为了方便开发者编写,所以利用其JVM自身的支持制造了一种可以简单使用的String类;
并且可以像其他数据类型一样进行直接赋值处理。
范例:String 的实例化:
方法一:直接赋值
public class Stringdemo{ public static void main(String args[]) { String scr = "www.mldn.cn"; System.out.println(scr); } }
从JDK1.9开始String类之中的数组类型采用byte类型;
所谓的字符串就是对数组的一种特殊包装应用,但是同时也应该清楚,既然是数组,那么字符串的内容是无法改变的。
方法二:构造方法
public class Stringdemo{ public static void main(String args[]) { String scr = new String("www.mldn.cn"); System.out.println(scr); } }