Java调试笔记第一章(引用传递)(一对多)

class Item
{private int iid;
private String name;
private String note;
private Subitem subitem[];
private Product product[];
public Item(int iid,String name,String note){
this.iid=iid;
this.name=name;
this.note=note;
}
public Item(){}
public void setName(String name){
this.name=name;
}
public String getName(){
return this.name;
}
public void setIid(int iid){
this.iid=iid;
}
public int getIid(){
return this.iid;
}
public void setNote(String note){
this.note=note;
}
public String getNote(){
return this.note;
}
public void setSubitem(Subitem subitem[])
{
this.subitem=subitem;
}
public Subitem[]getSubitem()
{
return this.subitem;
}
public void setProduct(Product product[])
{
this.product=product;
}
public Product[]getProduct()
{
return this.product;
}
public String getInfo(){
return "父栏目"+this.iid+this.name+this.note;
}
}
class Subitem
{private int sid;
private String name;
private String note;
private Item item;
private Product product[];
public Subitem(int sid, String name, String note){
this.sid=sid;
this.name=name;
this.note=note;
}
public Subitem(){}
public void setItem(Item item)
{
this.item=item;
}
public Item getItem()
{
return this.item;
}
public void setProduct(Product product[])
{
this.product=product;
}
public Product[]getProduct()
{
return this.product;
}
public void setName(String name){
this.name=name;
}
public String getName(){
return this.name;
}
public void setSid(int sid){
this.sid=sid;
}
public int getSid(){
return this.sid;
}
public void setNote(String note){
this.note=note;
}
public String getNote(){
return this.note;
}
public String getInfo(){
return "子栏目"+this.sid+this.name+this.note;
}
}
class Product
{
private int pid;
private String name;
private double price;
private Item item;
private Subitem subitem[];
public Product(int pid, String name, double price){
this.pid=pid;
this.name=name;
this.price=price;
}
public Product(){}
public void setSubitem(Subitem subitem[])
{
this.subitem=subitem;
}
public Subitem[] getSubitem()
{
return this.subitem;
}
public void setItem(Item item)
{
this.item=item;
}
public Item getItem()
{
return this.item;
}
public void setPid(int pid)
{
this.pid=pid;
}
public int getPid()
{
return this.pid;
}
public void setName(String name)
{
this.name=name;
}
public String setName()
{
return this.name;
}
public void setPrice(double price){
this.price=price;
}
public double getPrice(){
return this.price;
}
public String getInfo(){
return "商品"+this.pid+this.name+this.price;
}
}
public class PCtestse
{
public static void main(String args[])
{
Item item=new Item(1,"厨房用具","1");
Subitem suba=new Subitem(1001,"刀具","2");
Subitem subb=new Subitem(1001,"刀具","2");
Subitem subc=new Subitem(1001,"刀具","2");
Product proa=new Product(1002,"小刀",20);
Product prob=new Product(1003,"小刀",20);
suba.setItem(item);
suba.setItem(item);
suba.setItem(item);
item.setSubitem(new Subitem[]{suba,subb,subc});
proa.setSubitem(suba);
proa.setItem(item);
prob.setSubitem(subb);
prob.setItem(item);
suba.setProduct(proa);
subb.setProduct(prob);
//通过一个类型找到它所对应的全部子类型
System.out.println(item.getInfo());
//通过一个类型找到它所对应的全部商品,以及每个商品对应的子类型
// for(int x=0,x<item.getsubitem().length,x++)
// {
//System.out.println(item.getProduct()[x].getInfo());
//System.out.println(item.getSubitem()[x].getInfo());
//通过一个子类型找到所有对应的全部商品
//for(int x=0,x<item.getsubitem().length,x++)
// {
// System.out.println(item.getSubitem()[x].getInfo());
//}
}
}

出错:

