Глава 14: Дефиниране на класове

32 views
Skip to first unread message

Viktor Nonov

unread,
Feb 13, 2011, 12:24:06 AM2/13/11
to Intro C# Book
На страница 111:

В някои езици за обектно-ориентирано програмиране, като С#, Delphi/
Free Pascal, Visual Basic, JavaScript, D, Python, свойствата са част
от езика, т.е. за тях съществува специален механизъм, чрез който се
декларират и използват.------------ Други езици, като например Java,
не подържат концепцията за свойства и за целта програмистите, трябва
да декларират двойка методи (за достъп и модификация на свойството),
за да се предостави тази функционалност.
В други езици, като Java, езика не предоставя механизъм за деклариране
на свойства и трябва да се дефинират специализирани методи за четене и
модификация на свойствата. -----------

Последните две изречения са доста идентични и има повторение на "други
езици".

Ilian Iliev

unread,
Mar 8, 2011, 1:11:46 PM3/8/11
to Intro C# Book
unoficial-early-preview-version-Feb
Страница 468

this.dogName has a value of: null
Така както е зададено няма как да бъде null, а ще бъде празен стринг
т.к. null string се принтира като String.Empty
ако все пак искаме да излезе така може да модифицираме примерa:
Console.WriteLine("this.dogName has a value of " +
((name==null)?"null":name));

Страница 458

Модификатори
Забелязваме, че в декларацията на конструктора, може да се добавят
модификатори - <modifiers>. За модификаторите, които познаваме и които
не са модификатори за достъп, т.е. const и static, трябва да кажем, че
не са позволени за употреба при декларирането на конструктори.


В C# има static конструктори - http://msdn.microsoft.com/en-us/library/k9x6w0hc%28v=vs.80%29.aspx

Николай Василев

unread,
Mar 8, 2011, 1:31:15 PM3/8/11
to introcs...@googlegroups.com
Привет,

Тая версия на книгата, която четеш ми се струва, че не последната:

1) Това не мога да го намеря в последната версия на книгата. Можеш ли да приложиш цитат от текста или кода преди отпечатването?

2) Коя версия на книгата четеш? В последната е изложено коректно:

Забелязваме, че в декларацията на конструктора, може да се добавят модификатори – <modifiers>. За модификаторите, които познаваме и които не са модификатори за достъп, т.е. const и static, трябва да кажем, че само const не е позволен за употреба при декларирането на конструк­тори. По-късно в тази глава, в секцията "Деклариране на статичен конструктор"[TODO:link] ще научим повече подорбности за конструктори декларирани с модификатор static.



Поздрави,
Николай 
--
Николай Василев

Ilian Iliev

unread,
Mar 8, 2011, 2:36:10 PM3/8/11
to introcs...@googlegroups.com
Ох..явно съм объркал версиите,защото постоянно свалям нови от SVN (явно не съм отворил правилната) с идеята да не поствам outdate-нати неща и се е получила грешка.

2011/3/8 Николай Василев <nikolay...@gmail.com>

Viktor Nonov

unread,
Mar 23, 2011, 2:18:30 AM3/23/11
to Intro C# Book
На страница 488:

Заглавието:
Инициализация по време да деклариране

трябва да се промени на:
Инициализация по време на деклариране

На страница 541:

Декларациите на променливите в С#са няколко вида (почти като в C++,
Java и Delphi) - локални променливи (за даден блок), !!!!!!член-промен-
ливи!!!! на типа и константи.

трябва да се промени на:
Декларациите на променливите в С# са няколко вида (почти като в C++,
Java и Delphi) - локални променливи (за даден блок), член-променливи
на типа и константи.

На страница 542:

Compile-time константите се декларират със запазената дума const. Те
задължително се инициализират в момента на декларирането им и не могат
да се променят след това. Те реално не съществуват като промен-ливи в
програмата.

трябва да се промени на:
Compile-time константите се декларират със запазената дума const. Те
задължително се инициализират в момента на декларирането им и не могат
да се променят след това. Те реално не съществуват като променливи в
програмата.


On Mar 8, 9:36 pm, Ilian Iliev <iliev....@gmail.com> wrote:
> Ох..явно съм объркал версиите,защото постоянно свалям нови от SVN (явно не
> съм отворил правилната) с идеята да не поствам outdate-нати неща и се е
> получила грешка.
>

