久染

导航

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);
	}
}

  

 

posted on 2019-10-13 15:48  久染  阅读(162)  评论(0编辑  收藏  举报