Academic Tutorials



English | French | Portugese | Dutch | Italian
Google

on-line

Haupt Quellenprogramme E-B�cher Downloads Mit uns in Verbindung treten �ber uns

HTML Tutorials
HTML Tutorial
XHTML Tutorial
CSS Tutorial
TCP/IP Tutorial
CSS 1.0
CSS 2.0
HLML
XML Tutorials
XML Tutorial
XSL Tutorial
XSLT Tutorial
DTD Tutorial
Schema Tutorial
XForms Tutorial
XSL-FO Tutorial
XML DOM Tutorial
XLink Tutorial
XQuery Tutorial
XPath Tutorial
XPointer Tutorial
RDF Tutorial
SOAP Tutorial
WSDL Tutorial
RSS Tutorial
WAP Tutorial
Web Services Tutorial
Browser Scripting
JavaScript Tutorial
VBScript Tutorial
DHTML Tutorial
HTML DOM Tutorial
WMLScript Tutorial
E4X Tutorial
Server Scripting
ASP Tutorial
PERL Tutorial
SQL Tutorial
ADO Tutorial
CVS
Python
Apple Script
PL/SQL Tutorial
SQL Server
PHP
.NET (dotnet)
Microsoft.Net
ASP.Net
.Net Mobile
C# : C Sharp
ADO.NET
VB.NET
VC++
Multimedia
SVG Tutorial
Flash Tutorial
Media Tutorial
SMIL Tutorial
Photoshop Tutorial
Gimp Tutorial
Matlab
Gnuplot Programming
GIF Animation Tutorial
Scientific Visualization Tutorial
Graphics
Web Building
Web Browsers
Web Hosting
W3C Tutorial
Web Building
Web Quality
Web Semantic
Web Careers
Weblogic Tutorial
SEO
Web Site Hosting
Domain Name
Java Tutorials
Java Tutorial
JSP Tutorial
Servlets Tutorial
Struts Tutorial
EJB Tutorial
JMS Tutorial
JMX Tutorial
Eclipse
J2ME
JBOSS
Programming Langauges
C Tutorial
C++ Tutorial
Visual Basic Tutorial
Data Structures Using C
Cobol
Assembly Language
Mainframe
Forth Programming
Lisp Programming
Pascal
Delphi
Fortran
OOPs
Data Warehousing
CGI Programming
Emacs Tutorial
Gnome
ILU
Soft Skills
Communication Skills
Time Management
Project Management
Team Work
Leadership Skills
Corporate Communication
Negotiation Skills
Database Tutorials
Oracle
MySQL
Operating System
BSD
Symbian
Unix
Internet
IP-Masquerading
IPC
MIDI
Software Testing
Testing
Firewalls
SAP Module
ERP
ABAP
Business Warehousing
SAP Basis
Material Management
Sales & Distribution
Human Resource
Netweaver
Customer Relationship Management
Production and Planning
Networking Programming
Corba Tutorial
Networking Tutorial
Microsoft Office
Microsoft Word
Microsoft Outlook
Microsoft PowerPoint
Microsoft Publisher
Microsoft Excel
Microsoft Front Page
Microsoft InfoPath
Microsoft Access
Accounting
Financial Accounting
Managerial Accounting


Java Objects, Classes, and Interfaces


Previous Next





Hier erlernst du, wie man die Gegenst�nde verursacht und zerst�rt, wie man, die die Kategorie und herstellt Unterklasse, Kategorien sind, wie man die Methoden und sogar schreibt, wie man die Schnittstellen verursacht und benutzt. Dieses Kapitel bedeckt alles von, wie man einen Gegenstand vor anderen Gegenst�nden und �berlaufenden Methoden sch�tzt, um die Schablone Kategorien, welche die Auszug Kategorien und die Methoden verwenden und Patriarch der Java Gegenstandhierarchie herzustellen--java.lang. Gegenstandkategorie.




Lebenszyklus des Gegenstandes

