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);
}
}
浙公网安备 33010602011771号