> 2011/3/8 Николай Василев <nikolay.vasi...@gmail.com>


>
>
>
>
>
>
>
> > Привет,
>
> > Тая версия на книгата, която четеш ми се струва, че не последната:
>
> > 1) Това не мога да го намеря в последната версия на книгата. Можеш ли да
> > приложиш цитат от текста или кода преди отпечатването?
>
> > 2) Коя версия на книгата четеш? В последната е изложено коректно:
>
> > Забелязваме, че в декларацията на конструктора, може да се добавят

> > модификатори - <modifiers>. За модификаторите, които познаваме и които не

> > са модификатори за достъп, т.е. const и static,* трябва да кажем, че само
> > **const** не е позволен за употреба при декларирането на конструк-тори*.


> > По-късно в тази глава, в секцията "Деклариране на статичен конструктор"
> > [TODO:link] ще научим повече подорбности за конструктори декларирани с
> > модификатор static.
>
> > Поздрави,
> > Николай
>

> > 2011/3/8 Ilian Iliev <iliev....@gmail.com>

Viktor Nonov

unread,
Mar 23, 2011, 11:45:38 AM3/23/11
to Intro C# Book
На страница 530 в "Капсулация - пример":

class Point
{
private double x;
private double y;

public Point(double x, double y)
{
this.x = x;
this.y = y;
}

public double GetX()
{
return x;
}

public void SetX(double x)
{
this.x = x;
}

public double GetY()
{
return y;
}

public void SetY(double y)
{
this.y = y;
}
}

трябва да стане в C# стил:
class Point
{
private double x;
private double y;

public Point(double x, double y)
{
this.x = x;
this.y = y;
}

public double X
{
get { return x; }
set { this.x = value; }
}

public double Y
{
get { return y; }
set { this.y = value; }
}
}

И вече в по-долния пример в Main() метода ще може да ползваме:
myPoint.X и myPoint.Y

Николай Василев

unread,
Mar 23, 2011, 5:56:12 PM3/23/11
to introcs...@googlegroups.com, Viktor Nonov
Привет Виктор,

Версията на текста, която четеш не е актуална. Предполагам, че четеш от ноемврийската версия на книгата:


По отношение на 14-та глава обаче, това не е последната версия на текста. В края на годината (до Бъдни Вечер), 14-та глава беше преработена из основи и разликите с ноемврийската версия на книгата са прекалено много и прекалено генерални. 

Бих ти препоръчал да прегледаш последната версия на 14-та глава от тук:


Доколкото разбирам от името на файла, главата е прегледана и редактирана след приключването на работата по нея (с изключение на упражненията).

@Светлин: Светльо, защо не генерираме нова версия на книгата, хората да не се бъркат да четат стари неща. 

Поздрави,
Николай

2011/3/23 Viktor Nonov <vno...@gmail.com>



--
Николай Василев

Svetlin Nakov

unread,
Mar 23, 2011, 6:09:18 PM3/23/11
to introcs...@googlegroups.com

Ами да, ще генерираме нова версия. За това са нужни само 4-5-6 часа, не е невъзможно.

 

Все се надявам да ми остане повече време и да приключим напълно този проект. Тъпо ми е, че от една година насам не смогвам, дори май повече от година. Обаче все не остава време, дори събота и неделя. Много рядко се случва да имам почивен ден, в който да не работя. Дори 1 ден не мога да отделя, а за довършване на книгата ще трябва 1 седмица плътна целодневна работа. По 1 час вечер не става. Трябва си блок от много поредни часове, за да е ефективно.

 

Чудя се дали може да се намери съвестен човек, който е в час и технически и като езикова грамотност, на който да платим да довърши всичко. Останали са само бъговете и упражненията, но не знам кога ще смогнем да ги оправим. Ако се сетите за такъв човек, готов съм да отделя бюджет и да действаме.

 

Другият вариант е да пуснем менте пълно с грешки, както беше с Java версията на книгата, но по-добре да ги изчистим тези грешки, които са докладвани. Грешки, за които знаем с срамота да ги отпечатаме във версията на хартия.

 