class Item
{private int iid;
private String name;
private String note;
private Subitem subitems[]; //数组加复数
private Product products[];
public Item(int iid,String name,String note){
this.iid=iid;
this.name=name;
this.note=note;
}
public Item(){}
public void setName(String name){
this.name=name;
}
public String getName(){
return this.name;
}
public void setIid(int iid){
this.iid=iid;
}
public int getIid(){
return this.iid;
}
public void setNote(String note){
this.note=note;
}
public String getNote(){
return this.note;
}
public void setSubitems(Subitem subitems[])
{
this.subitems=subitems;
}
public Subitem[]getSubitems()
{
return this.subitems;
}
public void setProducts(Product products[])
{
this.products=products;
}
public Product[]getProducts()
{
return this.products;
}
public String getInfo(){
return "父栏目"+this.iid+this.name+this.note;
}
}
class Subitem
{private int sid;
private String name;
private String note;
private Item item;
private Product products[];
public Subitem(int sid, String name, String note){
this.sid=sid;
this.name=name;
this.note=note;
}
public Subitem(){}
public void setItem(Item item)
{
this.item=item;
}
public Item getItem()
{
return this.item;
}
public void setProducts(Product products[])
{
this.products=products;
}
public Product[]getProducts()
{
return this.products;
}
public void setName(String name){
this.name=name;
}
public String getName(){
return this.name;
}
public void setSid(int sid){
this.sid=sid;
}
public int getSid(){
return this.sid;
}
public void setNote(String note){
this.note=note;
}
public String getNote(){
return this.note;
}
public String getInfo(){
return "子栏目"+this.sid+this.name+this.note;
}
}
class Product
{
private int pid;
private String name;
private double price;
private Item item;
private Subitem subitem; //不是复数,一件商品属于一个子类型
public Product(int pid, String name, double price){
this.pid=pid;
this.name=name;
this.price=price;
}
public Product(){}
public void setSubitem(Subitem subitem)
{
this.subitem=subitem;
}
public Subitem getSubitem()
{
return this.subitem;
}
public void setItem(Item item)
{
this.item=item;
}
public Item getItem()
{
return this.item;
}
public void setPid(int pid)
{
this.pid=pid;
}
public int getPid()
{
return this.pid;
}
public void setName(String name)
{
this.name=name;
}
public String setName()
{
return this.name;
}
public void setPrice(double price){
this.price=price;
}
public double getPrice(){
return this.price;
}
public String getInfo(){
return "商品"+this.pid+this.name+this.price;
}
}
public class PCtestse
{
public static void main(String args[])
{
Item item=new Item(1,"厨房用具","1");
Subitem suba=new Subitem(1001,"刀具","2");
Subitem subb=new Subitem(1001,"刀具","2");
Subitem subc=new Subitem(1001,"刀具","2");
Product proa=new Product(1002,"小刀",20);
Product prob=new Product(1003,"小刀",20);
suba.setItem(item);
suba.setItem(item);
suba.setItem(item);
item.setSubitems(new Subitem[]{suba,subb,subc});
proa.setSubitem(suba);
proa.setItem(item);
prob.setSubitem(subb);
prob.setItem(item);
suba.setProducts(new Product[]{proa,prob});
subb.setProducts(new Product[]{proa,prob});
//通过一个类型找到它所对应的全部子类型
System.out.println(item.getInfo());

for(int x=0;x<item.getSubitems().length;x++)
{

System.out.println(item.getSubitems()[x].getInfo());
}
//通过一个类型找到它所对应的全部商品,以及每个商品对应的子类型
System.out.println(item.getInfo());

for(int x=0;x<item.getProducts().length;x++)
{
System.out.println(item.getProducts()[x].getInfo());
System.out.println(item.getProducts()[x].getSubitem().getInfo());
}

//通过一个子类型找到所有对应的全部商品
System.out.println(subb.getInfo());
for(int x=0;x<subb.getProducts().length;x++)
{
System.out.println(subb.getProducts()[x].getInfo());

}
}
}

原文地址:https://www.cnblogs.com/Syiren/p/8666604.html

时间: 2024-10-22 06:24:22

Java调试笔记第一章(引用传递)(一对多)的相关文章

《深入理解Java虚拟机》读书笔记---第一章 走进Java

