В някои езици за обектно-ориентирано програмиране, като С#, Delphi/
Free Pascal, Visual Basic, JavaScript, D, Python, свойствата са част
от езика, т.е. за тях съществува специален механизъм, чрез който се
декларират и използват.------------ Други езици, като например Java,
не подържат концепцията за свойства и за целта програмистите, трябва
да декларират двойка методи (за достъп и модификация на свойството),
за да се предостави тази функционалност.
В други езици, като Java, езика не предоставя механизъм за деклариране
на свойства и трябва да се дефинират специализирани методи за четене и
модификация на свойствата. -----------
Последните две изречения са доста идентични и има повторение на "други
езици".
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
Забелязваме, че в декларацията на конструктора, може да се добавят модификатори – <modifiers>. За модификаторите, които познаваме и които не са модификатори за достъп, т.е. const и static, трябва да кажем, че само const не е позволен за употреба при декларирането на конструктори. По-късно в тази глава, в секцията "Деклариране на статичен конструктор"[TODO:link] ще научим повече подорбности за конструктори декларирани с модификатор static.
Заглавието:
Инициализация по време да деклариране
трябва да се промени на:
Инициализация по време на деклариране
На страница 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>
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
Ами да, ще генерираме нова версия. За това са нужни само 4-5-6 часа, не е невъзможно.
Все се надявам да ми остане повече време и да приключим напълно този проект. Тъпо ми е, че от една година насам не смогвам, дори май повече от година. Обаче все не остава време, дори събота и неделя. Много рядко се случва да имам почивен ден, в който да не работя. Дори 1 ден не мога да отделя, а за довършване на книгата ще трябва 1 седмица плътна целодневна работа. По 1 час вечер не става. Трябва си блок от много поредни часове, за да е ефективно.
Чудя се дали може да се намери съвестен човек, който е в час и технически и като езикова грамотност, на който да платим да довърши всичко. Останали са само бъговете и упражненията, но не знам кога ще смогнем да ги оправим. Ако се сетите за такъв човек, готов съм да отделя бюджет и да действаме.
Другият вариант е да пуснем менте пълно с грешки, както беше с Java версията на книгата, но по-добре да ги изчистим тези грешки, които са докладвани. Грешки, за които знаем с срамота да ги отпечатаме във версията на хартия.
Ако искате ми вярвайте, но платих да бъде направен нов сайт на книгата и от 2 месеца е готов и не ми остана време да го пусна в Интернет. Просто ми стои на десктопа – чудесен сайт със CMS система и доста екстри, но не съм смогнал да отделя половин ден да го деплойна. От много месеци насам съм в режим „гасене на пожари“ и се надявам скоро да се откъсна от това.
Svetlin Nakov
Manager Technical Training
Telerik Corporation
Да, версията, която чета е ноемврийската. В началото на главата
наистина е упоменато, че не е довършена и умишлено съм поствал неща,
които са само от подтеми частично грешни (примерно с верен текст и
грешен пример).
Съжалявам ако съм постнал неща, които са 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...
Мишо, има да се чистят грешките и да се пооправят упражненията.
Обаче аз ще имам нов човек в моя екип на работа и ще му възложа това като първа задача. Това ще е до няколко седмици…
Ами да, грешките трябва да се чистят. Отворените грешки са тука:
https://introcsharpbook.googlecode.com/svn/trunk/bugs/open
Когато се изчистят отиват тука:
https://introcsharpbook.googlecode.com/svn/trunk/bugs/resolved
Една част са невалидни (пратени са върху стара версия на книгата), но е редно всичко докладвано да се погледне.
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 версиите на главите?