ein Gegenstand ist ein Modul, das Zustand und Verhalten hat. Der Zustand eines Gegenstandes wird innerhalb der Mitgliedsvariablen enthalten und das Verhalten wird durch seine Methoden eingef�hrt. Die Java Programme, die du schreibst, verursachen viele unterschiedliche Gegenst�nde durch die Schablone, diese Schablonen bekannt als Kategorien. Die Gegenst�nde verursachten wechselwirkendes mit einander, indem sie Anzeigen sendeten. Resultierend aus messag ist Methode invocated, die etwas T�tigkeit durchf�hrt, oder sie kann den Zustand des Gegenstandes auch �ndern, der die Anzeige empf�ngt. Durch diese kann Interaktion der Gegenst�nde, dein Java Code eine graphische Benutzerschnittstelle einf�hren, Animationen laufen zu lassen oder kann Informationen �ber Netz auch senden und erhalten. Sobald der Gegenstand die Arbeit durchf�hrt, die er f�r verursacht wurde, wird er zerst�rt und alle Betriebsmittel, die ihm zugewiesen werden, werden f�r Gebrauch, durch etwas andere Gegenst�nde aufbereitet.




Verursachen der Kategorien

Eine Kategorie ist eine Schablone, die benutzt werden kann, um viele Gegenst�nde zu verursachen. Die Kategorie Implementierung enth�lt von zwei Bestandteilen: Kategorie Erkl�rung und Kategorie K�rper.

classDeclaration
{
. . .
classBody
. . .
}




Kategorie Erkl�rung

Die Kategorie Erkl�rung, erkl�rt den Namen einer Kategorie zusammen mit einigen anderen Attributen wie superclass der Kategorie und ob die Kategorie Endrunde, �ffentlichkeit oder Auszug ist. Die Kategorie Erkl�rung sollte das Kategorie Schl�sselwort und den Namen der Kategorie enthalten, die du definierst. Folglich sieht die minimale Kategorie Erkl�rung wie dieses aus:

class NameOfClass
{
. . .
}




Kategorie K�rper

Kategorie K�rper folgt der Kategorie Erkl�rung und wird immer innerhalb der lockigen Klammern {und} wie in dem Beispiel gezeigt oben eingebettet. Kategorie K�rper enth�lt Erkl�rungen f�r Variablen, die Mitglieder der Kategorie, Methoden Erkl�rungen und implemenatations der Kategorie sind. Wir besprechen jetzt zwei spezielle Methoden, die du innerhalb eines Kategorie K�rpers erkl�ren kannst: Die Erbauer und beenden () Methode.




Erbauer

Diese sind einige der Richtlinien auf Erbauern:

  • privates verwendetes �privates� der Erbauer () - Schl�sselwort, keine Dose instantiate die Kategorie als Gegenstand. Aber kann allgemeine statische Methoden noch herausstellen, und diese Methoden k�nnen Gegenstand konstruieren und ihn zur�ckbringen, aber niemande k�nnen dies tun.
  • Paketerbauer () - keine von ihnen au�erhalb deines Pakets k�nnen einen Fall aus deiner Kategorie konstruieren. Dieses ist n�tzlich, wenn du Kategorien in deinem Paket haben m�chtest, das neue yourClass tun kann () und nicht lie� jedermann sonst dies tun w�nscht.
  • gesch�tztes Schl�sselwort der Erbauer () - verwendete �gesch�tzt� nur den Unterklassen deiner Kategorie kann dieses Paket gebrauchen.
  • allgemeines verwendet verwendete ��ffentlichkeit� der Erbauer () - Schl�sselwort der generische Erbauer diese.




Erkl�ren der Mitgliedsvariablen

Ein Gegenstand beibeh�lt seinen Zustand durch die Variablen, die innerhalb dieser Kategorie definiert werden. Diese Variablen bekannt als die Mitgliedsvariablen. Beim Erkl�ren der Mitgliedsvariablen f�r die Kategorie, kannst du einen Wirt der unterschiedlichen �Attribute� �ber jene Variablen spezifizieren: sein Name, seine Art, Zugangsberechtigung wies ihm, und so weiter zu.
Mitgliedsvariable Erkl�rung sieht wie dieses aus:

[accessSpecifier] [static] [final] [transient] [volatile] type variableName
The items in the square brackets are optional. The words inside the bracket are to be replaced by names. or keywords.

Die W�rter, die innerhalb des Haltewinkels spezifiziert werden, definiert die folgenden Aspekte von Variablen:

  • accessSpecifier definiert das, dem alle weiteren Kategorien Zugang zur tahat Variable haben
  • Static zeigt an, da� die erkl�rte Variable Kategorie Mitgliedsvariable im Vergleich mit Fallmitgliedsvariablen ist.
  • Endrunde zeigt an, da� die Variable konstant ist.
  • vor�bergehende Variablen sind nicht Teil des hartn�ckigen Zustandes des Gegenstandes.
  • l�schbare Mittel die Variable wird asynchronously ge�ndert.