一.为什么要读此书 <深入理解Java虚拟机>这本书读了很多次,每次读都会有不一样的感受.首先说一下为什么要读这本书,如果把Java比喻成乾坤大挪移,那了解虚拟机的工作原理就是练习九阳神功,java语言是招式,对虚拟机的认识是内功心法,只有内功心法强大,所使的招式才强大,这就是为什么阳顶天只能把乾坤大挪移练到第四层,而张无忌能练到第七层.由于java虚拟机的强大,把很多功能都隐藏了,例如内容管理,垃圾回收机制等,使得很多java程序猿对这一块的知识所有缺失,编码的时候也是似懂非懂的,以至于遇到

《Java并发变成实践》读书笔记---第一章 简介

<Java并发编程实战>深入浅出地介绍了Java线程和并发,是一本完美的Java并发参考手册.书中从并发性和线程安全性的基本概念出发,介绍了如何使用类库提供的基本并发构建块,用于避免并发危险.构造线程安全的类及验证线程安全的规则,如何将小的线程安全类组合成更大的线程安全类,如何利用线程来提高并发应用程序的吞吐量,如何识别可并行执行的任务,如何提高单线程子系统的响应性,如何确保并发程序执行预期任务,如何提高并发代码的性能和可伸缩性等内容,最后介绍了一些高级主题,如显式锁.原子变量.非阻塞算法以及

java编程思想笔记(第一章)

Alan Kay 第一个定义了面向对象的语言 1.万物皆对象 2.程序是对象的集合,他们彼此通过发送消息来调用对方. 3.每个对象都拥有由其他对象所构成的存储 4.每个对象都拥有其类型(TYpe) 5.某一特定类型的所有对象都可以接收同样的消息. Booch提出一种更简洁的描述: 对象拥有状态(state) 行为(behavior) 和标识(identity) 每个对象都有一个接口 每个对象都属于定义了特性和行为的某个类(特性可以理解为属性的状态,行为可以理解为method) 在面向对象的程序设

《Hadoop权威指南》笔记 第一章&第二章

? ? ? ? ? ? ? ? ? ? ? ? ? ? 使用MapReduce ? ? ? ? ? ? ? ? import java.io.IOException; // 是hadoop针对流处理优化的类型 import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; // 会继承这个基类 import org.apache

iOS 读书笔记 第一章

1.确定某个实例或类方法是否可用. 1)使用NSObject的类方法instancesRespondToSelector:来确定是否在该类的一个实例中存在一个特定的选择器. NSArray *array = @[@"1",@"2"]; if ([NSArray instancesRespondToSelector:@selector(sortUsingComparator:)]) { //do something use sortUsingComparator: }

编程之美笔记--第一章游戏之乐--1.2中国象棋将帅问题

后来一版作者又将最后一句改为:”要求在代码中只能使用一个字节存储变量“. 我的解法: package android.zlb.java; /** * * @author zhanglibin * */ public class TestXiangqi { public static void main(String[] args) { for(int i = 11; i < 100; i++) { if(i / 10 % 3 == 1 && (i % 10 == 1 || i % 1

深入理解 C 指针阅读笔记 -- 第一章

上周末,我在图书馆看到了这本很薄的书 -- <深入理解 C 指针>       这本书中写的内容,个人感觉适合一个初学者,内容不是很难.我也读了下,对每一章都做了笔记,笔记都是用代码的形式贴出来. Chapter1.h #ifndef __CHAPTER_1_ #define __CHAPTER_1_ /*<深入理解C指针>学习笔记 -- 第一章*/ /*一个数如果是无符号的,那么尽量去选用 size_t 类型*/ /*使用 size_t 类型的时候一定要用对了输出格式*/ voi

《Hadoop权威指南》笔记 第一章&第二章 MapReduce初探

? ? ? ? ? ? ? ? ? ? ? ? ? ? 使用MapReduce ? ? ? ? ? ? ? ? import java.io.IOException; // 是hadoop针对流处理优化的类型 import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; // 会继承这个基类 import org.apache

《Linux Shell脚本攻略》 笔记 第一章:Shell起步基础

<Linux Shell脚本攻略> 笔记 第一章:Shell起步基础 1.变量:在bash中,每一个变量的值都是字符串.无论你给变量赋值时,有没有使用引号,值都会以字符串的形式存储. 2.var=value; //赋值操作 var = value: //相等操作 3.获取字符串的长度 [[email protected] ~]$ var=yang [[email protected] ~]$ length=${#var} [[email protected] ~]$ echo $length