Java语言基础之对象与对象间的关系
2015-11-05 18:00
330 查看
Java对象之间的关系有:一对一,一对多,多对多~
一对一关系例子:
一个学生对应一本书
Book类
Student类:
其实只需要注意在Student类中定义的Book类,以及在Book类中定义的Student类,代表了一本书只能被一个学生拥有
main
/***************************************************** 华丽分隔符 **************************************************************************/
第二种关系为一对多,这个例子里就是一个学生可以拥有多本书,方法也很简单,只需要在Student类中把Book类声明改为List集合就可以了,不使用数组的优势是数量可以随时增减
main:
Java对象的关系写起来更多的是为了程序框架考虑。
相比C++,Java的方法调用感觉简单多了,没有复杂的指针乱指,不用担心内存泄露,用的还是比较顺手的。
一对一关系例子:
一个学生对应一本书
Book类
package Com; public class Book { private String StuID; private String BookName; private String dec; private Student student; public Book() { super(); // TODO Auto-generated constructor stub } public Book(String stuID, String bookName, String dec, Student student) { super(); StuID = stuID; BookName = bookName; this.dec = dec; this.student = student; } public String getStuID() { return StuID; } public void setStuID(String stuID) { StuID = stuID; } public String getBookName() { return BookName; } public void setBookName(String bookName) { BookName = bookName; } public String getDec() { return dec; } public void setDec(String dec) { this.dec = dec; } public Student getStudent() { return student; } public void setStudent(Student student) { this.student = student; } }
Student类:
package Com; public class Student { private String StuID; private String name; private int age; private Book book; public Student() { super(); // TODO Auto-generated constructor stub } public Student(String stuID, String name, int age, Book book) { super(); StuID = stuID; this.name = name; this.age = age; this.book = book; } public String getStuID() { return StuID; } public void setStuID(String stuID) { StuID = stuID; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int i) { this.age = i; } public Book getBook() { return book; } public void setBook(Book book) { this.book = book; } }
其实只需要注意在Student类中定义的Book类,以及在Book类中定义的Student类,代表了一本书只能被一个学生拥有
main
package Com; public class main { /** * @param args */ public static void main(String[] args) { // 创建student对象zs Student zs=new Student(); zs.setStuID("1"); zs.setName("zhangsang"); zs.setAge(21); // 创建book 对象 thinkingJava Book thinkingJava=new Book(); thinkingJava.setBookName("TH001"); thinkingJava.setBookName("java编程思想"); thinkingJava.setDec("xxx"); thinkingJava.setStudent(zs); zs.setBook(thinkingJava); // 将书对象给学生zs } }
/***************************************************** 华丽分隔符 **************************************************************************/
第二种关系为一对多,这个例子里就是一个学生可以拥有多本书,方法也很简单,只需要在Student类中把Book类声明改为List集合就可以了,不使用数组的优势是数量可以随时增减
package ComMuti; import java.util.List; public class Student { private String StuID; private String name; private int age; private List<Book> book; // 一个学生可以拥有多本书 建议使用集合 数量可以随时增减 public Student() { super(); // TODO Auto-generated constructor stub } public Student(String stuID, String name, int age, List<Book> book) { super(); StuID = stuID; this.name = name; this.age = age; this.book = book; } public String getStuID() { return StuID; } public void setStuID(String stuID) { StuID = stuID; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int i) { this.age = i; } public List<Book> getBook() { return book; } public void setBook(List<Book> book) { this.book = book; } }
main:
package ComMuti; import java.util.ArrayList; import java.util.List; // 面向对象 一对多的情况 // 一个学生可以拥有多本书 // 在学生类中声明书的集合 // 在main函数中将书的集合放入学生类的书集合中。 public class main { /** * @param args */ public static void main(String[] args) { // 创建student对象zs Student zs=new Student(); zs.setStuID("1"); zs.setName("zhangsang"); zs.setAge(21); // 创建book 对象 thinkingJava Book thinkingJava=new Book(); thinkingJava.setBookName("TH001"); thinkingJava.setBookName("java编程思想"); thinkingJava.setDec("xxx"); thinkingJava.setStudent(zs); // 创建book 对象 CoreJava Book CoreJava=new Book(); CoreJava.setBookName("TH002"); CoreJava.setBookName("java核心"); CoreJava.setDec("xxx"); CoreJava.setStudent(zs); // 创建book集合 List<Book> books=new ArrayList<Book>(); books.add(thinkingJava); books.add(CoreJava); zs.setBook(books); // 得到第一本书的名字 System.out.println(zs.getBook().get(0).getBookName()); } }
Java对象的关系写起来更多的是为了程序框架考虑。
相比C++,Java的方法调用感觉简单多了,没有复杂的指针乱指,不用担心内存泄露,用的还是比较顺手的。
相关文章推荐
- Java关键字final、static使用总结
- 详解JAVA内部类
- 【Leetcode】299-bulls-and-cows【Java实现】【hash table】
- 《Java并发编程从入门到精通》目录
- spring mvc中log4j的配置与使用
- Java抽象类与接口
- Java注解Annotation基础
- String类(二)
- Spring_Security_3.0.1中文参考文档 2 Security命名空间配置
- 关于velocity tool2.0+springMVC的配置
- JAVA_SE基础——50.接口关系下的多态
- Spring定时器配置
- java基础关于线程
- 详解java版本迭代中的 BIO、NIO和AIO
- Java语言基础之集合乱舞Step2
- 今天在给同事改程序的时候,发现了java中Runtime
- Java初学者都必须理解的六大问题
- Spring_Security_3.0.1中文参考文档 1 介绍
- 无聊,统计MyEclipse下面工程代码量
- Java微观探源(二)_一个例子看懂JVM内存分配和回收