Schreiben einer Methode

In Java definieren wir Methoden innerhalb des K�rpers einer Kategorie, f�r die er das Verhalten einf�hrt. Wir erkl�ren normalerweise Methoden nach seinen Variablen im Kategorie K�rper, obgleich nicht erfordert. �hnlich der Kategorie Implementierung, besteht eine Methode Implementierung auch aus zwei Teilen: Methode Erkl�rung und Methode K�rper.

methodDeclaration
{
. . .
methodBody
. . .
}




Methode Erkl�rung

Am Minimum hat der Methode Erkl�rungbestandteil eine R�ckholart, die die Datenart des Wertes zur�ckgebracht durch die Methode anzeigt, und Namen der Methode.

returnType methodName()
{
. . .
}

Cosider zum Beispiel, der folgende Code erkl�rt eine einfache Methode, die isEmpty genannt wird () innerhalb der Stapelkategorie, die Booleschen Wert zur�ckbringt (entweder zutreffend oder falsch).

class Stack
{
. . .
boolean isEmpty()
{
. . .
}
}

Die Methode Erkl�rung, die im Beispiel oben gezeigt wird, ist sehr grundlegend. Methoden haben viele andere Attribute wie Zugriffssteuerung, Argumente und so weiter. Dieser Abschnitt umfa�t diese Themen.




Der Methode K�rper

Im Methode K�rper, den alle T�tigkeit einer Methode, der Methode K�rper stattfindet, enth�lt alle zugelassenen Java Anweisungen, der die Methode einf�hrt. Z.B. ist hier eine Stapelkategorie mit der Implementierung f�r isEmpty () Methode.

class Stack
{
static final int STACK_EMPTY = -1;
Object stackelements[];
int topelement = STACK_EMPTY;
. . .
boolean isEmpty()
{
if (topelement == STACK_EMPTY)
return true;
else
return false;
}
}

Innerhalb des Methode K�rpers kannst du Gebrauch tun �dieses�, den gegenw�rtigen Gegenstand zu verweisen.




Was ist Unterklassen, Superclasses und Erbschaft?

Als andere objektorientierte Programmiersprachen in Java, kann eine Kategorie von anderer Kategorie abgeleitet werden. Z.B. dich annehmen hav eine Kategorie, die MouseEvent genannt wird, das den Fall darstellt, wenn Benutzer die Maustaste in der GUI Fensterumgebung bet�tigt. Sp�ter w�hrend sich entwickelnde Anwendung, du feststellen, da� du eine Kategorie ben�tigst, Fall darzustellen wenn Benutzerpresse ein Schl�ssel auf der Tastatur. Du kannst die KeyboardEvent Kategorie vom Kratzer schreiben, aber, da MouseEvent und die KeyboardEvent Kategorien etwas Zust�nde und Verhalten teilen, wie die Maustaste oder Schl�ssel bet�tigt wurden, die Zeit, da� der Fall und so weiter wir kann f�r das Kopieren der MouseEvent Kategorie anstatt re-inventing das Rad gehen auftrat, kannst du Nutzen aus Subclassing und Erbschaft. .and ziehen, also verursachst du einen Kategorie Fall, von dem MouseEvent und KeyboardEvent sein k�nnen ableiten

Fall ist jetzt superclass MouseEvent und KeyboardEvent der Kategorien. MouseEvent und KeyboardEvent werden jetzt Unterklassen des Kategorie Falls genannt. Fall enth�lt alle Zust�nde und Verhalten, die f�r M�usef�lle und Tastaturf�lle allgemein sind. Unterklassen, MouseEvent und KeyboardEvent, �bernehmen den Zustand und das Verhalten von den superclass. Zum Beispiel betrachten, MouseEvent und KeyboardEvent beide �bernimmt das Zeitstempelattribut vom Superkategorie Fall.




Wie man eine Unterklasse herstellt

