JAVA対象(基本編)の一対一関係
一人は本を持っています。本は一人です。-->人間は具体的な種類であるべきです。本も具体的な種類であるべきです。人間のクラスには属性表示書があります。本の種類にも属性表示人があります。
名前:張三年齢:30書名:JAVA SE価格:90.0本から人を見つけました-”書名:JAVA SE価格:90.0名前:張三年齢:30張三の子供-->名前:張小三年齢:10書名:LOVE価格:30.0
EverNoteメモ
// :
class Person {
private String name;
private int age;
private Book book;
public Person(String name, int age){
this.setName(name);
this.setAge(age);
}
public String getName(){ //
return name;
}
public void setName(String n){ //
name = n;
}
public int getAge(){ //
return age;
}
public void setAge(int a){ //
age = a;
}
public Book getBook(){
return book;
}
public void setBook(Book b){
book = b;
}
}
class Book {
private String title;
private float price;
private Person person;
public Book(String title, float price) {
this.setTitle(title);
this.setPrice(price);
}
public String getTitle() { //
return title;
}
public void setTitle(String t){ //
title = t;
}
public float getPrice(){ //
return price;
}
public void setPrice(float p){ //
price = p;
}
public Person getPerson() {
return person;
}
public void setPerson(Person p) {
person = p;
}
}
public class OneToOne{
public static void main(String []args){
Person pers=new Person(" ", 30);
Book bk = new Book("JAVA SE", 90.0f);
pers.setBook(bk);
bk.setPerson(pers);
System.out.println(" --》 :" + pers.getName() + " :"
+ pers.getAge() + " :" + pers.getBook().getTitle() + " :"
+ pers.getBook().getPrice());
System.out.println(" --》 :" + pers.getBook().getTitle() + " :"
+ pers.getBook().getPrice() + " :" + pers.getName() + " :"
+ pers.getAge());
}
}
一対一の関係をさらに深めます。一人に子供がいれば、子供一人に本があります。どのように分析しますか?もう一人で子供のクラスを作りますか?NO!子供もPersonなので、Person類に引用を追加すればいいです。 // :
class Person {
private String name;
private int age;
private Book book;
private Person child;
public Person(String name, int age){
this.setName(name);
this.setAge(age);
}
public String getName(){ //
return name;
}
public void setName(String n){ //
name = n;
}
public int getAge(){ //
return age;
}
public void setAge(int a){ //
age = a;
}
public Book getBook(){
return book;
}
public void setBook(Book b){
book = b;
}
public Person getChild(){
return child;
}
public void setChild(Person child){
this.child = child;
}
}
class Book {
private String title;
private float price;
private Person person;
public Book(String title, float price) {
this.setTitle(title);
this.setPrice(price);
}
public String getTitle() { //
return title;
}
public void setTitle(String t){ //
title = t;
}
public float getPrice(){ //
return price;
}
public void setPrice(float p){ //
price = p;
}
public Person getPerson() {
return person;
}
public void setPerson(Person p) {
person = p;
}
}
public class OneToOne2{
public static void main(String []args){
Person pers= new Person(" ", 30);
Person cld = new Person(" ", 10);
Book bk = new Book("JAVA SE", 90.0f);
Book bkc = new Book("LOVE", 30.0f);
pers.setBook(bk); // ,
bk.setPerson(pers); //
cld.setBook(bkc); //
bkc.setPerson(pers); //
pers.setChild(cld); //
System.out.println(" --》 :" + pers.getName() + " :"
+ pers.getAge() + " :" + pers.getBook().getTitle() + " :"
+ pers.getBook().getPrice());
System.out.println(" --》 :" + pers.getBook().getTitle() + " :"
+ pers.getBook().getPrice() + " :" + pers.getName() + " :"
+ pers.getAge());
System.out.println(pers.getName() + " --> :" + pers.getChild().getName()
+ " :" + pers.getChild().getAge()
+ " :" + pers.getChild().getBook().getTitle()
+ " :" + pers.getChild().getBook().getPrice());
}
}
運行結果:------------------------------------------------------------名前:張三年齢:30書名:JAVA SE価格:90.0本から人を見つけました-”書名:JAVA SE価格:90.0名前:張三年齢:30張三の子供-->名前:張小三年齢:10書名:LOVE価格:30.0
EverNoteメモ