Thank you so much Nic for these clairifecations :).

Best,

Nada




On Fri, Nov 20, 2009 at 4:10 PM, Nic Fox <[email protected]> wrote:

> Well it works, but the way you have chosen to do the project is the 2nd way
> I described which I said is actually *not* a good way of doing it.
>
> As I already mentioned it's better to create the StudentRecord instances
> inside the Student class constructor, for example:
>
> public Student (String name, double grade) {
>         //increase student count
>         studentCount++;
>
>         //create a new student record
>         studentRecord = new StudentRecord(name, grade);
> }
>
>
> That way you avoid having to supply the StudentRecord instances whenever
> you create a new Student instance because it happens automatically, and in
> this case the studentCount is also incremented automatically.
>
> The other thing I noticed was how you access the name field in each
> StudentRecord instance. It would be better to declare the name field as
> private, and access it like this:
>
>   student2.getStudentRecord().getName();
>
> This uses one of the StudentRecord methods that you commented out.
>
>   On 20/11/2009, at 7:29 PM, nn roh wrote:
>
>    Hi ,
>
> Can you look at the program ,now it works fine .
>
> Thanks
>
> Nada
>
>
>
>
> On Fri, Nov 20, 2009 at 4:09 AM, Nic Fox <[email protected]> wrote:
>
>> First up, your code only creates 1 StudentRecord instance, which all the
>> Student instances use. You could fix that easily and get the project working
>> although...
>>
>> The other issue is that you have failed to use composition e.g. a Student
>> *has* a StudentRecord, so you should really be creating your
>> StudentRecord instances to be part of each Student instance by putting the
>> code to declare and create a StudentRecord in the Student class, not in the
>> StudentRecordExample class where the main method is. You already have the
>> studentRecord instance variable there in the Student class, you just need to
>> add the instantiating statement to a constructor (which is missing at the
>> moment).
>>
>> Alternatively you could create the instances of each StudentRecord in the
>> main method and pass them to each Student instance through the Student
>> object constructors or some other method e.g. public void addStudentRecord
>> (StudentRecord sR), but that approach isn't a very good way of doing it.
>>
>> The reason I mention this 2nd approach (which is not the best approach in
>> my opinion) is that it's good practice to think of a number of different
>> ways of coding something, and then evaluate each to see what their
>> advantages and disadvantages are. In the above case, the second example
>> requires 2 separate tasks to be performed and that they're performed in a
>> specific order before you have a usable Student instance. It's an example of
>> tight coupling between classes, and tight coupling is a bad thing. As you
>> learn more about the Object Oriented side of programming and Java you'll
>> come across these sorts of topics which are concerned with how to model
>> objects and systems.
>>
>> Hope this all helps and isn't too confusing.
>>
>>
>>  On 20/11/2009, at 6:48 AM, Rammohan Vadlamani wrote:
>>
>> <MyStudentRecordExampleProject2.zip>
>>
>>
>>
>> --
>> To post to this group, send email to
>> [email protected]
>> To unsubscribe from this group, send email to
>> [email protected]<javaprogrammingwithpassion%[email protected]>
>> For more options, visit this group at
>> http://groups.google.com/group/javaprogrammingwithpassion?hl=en
>>
>
> <MyStudentRecordExampleProject2_091120-112744.zip>
>
>
>

-- 
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/javaprogrammingwithpassion?hl=en

Reply via email to