Du erkl�rst, da� eine Kategorie Unterklasse einer anderen Kategorie in der Kategorie Erkl�rung ist. Annehmen, da� du eine Unterklasse herstellen wolltest, die �ImaginaryNumber� der �Zahlkategorie� genannt wurde. (wo die Zahlkategorie ein Teil des java.lang Pakets ist und niedrige Kategorie f�r Hin- und Herbewegungen, Ganzzahlen und andere Zahlen. ist). Du kannst jetzt schreiben:

class ImaginaryNumber extends Number
{
. . .
}

Diese Linie erkl�rt ImaginaryNumber als Unterklasse der Zahlkategorie




Eine abschlie�ende Kategorie schreiben

Java erlaubt uns, unsere Kategorie als Endrunde zu erkl�ren; das hei�t, kann die Kategorie, die als Endrunde erkl�rt wird, nicht sein subclassed. Es gibt zwei Gr�nde, warum man dies tun m�chte: Sicherheit und Designzweck.

  • Sicherheit: Um Systeme umzust�rzen, verwenden einer der Einheit H�cker ist, herstellt Unterklassen einer Kategorie und ersetzt ihre Kategorie f�r die Vorlage. Die Unterklasse schaut selben wie die urspr�ngliche Kategorie, aber sie f�hrt die in betr�chtlichem Ausma� unterschiedlichen Sachen durch, verursacht Besch�digung oder vielleicht erh�lt in private Informationen. Um diese Subversion zu verhindern, solltest du deine Kategorie als Endrunde erkl�ren und irgendwelche der Unterklassen an verursacht werden verhindern.
  • Design: Ein anderer Grund wir, eine Kategorie als Endrunde zu erkl�ren ist objektorientierter Designgrund. Wenn wir glauben, da� unsere Kategorie �ist, vervollkommnen� und nicht Unterklassen weiter haben sollte. Wir k�nnen unsere Kategorie als Endrunde erkl�ren.

Um zu spezifizieren da� die Kategorie eine abschlie�ende Kategorie ist, sollten wir das Schl�sselwort �Endrunde� vor dem Kategorie Schl�sselwort in der Kategorie Erkl�rung verwenden. Wenn wir die ImaginaryNumber Kategorie als abschlie�ende calss erkl�ren m�chten, sollte seine Erkl�rung wie dieses aussehen:

final class ImaginaryNumber extends Number implements Arithmetic
{
. . .
}

Wenn folgende Versuche zur Unterklasse ImaginaryNumber gebildet werden, ergibt sie eine Compilerst�rung als das folgende:

