Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 具有相同Id的2个类如何更改属性并在这两个类中反映_Java_C# - Fatal编程技术网

Java 具有相同Id的2个类如何更改属性并在这两个类中反映

Java 具有相同Id的2个类如何更改属性并在这两个类中反映,java,c#,Java,C#,我有3个类,每个类都可能有不同的属性,让我们用钢笔说出一个类名 另外一节课,现在让我们用1,2,3来拿两个id。。以此类推。如果我有许多id或具有不同id的对象,那么手id和笔id都是相同的, 只有手id 1可以使用笔id 1,手id 2也可以使用笔id 2 class Hand{ string Id; bool Status; Hand(string id){ Id=1; Status=false

我有3个类,每个类都可能有不同的属性,让我们用钢笔说出一个类名 另外一节课,现在让我们用1,2,3来拿两个id。。以此类推。如果我有许多id或具有不同id的对象,那么手id和笔id都是相同的, 只有手id 1可以使用笔id 1,手id 2也可以使用笔id 2

class Hand{ 
      string Id;
      bool Status;
      Hand(string id){
            Id=1;
            Status=false
      }
}
class Pen{ 
      string Id
      bool Status;
      Pen(string id){
            Id=1;
            Status=false;
      }
}
class Pencil{ 
      string Id
      bool Status;
      Pen(string id){
            Id=1;
            Status=false;
      }
}
因此,如果我更改Hand.status=true,它应该自动在pen.status或具有该id的铅笔中更改为true。 让我们假设一下。 手id 1、2、3所有状态均为假 pen的id为1,3 铅笔的id是2 若id 2的手变为真,那个么在带有id的铅笔中找到的id应该改变 如何映射它们或如何在两个类之间建立连接 谢谢你的建议

这应该是工作了

class Hand
{
    public int Id;
    private bool m_Status;
    public bool Status
    {
        get
        {
            return m_Status;
        }
        set
        {
            m_Status = value;
            if (Pen != null)
            {
                Pen.Status = value;
            }
        }
    }
    Pen Pen { get; set; }

    Hand(int id)
    {
        Id=1;
        Status=false;
    }
}

class Pen
{
    public int Id;
    public bool Status;
    Pen(int id)
    {
        Id=1;
        Status=false;
    }
}
*添加/修改*

您还可以像这样扩展类

class Hand
{
    public int Id;
    private bool m_Status;
    public bool Status
    {
        get
        {
            return m_Status;
        }
        set
        {
            m_Status = value;
            if (Item != null)
            {
                Item.Status = value;
            }
        }
    }
    Item Item { get; set; }

    Hand(int id)
    {
        Id=id;
        Status=false;
    }
}

class Item
{
    public int Id;
    public bool Status;
    public Item(int id)
    {
        Id=id;
        Status=false;
    }
}

class Pen : Item
{
    public Pen(int id)
        : base(id)
    {

    }
}


class Eraser : Item
{
    Eraser(int id)
        : base(id)
    {

    }
}


class Pencil : Item
{
    public Pencil(int id)
        : base(id)
    {

    }
}

理想情况下,如果两个对象主要是相互依赖的,那么它们将具有
HAS-a
IS-a
关系,您能否重新考虑您的设计

理想情况下,如果您的类命名正确,您可以有一个
手和一个笔的关系
(或者也可以反过来)

所以你可以

class Hand{ 
      string Id;
      bool Status;
      Pen pen = new Pen();
      Hand(string handId, String penId){
            id=handIdl;
            pen.id = penId;
            Status=false
      }
     setStatus(boolean status) {
       this.status = status;
       this.pen.status = status;
     }
}
class Pen{ 
      string Id
      bool Status;
      Pen(string id){
            Id=1;
            Status=false;
      }
}
理想情况下,您应该有一个类似的结构,这些只是需要进一步研究的指针

希望有帮助


祝你好运

您还可以在笔中添加手变量。获取hand.Status,而不是像这样获取笔的Status。bool Status{get=>Hand.Status}感谢您帮助我解决您的逻辑问题,非常好,但我有n个类。你的代码只适用于pen,我有pen,pencil,橡皮擦etc@virus:你这样做的目的是什么?我非常抱歉没有早点描述它。谢谢你的帮助,如果我有两门课,它是有效的,但很抱歉没有正确描述这个问题,我有n个班,有一个主课,比如手是主笔铅笔橡皮擦是不同的课。我非常抱歉没有描述早些时候。