озмчеъ бв'аеед
дзеош джд деа зеош обеа мзеош щм йзйгеъ 4-5 богтй дозщб.
лйгет млм, бщфд в'аеед йщ осфш ийфесй ръерйн, мощм int, double, char. ррйз лй бшцерре мйцеш ийфес згщ, щоома цешк осеййн щмре. мощм ррйз щбцшерре мбцт лм ойрй фтемеъ тн гмайн, ебщбйм жд ршцд щйдйд мре ощърд оийфес гмй. мщн лк дщфд в'аеед оафщшъ йцйшд щм ийфесй ръерйн. йцйшд же оъбцтъ баоцтеъ оещв дозмчд (class барвмйъ).
лаоеш, дозмчд дйа гбш щоафщш мйцеш тцойн (барвмйъ object) оийфес оефщи щръеп мгойере дфшет щм доълръ. бвгем, од щоафййп тцн жд щйщ ме ълереъ (attribute) ещйиеъ (method). дълереъ, лфй щъшае бдощк, дн ощърйн (йлемйн мдйеъ оийфес фщеи лое int, ае щдн йлемйн мдйеъ тцойн бтцон) щщеошйн бъелн тшлйн дзщебйн мтцн. доълръ чебт од деа тшк щзщеб мтцн. мощм бгевоа мтйм бревт мозмчеъ оийфес гмй, ршцд щмгмй ъдйд ълерд щаеошъ од дчйбемъ щме, еод дълемд дрелзйъ щме. ййълп щбййщеойн осеййойн ршцд вн щйдйд зщеб од дйа щръ дййцеш щм дгмй. бочшд джд ъдйд мгмй ълерд ресфъ, щръ ййцеш.
дщйиеъ щм тцн, жд дгбшйн щарзре шецйн мбцт айъе. мощм, ршцд момеъ гмй, ершцд мщфек аеъе мгмй азш, етм лп йдйе мре осфш щйиеъ дчщешеъ мгбшйн дамд.
лое лп, млм тцн цшйлд мдйеъ фтемд щоййцшъ тцойн ламд. мфтемд же чешайн брай (constructor).
добрд бвгем щм озмчд деа
чег:
public class Example //очебм млъеб аъ щн дозмчд баеъ вгемд
{
Attributes……
Constructors …. (ййълп ершцд щйдйд йеъш обрай азг мозмчд)
Methods (фтемеъ щм дозмчд)
}
мфрй щртсеч ббрййд мотщд щм дозмчд, ршад айк мдщъощ бд.
ррйз щлъбъре озмчд щоййцвъ гмй: Bucket. ррйз щмозмчд же щрй ълереъ оийфес double, щчешайн мдп _capacity е currentAmount_. (тм ощотеъ дче дъзъеп ртоег бдощк) бресу, ррйз щйщ осфш брай, дочбм щрй тшлйн оощййн, еоййцш гмй, щдчйбемъ щме жд дтшк дшащеп, едлоеъ дрелзйъ щме жд дтшк дщрй. йщ щйид щрчшайъ fill дочбмъ осфш оощй, еоесйфд аеъе мгмй, ан афщш (лмеош ан длоеъ ма ътмд тм чйбемъ дгмй).
ррйз щйщ мре ълрйъ main (оаеъе сев щм ълрйеъ бдп тсчре бтбш, бзеош щм йзйгеъ 1-2). рлъеб бд аъ дщешеъ дбаеъ:
чег:
Bucket buck = new Bucket(3.2,1.1); //щйоещ ббрай щм дозмчд. ожлйш оаег аъ счарш.
System.out.println(buck._capacity); //чшйад мълеръ дчйбемъ щм дгмй. йегфс дтшк 3.2
buck.fill(2); //чшйад мщйиъ доймей щм дгмй.
System.out.println(buck._currentAmount); //чшйад мълеръ длоеъ дрелзйъ щм дгмй. йегфс дтшк 3.1
buck.fill(1); //оомайн йеъш оод щафщш.
System.out.println(buck._currentAmount); //йегфс дтшк 3.2, лй жд длоеъ дочсйомйъ щм ойн бгмй.
щйое мб, щбщешеъ аме рйвщре ам дълереъ щм даебййчи бцешд йщйшд, гшк рчегд. бгшк лмм ма ртщд жаъ. дсйбд млк дйа щмшеб ршцд мтщеъ бгйчеъ ъчйреъ тм дълереъ (мощм чйбмеъ ма йлемд мдйеъ щмймйъ), еан рйъп мощъощ вйщд зефщйъ ам ощърйн аме, йелм мтщеъ бдп лшцере, еблк дъецаеъ щме тмемеъ мдйеъ ма двйерйеъ, лй дчег щмре осъок тм лк щдчйбемъ жд осфш ай щмймй.
млп, бшцерре морет одощъощ "мвтъ" бощърйн даме. ртщд аъ жд баоцтеъ оафййрй вйщд (access modifier). рсбйш жаъ ойг лщрбрд аъ дозмчд.
лое лп, млм озмчд йщ оощч. оощч деа мотщд дъоерд дзйцерйъ щм дозмчд, едеа аесу дгбшйн щаре реърйн мощъощ мдщъощ бдн. лм од щайре боощч, дощъощ блмм ма аоеш мгтъ тм чйеое. доощч оъаш аъ дозмчд еаъ фтемеъйд. ррйз щбшцерре щмозмчд Bucket йдйд доощч дба: (щйое мб щдобрд щм дфтемеъ деа лое добрд щм дфтемеъ аеъп брйън бйзйгеъ 1-2, йщ щн, еаж фшоишйн тн ийфес)
Bucket(double capacity, double amountToFill) – жде дбрай, щаъ фтемъе дсбшре чегн
чег:
void fill(double amountToFill) – дфтемд оочегн.
double getCapacity() – озжйш аъ дчйбемъ дрелзйъ
double getCurrentAmount() – озжйш аъ лоеъ дойн дрелзйъ
void setCapacity(double newCapacity) – ощрд аъ дчйбемъ мтшк щделрс
void pourInto(Bucket bucketInto) – щефлъ аъ длоеъ дочсйомйъ щм ойн щафщш одгмй джд, мгмй щдъчбм лфшоиш.
бресу, бшеб дозмчеъ щм в'аеед очебм щъдйд щйид тн щн сиргший
public String toString()
(доймд public дйа оафййп вйщд, еойг ргеп бощотеъд)
жедй фтемд щозжйшд озшежъ, щбгшк лмм оъашъ аъ даебййчи. (мощм бочшд щмре, фтемд же ъзжйш аъ чйбемъ дгмй, еаъ лоеъ дойн бе). ан дййре шецйн мдгфйс аъ даебййчи, дййре цшйлйн мшщен
чег:
System.out.println(buck.toString())
ак дфтемд toString щдщн щмд деа жд щъеаш мотмд ойезгъ: айп цешк мчшеа мд. лмеош ан рлъеб
чег:
System.out.println(buck)
дозщб йбйп мбг щогебш бфтемд toString еййчша мд. ан ма девгшд фтемд toString, дозщб йгфйс аъ дъа бжлшеп бе рщош даебййчи, лй жд toString щм озмчд бсйсйъ йеъш, щлм дозмчеъ обессеъ тмйд, ак айп аре ршзйб тм жд аъ дгйеп бщмб джд.
лтъ мбрййъ дозмчд. рмк тм фй добрд длммй щъеаш.
ръзйм:
чег:
public class Bucket
{
лап цшйлеъ мдйеъ ълереъ
}
мълереъ шцйре мчшеа _capacity, _currentAmount, дп цшйлеъ мдйеъ double. млп рлъеб жаъ лк:
чег:
public class Bucket
{
private double _capacity, _currentAmount; //геод мдцдшъ ощърйн бъзймъ ълрйъ.
}
доймд private дйа оафййп вйщд, щфйшещд щоеъш мдщъощ бощърд джд шч бъек дозмчд. лмеош ан ррсд мдщъощ бчег оочегн, ъдйд мре щвйад щиетръ щдозщб ма олйш аъ дощърд _capacity.
лтъ мбрай. дбрай аоеш мчбм щрй тшлйн, емдфек аъ дтшлйн дамд мълереъ щм даебййчи. рбцт жаъ лк
чег:
public Bucket(double capacity, double currentAmount)
{
_capacity = capacity;
_currentAmount = currentAmount;
{
щйое мб, щщн дбрайн бозмчд осеййоъ
ъойг йдйд ждд мщн дозмчд.
лтъ аре обйрйн огет десфре аъ д_ бъзймъ дощърйн. ан дййре реърйн мълереъ аъ дщоеъ capacity еcurrentAmount, дйд млаешд рецш оцб щм бмбем, щбъек дбрай дозщб айре йегт ан дълеере мощърд capacity щдъчбм лфшиош, ае мълерд capacity. абм вн бочшд жд мозщб йщ фъшеп. ррйз щчшаре мълереъ capacity е currentAmount. бочшд жд, арзре шецйн мвщъ мълереъ щм дощърд дрелзй.
ме жд дйд бълрйъ дшащйъ, едощърд дйд public йлемре фщеи мтщеъ
чег:
buck.capacity = capacity;
елап ма дйд рецш лфм ощотеъ, лй длеерд баву щоам жд мощърд capacity щм buck, ебаву йойп жд ощърд capacity тцоай.
ршцд мтщеъ ощде геод, ак айп мре аъ дщн щм даебййчи дрелзй. в'аеешд бщбйм жд доцйад аъ доймд this. доймд this, жд ощърд, щщеош бъеле аъ даебййчи тмйе огебш. лмеош, дбрай бочшд жд йшад лк:
чег:
public Bucket(double capacity, double currentAmount)
{
this.capacity = capacity;
this.currentAmount = currentAmount;
}
млп десфд щм _ мфрй щн дълерд очм оти тм дтбегд, зех ожд щжедй оеслод очебмъ бтемн огтй дозщб.
лтъ рйвщ мфтемеъ. рбзп фтемд азъ, шеб дщаш геоеъ.
чег:
public void fill(double amountToFill)
{
double possibleAmount = _currentAmount + amountToFill;
_currentAmount = Math.min(_capacity, possibleAmount); // ан айрк щвеш мщйоещ бозмчд бфтемеъ доъоийеъ, аж бочен щешд же бцт аъ ашбт дщешеъ дбаеъ:
if(possibleAmount > _capacity)
_currentAmount = _capacity;
else
_currentAmount = possibleAmount;
}
щйое мб, бщерд оif еfor, вн ан фтемд олймд шч щешд азъ, зебд мщйн щешд же бйп { м- }. ргвйн вн аъ дфтемд toString:
чег:
public String toString()
{
return “The capacity is:” + _capacity + “ and the current amount is: “ + _currentAmount;
}
дозмчд лемд ъшад ан лп лк:
чег:
public class Bucket
{
private double _capacity, _currentAmount;
public Bucket(double capacity, double currentAmount){…}
public void fill(double amountToFill){…}
public double getCapacity(){..}
public double getCurrentAmount(){…}
public void setCapacity(double newCapacity){…}
public void pourInto(Bucket bucketInto) {…}
public String toString() {…}
бочен ... блм фтемд цшйк лоебп мдйеъ дойоещ щмд.
}
ъшвйм
ррйз щбълрйъ дшащйъ лъебеъ дщешеъ:
чег:
Bucket buck1 = new Bucket(3.3, 1.3);
Bucket buck2 = new Bucket(7.5, 6);
buck2.setCapacity(10);
buck1.fill(2);
buck1.pourInto(buck2);
System.out.println(buck1);
System.out.println(buck2);
ъщебд:
The capacity is 3.3 and the current amount is 0
The capacity is 10 and the current amount is 9.3
оимд (мма фъшеп)
бшцерре мбреъ аъ дозмчд Point щъййцв рчегд ботшлъ цйшйн x-y. мрчегд йдйе щрй оафййрйн, щйтеш x ещйтеш y. мрчегд йдйе щйиеъ get е set геоеъ маме щм Bucket: млм ълерд ъдйд щйид get щозжйшд аъ дтшк дрелзй, ещйиъ set щощрд аъ дтшк дрелзй мфшоиш щделрс. аъ дрчегд йдйд рйъп мджйж бойщеш баоцтеъ щйид move щъчбм щрй фшоишйн оощййн, щоййцвйн блод йщ мджйж аъ дрчегд йойрд емотмд (ан дн щмймййн аж жд йдйд щоамд емоид бдъаод). мозмчд ъдйд щйид toString щйзжйш аъ дрчегд бцешд(x,y).
рсе млъеб озмчд же.
ан ъъчще ъелме мбчщ тжшд бреща жд.
рлъб одшащ щмй, дгевоа тм Bucket мчезд одсфш "тйцеб ълрд обесс тцойн бщфъ в'аеед" щм даерйбшсйид дтбшйъ
лм джлейеъ щоешеъ ммешг абйжй, еайп мдтъйч жаъ мма айщеш офешщъ езъйоъ чйсш оагйн.
йен ртйн.