Imagine.java:6: Can't subclass final classes: class ImaginaryNumber
class MyImaginaryNumber extends ImaginaryNumber {
         ^
1 error




Eine abschlie�ende Methode verursachen

Wenn scheint das Verursachen der abschlie�enden Kategorie f�r deine Notwendigkeiten schwer, und du m�chtest gerade einige der Kategorien, welche die Methoden, die sind, overriden, dich sch�tzen kannst abschlie�endes Schl�sselwort in der Methode Erkl�rung verwenden, um den Compiler anzuzeigen, da� die Methode nicht durch Unterklassen �berlaufen werden kann.




Schreiben der abstrakten Kategorien

Manchmal kannst du, abstrakte Konzepte nur modellieren w�nschen aber m�chtest nicht einen Fall der Kategorie verursachen. Wie der Zahlkategorie im java.lang Paket fr�h besprochen stellt nur das abstrakte Konzept von Zahlen dar. Wir Dose Modellnummer in einem Programm, aber es sind kein sinnvoll, einen generischen Zahlgegenstand zu verursachen. Stattdessen benimmt sich die Zahlkategorie als superclass Ganzzahl und Hin- und Herbewegung zu den Kategorien, die spezifischen Kasten der Werkzeuge von Zahlen tun. Kategorien m�gen Zahl, die einf�hrt nur die abstrakten Konzepte und sollte nicht folglich sein instantiated, werden benannt abstrakte Kategorien.
Eine abstrakte Kategorie ist eine Kategorie, die nur sein kann subclassed und kann nicht sein instantiated.

Um die Kategorie als abstrakte Kategorie zu erkl�ren verwenden wir das Schl�sselwort �Auszug� vor der Schl�sselwortkategorie in der Kategorie Erkl�rung:

abstract class Number
{
. . .
}

If any attempt is made to instantiate an abstract class, compiler will displays error as shown below and refuses to compile the program:

AbstractTest.java:6: class AbstractTest is an abstract class.
It can't be instantiated.
new AbstractTest();
^
1 error




Schreiben der abstrakten Methoden

Eine abstrakte Kategorie kann abstrakte Methoden enthalten, abstrakte Methoden sind die Methoden, ohne Implementierung. Folglich kann eine abstrakte Kategorie ganze programmierenschnittstelle definieren seine und seine Unterklassen die Methode Erkl�rungen f�r alle Methoden folglich zur Verf�gung stellen, die notwendig sind, um die programmierenschnittstelle einzuf�hren. Jedoch kann eine abstrakte Kategorie Implementierung Details der Methoden die Unterklassen �berlassen.

Du w�rdest eine abstrakte Kategorie, GraphicObject erkl�ren, das die Mitgliedsvariablen und die Methoden liefert, die durch alle Unterklassen geteilt werden. GraphicObject kann abstrakte Methoden f�r die Methoden, wie abgehobenen Betrag (), der durch die Unterklassen eingef�hrt werden mu�, aber in den v�llig unterschiedlichen Weisen auch erkl�ren. Die GraphicObject Kategorie w�rde wie dieses aussehen:

abstract class GraphicObject
{
int x, y;
. . .
void moveTo(int newX, int newY)
{
. . .
}
abstract void draw();
}

An abstract class is not have an abstract method in it. But any of the class that do have an abstract method in it or in any of the superclasses should be declared as an abstract class. Each non-abstract subclass of GraphicObject, such as Circle and Rectangle, shoul provide an implementation for the draw() method.

class Circle extends GraphicObject
{
void draw()
{
. . .
}
}
class Rectangle extends GraphicObject
{
void draw()
{
. . .
}
}




Wie man Schnittstellen verursacht und benutzt

Schnittstellen liefert eine Einheit, um hierarchisch ohne Bezugkategorien zu erlauben einf�hren den gleichen Satz Methoden. Eine Schnittstelle ist die Ansammlung von Methode Definitionen und von Konstante Werten, die von der Abh�ngigkeit auf einer spezifischen Kategorie oder einer Kategorie Hierarchie frei ist. Schnittstellen sind zum folgenden Zweck n�tzlich:

