2013-09-18 3 views
1

У меня есть задание, где мне нужно использовать наследование и полиморфизм, вот что мое назначение говорит мне делать с моими классами:экземпляра класса в качестве частного члена в Java

Для этого задания, мы подклассы автор Time2 class как Time3, чтобы добавить соответствующий метод equals() и подкласс вашей предыдущей Date2 (из последнего назначения), чтобы включить экземпляр Time3 в качестве частного участника. Этот новый класс будет называться TimeStamp3 (подклассы Date2 и иметь экземпляр Time3).

Я не совсем понимаю, что он имел в виду

включают в себя экземпляр time3 в качестве частного члена

Хотя я понимаю, что Time3 extends Time2 и TimeStamp3 extends Date2, я просто не могу» t выяснить, что мне нужно сделать, чтобы позволить Date2 иметь доступ к Time3.

+1

Вам нужно поместить поле 'Time3' в класс, который вы создаете, который расширяет' Date2'. –

+1

Классы под названием name {number}. К чему идет образование? –

+0

По крайней мере, у них есть классы. У нас были только функции, и мы думали, что нам повезло! – andy256

ответ

0

Член класса также известен как переменную экземпляра. Поэтому ваш экземпляр Time3 в вашем Date2 будет закрыт или защищен, а не публичный. Это может выглядеть следующим образом:

class TimeStamp3 extends Date2{ 
... 
    private Time3 timeThree; 
... 

} 

Вам не придется беспокоиться о доступе к экземпляру Time3 внутри Date2, потому что это подклассы. Как вы должны знать, когда переменная экземпляра равна private, она доступна только членам внутри класса. Это не сделает класс Time3 частным, а конкретный экземпляр этого объекта внутри класса Date2.

Даже если член экземпляра является закрытым, любые методы внутри класса Date2 смогут получить доступ к этой переменной-члену. Это классы за пределами Date2, которые не смогут получить доступ к этому экземпляру. Другие классы могут потенциально получить доступ к Time3, только не экземпляр Time3 внутри Date2.

1

После создания класса time3, создать еще один класс с именем TimeStamp3 (глупые имена ...)

public class TimeStamp3 extends Date2 { 

    private Time3 time; 

    //methods, other instance variables etc. 

} 
+0

Большое спасибо, это было так много. поэтому у меня есть экземпляр Time3, называемый временем в моем классе TimeStamp3, который расширяет Date2? Я получаю это сейчас! –

Смежные вопросы