ылайыктуу мисалы (программа) менен, мисалы жана статикалык өзгөрмөлөр ортосунда кандай айырма бар?


жооп 1:

Бардык жакшы мисалдар менен түшүндүрүп берген. Мен менен улантылат:

Мисалы, өзгөрмө бир тобунун ар бир объект (мисалы) менчиги болуп саналат.

Статикалык өзгөрмөлөр бул классынын конкреттүү объектисин класстын өзү жана бир бөлүгү эмес, (мисалы) менчиги болуп саналат.

Салыштырып, контраст:

  1. Статикалык өзгөрмөлөр классты жүктөө учурунда ишке ашырылат. объектилери боюнча мисалы. статикалык өзгөрмөгө класс аркылуу кирүүгө болот. Мисалы, бир өзгөрмө объект түзүлөт керек, ал гана объект аркылуу гана кирүүгө болот. мисал

тилинен синтаксисин тилине ар кандай болушу мүмкүн

class_A жөнүндө :: статикалык өзгөрмө // кирүүгө болот

ObjClass_A = жаңы class_A

ObjClass_A.instanceVariable

3. Static өзгөрмө бир жолу ишке болот. Анда Singleton структурасындагы негизги түшүнүк берди.

4. Статикалык өзгөрмөлөр аларды эс бөлүп сыяктуу абстракттуу класстар үчүн иштей бир бөлүгү боло албайт.



жооп 2:

Мисалы, өзгөрмө бир тобунун ар бир объект (мисалы) менчиги болуп саналат.

Статикалык өзгөрмөлөр бул классынын конкреттүү объектисин класстын өзү жана бир бөлүгү эмес, (мисалы) менчиги болуп саналат.

-

мисалы:

Class кызматкери {жеке статикалык ички EMPLOYEECOUNT = 0; жеке String EmpName; жеке Int EmpID; // конструктор мамлекеттик кызматкерлер (String & Gold, ички Айт) {this.empName = & Gold; this.empId = Айт; EMPLOYEECOUNT ++; } Коомдук кызматкеринин AddEmployee (String & Gold, ички Айт) {жаңы кызматкерлерди кайра (& Gold, Орозо айт); } Коомдук жараксыз deleteEmployee (INT БАА) {Mitarbeiterzahl--; } Коомдук getEmployeeCount () {кайра EMPLOYEECOUNT INT; }}

Бул жөнөкөй мисал EMPLOYEECOUNT кызматкерлердин учурдагы номерин көрсөтүү менен статикалык өзгөрүлмө болуп саналат. кызматкерлеринин жалпы саны гана көбөйөт же бир кызматкерге кошуу же жок болсо, төмөндөгөн.

Алар кызматкер объектилерин тигилет жана ар бир объект боюнча көбүнчө ар түрдүү болуп EmpName жана EmpID, өзгөрмөлөрү бар.

Ошондуктан, ар бир объектилерге таандык өзгөрмөлөр статикалык өзгөрмөлөр болушу керек, болбосо бул мисалы өзгөрүлмө болушу керек.



жооп 3:

Instance өзгөрүлмө класс мүчөсү өзгөрмөнүн менен аныкталат, ал эми ар бир мисалы (бул классынын объект), аны өзүнчө бир копиясы бар. Бул узак объект бар катары эсинде калган.

Class Test {сап ABC; }

Жогоруда мүмкүнчүлүк алуу үчүн, сиз класс тест экземплярын керек

Test т жаңы сыноодон = (); t.abc = "Hello World". Test t1 жаңы сыноодон = (); t1.abc = "Кош" сыноо t2 = жаңы Test (); t2.abc = "сыноо";

Жогоруда мисал болсо, биз тобу тест үч объектилер бар, т, T1 жана T2, мисалы өзгөрүүлөрдүн ар бир ABC өз нускасы жана ар кайсы жерлерге сакталган.

Статикалык бир класс эмес, объект дайындалган каршы чыгышууда. Сиз класс аты айтылып жатат эс туруктуу жайгашкан жери бар.

Class Test {сап ABC; статикалык бүтүн = 0; }

эсептегич өзгөрмө мүмкүнчүлүк алуу үчүн, сиз эмес, экземплярын тест. Бул жонокой эле жетип жатат

Test.count = 1;

Жалпысынан алганда, сиз каалаган учурда статикалык өзгөрмөлөр колдонулат



жооп 4:

Сиз мындан ары маалымат жана берилген кодду үчүн суроолордун ушул сыяктуу адамды Googleдан болот

Instance өзгөрмө - класс ичинде жарыяланган бир өзгөрмөлүү, бирок ыкмасы тышкары бир мисалы өзгөрмөнүн деп аталат. Бул Статиканын деп жарыяланган эмес.

Статикалык өзгөрмөлөр - статикалык өзгөрмөнүн деп бир өзгөрмө статикалык өзгөрүлмө деп аталат. Ал жергиликтүү өз алдынча болушу мүмкүн эмес, ал белгилүү бир объект үчүн эмес, бүтүндөй бир классы үчүн

Test Класс IV {Int = 10; // мисалы өзгөрүлмө статикалык ички SV = 100; // статикалык өзгөрмө жараксыз ыкмасы () {Инт LV = 50; // жергиликтүү өзгөрмө}}

Көбүрөөк маалымат алыш үчүн, Java өзгөрүлмө түрлөрүн көрүү