  • Methoden erkl�rend, die eines oder mehrer als eine klassifiziert, werden erwartet einzuf�hren
  • die programmierenschnittstelle des Gegenstandes aufdecken, ohne seine Kategorie aufzudecken (Gegenst�nde wie diese benannte anonyme Gegenst�nde und sind n�tzlich, beim Versenden eines Pakets der Kategorien zu den anderen Entwicklern)
  • die �hnlichkeiten zwischen ohne Bezugkategorien gefangennehmen, ohne das Kategorie Verh�ltnis zu zwingen



Eine Schnittstelle verursachen

Eine Schnittstelle zu verursachen ist dem des Verursachens einer neuen Kategorie �hnlich. Eine Schnittstellendefinition besteht aus zwei Bestandteilen: Schnittstelle Erkl�rung und Schnittstelle K�rper.

interfaceDeclaration
{
interfaceBody
}

The interfaceDeclaration declares various attributes about the interface such as its name and whether it extends another interface. The interfaceBody contains the constant and method declarations within the interface.




Eine Schnittstelle benutzen

Eine Schnittstelle wird benutzt, wenn die Kategorie behauptet, diese Schnittstelle einzuf�hren. Eine Kategorie erkl�rt alle Schnittstellen, die in der Kategorie Erkl�rung eingef�hrt werden. Um zu erkl�ren da� die Kategorie eine oder mehrer Schnittstellen einf�hrt, das Schl�sselwort �die Werkzeuge� gebrauchen, die von Komma-abgegrenzter Liste der Schnittstellen gefolgt werden, die durch die Kategorie eingef�hrt werden.

Annehmen, da� wir eine Kategorie schreiben, die eine Fifo Warteschlange einf�hrt. Da die Fifo Warteschlange Kategorie eine Ansammlung Gegenst�nde (ein Gegenstand, die andere Gegenst�nde enth�lt), es doesnot ist, jedes m�gliches sinnvoll sein, das z�hlbare einzuf�hren anschlie�en. Die FIFOQueue Kategorie w�rde erkl�ren, da� sie Werkzeuge die z�hlbare Schnittstelle wie gezeigt unten tut:

class FIFOQueue implements Countable
{
. . .
}

And thereby guaranteeing that it provides implemenations for currentCount(), incrementCount(),setCount(), and decrementCount() methods.





Previous Next

Keywords: java download, java games, javascript, sun java, download microsoft java virtual machine, sun java free download, java chat rooms, java update, yahoo java messenger, java certification


HTML Quizes
HTML Quiz
XHTML Quiz
CSS Quiz
TCP/IP Quiz
CSS 1.0 Quiz
CSS 2.0 Quiz
HLML Quiz
XML Quizes
XML Quiz
XSL Quiz
XSLT Quiz
DTD Quiz
Schema Quiz
XForms Quiz
XSL-FO Quiz
XML DOM Quiz
XLink Quiz
XQuery Quiz
XPath Quiz
XPointer Quiz
RDF Quiz
SOAP Quiz
WSDL Quiz
RSS Quiz
WAP Quiz
Web Services Quiz
Browser Scripting Quizes
JavaScript Quiz
VBScript Quiz
DHTML Quiz
HTML DOM Quiz
WMLScript Quiz
E4X Quiz
Server Scripting Quizes
ASP Quiz
PERL Quiz
SQL Quiz
ADO Quiz
CVS Quiz
Python Quiz
Apple Script Quiz
PL/SQL Quiz
SQL Server Quiz
PHP Quiz
.NET (dotnet) Quizes
Microsoft.Net Quiz
ASP.Net Quiz
.Net Mobile Quiz
C# : C Sharp Quiz
ADO.NET Quiz
VB.NET Quiz
VC++ Quiz
Multimedia Quizes
SVG Quiz
Flash Quiz
Media Quiz
SMIL Quiz
Photoshop Quiz
Gimp Quiz
Matlab Quiz
Gnuplot Programming Quiz
GIF Animation Quiz
Scientific Visualization Quiz
Graphics Quiz
Web Building  Quizes
Web Browsers Quiz
Web Hosting Quiz
W3C Quiz
Web Building Quiz
Web Quality Quiz
Web Semantic Quiz
Web Careers Quiz
Weblogic Quiz
SEO Quiz
Web Site Hosting Quiz
Domain Name Quiz
Java Quizes
Java Quiz
JSP Quiz
Servlets Quiz
Struts Quiz
EJB Quiz
JMS Quiz
JMX Quiz
Eclipse Quiz
J2ME Quiz
JBOSS Quiz
Programming Langauges Quizes
C Quiz
C++ Quiz
Visual Basic Quiz
Data Structures Using C Quiz
Cobol Quiz
Assembly Language Quiz
Mainframe Quiz
Forth Programming Quiz
Lisp Programming Quiz
Pascal Quiz
Delphi Quiz
Fortran Quiz
OOPs Quiz
Data Warehousing Quiz
CGI Programming Quiz
Emacs Quiz
Gnome Quiz
ILU Quiz
Soft Skills Quizes
Communication Skills Quiz
Time Management Quiz
Project Management Quiz
Team Work Quiz
Leadership Skills Quiz
Corporate Communication Quiz
Negotiation Skills Quiz
Database Quizes
Oracle Quiz
MySQL Quiz
Operating System Quizes
BSD Quiz
Symbian Quiz
Unix Quiz
Internet Quiz
IP-Masquerading Quiz
IPC Quiz
MIDI Quiz
Software Testing Quizes
Testing Quiz
Firewalls Quiz
SAP Module Quizes
ERP Quiz
ABAP Quiz
Business Warehousing Quiz
SAP Basis Quiz
Material Management Quiz
Sales & Distribution Quiz
Human Resource Quiz
Netweaver Quiz
Customer Relationship Management Quiz
Production and Planning Quiz
Networking Programming Quizes
Corba Quiz
Networking Quiz
Microsoft Office Quizes
Microsoft Word Quiz
Microsoft Outlook Quiz
Microsoft PowerPoint Quiz
Microsoft Publisher Quiz
Microsoft Excel Quiz
Microsoft Front Page Quiz
Microsoft InfoPath Quiz
Microsoft Access Quiz
Accounting Quizes
Financial Accounting Quiz
Managerial Accounting Quiz

Privacy Policy
Copyright � 2003-2024 Vyom Technosoft Pvt. Ltd., All Rights Reserved.