Ако искате ми вярвайте, но платих да бъде направен нов сайт на книгата и от 2 месеца е готов и не ми остана време да го пусна в Интернет. Просто ми стои на десктопа – чудесен сайт със CMS система и доста екстри, но не съм смогнал да отделя половин ден да го деплойна. От много месеци насам съм в режим „гасене на пожари“ и се надявам скоро да се откъсна от това.

 

Svetlin Nakov

Manager Technical Training

Telerik Corporation

Viktor Nonov

unread,
Mar 24, 2011, 5:30:46 AM3/24/11
to Intro C# Book
Здравей Николай,

Да, версията, която чета е ноемврийската. В началото на главата
наистина е упоменато, че не е довършена и умишлено съм поствал неща,
които са само от подтеми частично грешни (примерно с верен текст и
грешен пример).
Съжалявам ако съм постнал неща, които са outdate и съм затруднил
работата.
Вече ще гледам новата версия на главата.

Поздрави,
Виктор Нонов

On Mar 23, 11:56 pm, Николай Василев <nikolay.vasi...@gmail.com>
wrote:


> Привет Виктор,
>
> Версията на текста, която четеш не е актуална. Предполагам, че четеш от
> ноемврийската версия на книгата:
>

> http://code.google.com/p/introcsharpbook/source/browse/trunk/book/Int...


>
> По отношение на 14-та глава обаче, това не е последната версия на текста. В
> края на годината (до Бъдни Вечер), 14-та глава беше преработена из основи и
> разликите с ноемврийската версия на книгата са прекалено много и прекалено
> генерални.
>
> Бих ти препоръчал да прегледаш последната версия на 14-та глава от тук:
>

> http://code.google.com/p/introcsharpbook/source/browse/trunk/chapters...

Николай Василев

unread,
Mar 24, 2011, 5:38:58 AM3/24/11
to introcs...@googlegroups.com
Здравей Виктор,

Няма проблеми. Не си затруднил никой. Основната работа по главата е приключена преди 2-3 месеца, така че не притесняваш никого.

Да, по-добре ще е да погледнеш новата версия.

Поздрави,
Николай

2011/3/24 Viktor Nonov <vno...@gmail.com>



--
Николай Василев

mihail stoynov

unread,
Mar 24, 2011, 3:32:07 PM3/24/11
to introcs...@googlegroups.com
Какво още има да се прави?
Аз мисля, че мога да отделя време в идните седмици.

Михаил

Svetlin Nakov

unread,
Mar 26, 2011, 9:46:08 AM3/26/11
to introcs...@googlegroups.com

Мишо, има да се чистят грешките и да се пооправят упражненията.

 

Обаче аз ще имам нов човек в моя екип на работа и ще му възложа това като първа задача. Това ще е до няколко седмици…

 

Svetlin Nakov

Managing Partner

Consulting and Information Technology Agency

http://www.citagency.eu

mihail stoynov

unread,
Mar 26, 2011, 4:08:23 PM3/26/11
to introcs...@googlegroups.com
Трябва ли помощ?

2011/3/26 Svetlin Nakov <sve...@nakov.com>

Svetlin Nakov

unread,
Mar 29, 2011, 12:46:08 AM3/29/11
to introcs...@googlegroups.com

Ами да, грешките трябва да се чистят. Отворените грешки са тука:

https://introcsharpbook.googlecode.com/svn/trunk/bugs/open

Когато се изчистят отиват тука:

https://introcsharpbook.googlecode.com/svn/trunk/bugs/resolved

 

Една част са невалидни (пратени са върху стара версия на книгата), но е редно всичко докладвано да се погледне.

mihail stoynov

unread,
Mar 29, 2011, 5:13:27 PM3/29/11
to introcs...@googlegroups.com
Къде са most up-to-date версиите на главите? 

2011/3/29 Svetlin Nakov <sve...@nakov.com>

Svetlin Nakov

unread,
Apr 1, 2011, 5:14:17 PM4/1/11
to introcs...@googlegroups.com

 

From: introcs...@googlegroups.com [mailto:introcs...@googlegroups.com] On Behalf Of mihail stoynov
Sent: Wednesday, March 30, 2011 0:13
To: introcs...@googlegroups.com
Subject: Re: Глава 14: Дефиниране на класове

 

Къде са most up-to-date версиите на главите?

Reply all
Reply to author
Forward
0 new messages