జావా అనేది ఆబ్జెక్ట్-ఓరియెంటెడ్ లాంగ్వేజ్. ఆబ్జెక్ట్-ఓరియెంటెడ్ ఫీచర్ని కలిగి ఉన్న భాషగా, జావా కింది ప్రాథమిక భావనలకు మద్దతు ఇస్తుంది -
- బహురూపత
- వారసత్వం
- ఎన్కప్సులేషన్
- సంగ్రహణ
- తరగతులు
- వస్తువులు
- ఉదాహరణ
- పద్ధతి
- సందేశం పంపడం
ఈ అధ్యాయంలో, మేము భావనలను పరిశీలిస్తాము - తరగతులు మరియు వస్తువులు.
వస్తువు - వస్తువులు రాష్ట్రాలు మరియు ప్రవర్తనలను కలిగి ఉంటాయి. ఉదాహరణ: కుక్కకు రాష్ట్రాలు ఉన్నాయి - రంగు, పేరు, జాతి అలాగే ప్రవర్తనలు - తోక ఊపడం, మొరిగేటట్లు, తినడం. వస్తువు అనేది తరగతికి ఉదాహరణ.
క్లాస్ - ఒక తరగతిని టెంప్లేట్/బ్లూప్రింట్గా నిర్వచించవచ్చు, ఇది ప్రవర్తన/స్టేట్ దాని రకం మద్దతుని వివరిస్తుంది.
జావాలో వస్తువులు
వస్తువులు అంటే ఏమిటో ఇప్పుడు లోతుగా పరిశీలిద్దాం. మనం వాస్తవ ప్రపంచాన్ని పరిశీలిస్తే, మన చుట్టూ ఉన్న అనేక వస్తువులు, కార్లు, కుక్కలు, మానవులు మొదలైన వాటిని కనుగొనవచ్చు. ఈ వస్తువులన్నింటికీ ఒక స్థితి మరియు ప్రవర్తన ఉంటుంది.
మనం కుక్కను పరిగణనలోకి తీసుకుంటే, దాని స్థితి - పేరు, జాతి, రంగు మరియు ప్రవర్తన - మొరిగేది, తోక ఊపడం, పరిగెత్తడం.
మీరు సాఫ్ట్వేర్ ఆబ్జెక్ట్ను వాస్తవ-ప్రపంచ వస్తువుతో పోల్చినట్లయితే, అవి చాలా సారూప్య లక్షణాలను కలిగి ఉంటాయి.
సాఫ్ట్వేర్ వస్తువులు కూడా ఒక స్థితి మరియు ప్రవర్తనను కలిగి ఉంటాయి. సాఫ్ట్వేర్ ఆబ్జెక్ట్ యొక్క స్థితి ఫీల్డ్లలో నిల్వ చేయబడుతుంది మరియు ప్రవర్తన పద్ధతుల ద్వారా చూపబడుతుంది.
కాబట్టి సాఫ్ట్వేర్ అభివృద్ధిలో, పద్ధతులు ఒక వస్తువు యొక్క అంతర్గత స్థితిపై పనిచేస్తాయి మరియు ఆబ్జెక్ట్-టు-ఆబ్జెక్ట్ కమ్యూనికేషన్ పద్ధతుల ద్వారా జరుగుతుంది.
జావాలో తరగతులు
తరగతి అనేది వ్యక్తిగత వస్తువులు సృష్టించబడిన బ్లూప్రింట్.
క్రింది తరగతి యొక్క నమూనా.
ఉదాహరణ
public class Dog {
String breed;
int age;
String color;
void barking() {
}
void hungry() {
}
void sleeping() {
}
}
ఒక తరగతి కింది వేరియబుల్ రకాల్లో దేనినైనా కలిగి ఉండవచ్చు.
స్థానిక వేరియబుల్స్ - పద్ధతులు, కన్స్ట్రక్టర్లు లేదా బ్లాక్ల లోపల నిర్వచించబడిన వేరియబుల్స్ని లోకల్ వేరియబుల్స్ అంటారు. పద్ధతిలో వేరియబుల్ ప్రకటించబడుతుంది మరియు ప్రారంభించబడుతుంది మరియు పద్ధతి పూర్తయినప్పుడు వేరియబుల్ నాశనం చేయబడుతుంది.
ఇన్స్టాన్స్ వేరియబుల్స్ - ఇన్స్టాన్స్ వేరియబుల్స్ అనేది క్లాస్లోని వేరియబుల్స్, కానీ ఏదైనా పద్ధతికి వెలుపల. తరగతి తక్షణం ఉన్నప్పుడు ఈ వేరియబుల్స్ ప్రారంభించబడతాయి. ఏదైనా పద్ధతి, కన్స్ట్రక్టర్ లేదా నిర్దిష్ట తరగతిలోని బ్లాక్ల లోపల నుండి ఇన్స్టాన్స్ వేరియబుల్స్ యాక్సెస్ చేయబడతాయి.
క్లాస్ వేరియబుల్స్ - క్లాస్ వేరియబుల్స్ అనేది క్లాస్ లోపల, ఏదైనా పద్ధతి వెలుపల, స్టాటిక్ కీవర్డ్తో డిక్లేర్ చేయబడిన వేరియబుల్స్.
ఒక తరగతి వివిధ రకాల పద్ధతుల విలువను యాక్సెస్ చేయడానికి ఎన్ని పద్ధతులను కలిగి ఉండవచ్చు. పై ఉదాహరణలో, మొరిగే(), ఆకలి() మరియు స్లీపింగ్() అనేవి పద్ధతులు.
జావా భాష యొక్క తరగతులను పరిశీలిస్తున్నప్పుడు చర్చించవలసిన కొన్ని ముఖ్యమైన అంశాలు క్రిందివి.
కన్స్ట్రక్టర్లు
తరగతుల గురించి చర్చిస్తున్నప్పుడు, అత్యంత ముఖ్యమైన సబ్ టాపిక్లలో ఒకటి కన్స్ట్రక్టర్లు. ప్రతి తరగతికి ఒక కన్స్ట్రక్టర్ ఉంటారు. మేము క్లాస్ కోసం కన్స్ట్రక్టర్ని స్పష్టంగా వ్రాయకపోతే, జావా కంపైలర్ ఆ క్లాస్ కోసం డిఫాల్ట్ కన్స్ట్రక్టర్ను నిర్మిస్తుంది.
ఒక కొత్త వస్తువు సృష్టించబడిన ప్రతిసారీ, కనీసం ఒక కన్స్ట్రక్టర్ని అమలు చేస్తారు. కన్స్ట్రక్టర్ల యొక్క ప్రధాన నియమం ఏమిటంటే వారు తరగతికి సమానమైన పేరును కలిగి ఉండాలి. ఒక తరగతిలో ఒకటి కంటే ఎక్కువ కన్స్ట్రక్టర్లు ఉండవచ్చు.
కన్స్ట్రక్టర్ − యొక్క ఉదాహరణ క్రిందిది
ఉదాహరణ
public class Puppy {
public Puppy() {
}
public Puppy(String name) {
// This constructor has one parameter, name.
}
}
జావా సింగిల్టన్ క్లాస్లకు కూడా మద్దతు ఇస్తుంది , ఇక్కడ మీరు ఒక తరగతికి సంబంధించిన ఒక ఉదాహరణను మాత్రమే సృష్టించగలరు.
గమనిక - మాకు రెండు విభిన్న రకాల కన్స్ట్రక్టర్లు ఉన్నాయి. మేము తదుపరి అధ్యాయాలలో నిర్మాణకర్తల గురించి వివరంగా చర్చించబోతున్నాము.
ఒక వస్తువును సృష్టిస్తోంది
గతంలో చెప్పినట్లుగా, ఒక తరగతి వస్తువులకు బ్లూప్రింట్లను అందిస్తుంది. కాబట్టి ప్రాథమికంగా, ఒక వస్తువు తరగతి నుండి సృష్టించబడుతుంది. జావాలో, కొత్త వస్తువులను సృష్టించడానికి కొత్త కీవర్డ్ ఉపయోగించబడుతుంది.
తరగతి నుండి వస్తువును సృష్టించేటప్పుడు మూడు దశలు ఉన్నాయి -
డిక్లరేషన్ - ఆబ్జెక్ట్ రకంతో వేరియబుల్ పేరుతో వేరియబుల్ డిక్లరేషన్.
తక్షణం - వస్తువును సృష్టించడానికి 'కొత్త' కీవర్డ్ ఉపయోగించబడుతుంది.
ప్రారంభించడం - 'కొత్త' కీవర్డ్ తర్వాత కన్స్ట్రక్టర్కి కాల్ వస్తుంది. ఈ కాల్ కొత్త వస్తువును ప్రారంభిస్తుంది.
ఆబ్జెక్ట్ −ని సృష్టించడానికి క్రింది ఉదాహరణ
ఉదాహరణ
public class Puppy {
public Puppy(String name) {
// This constructor has one parameter, name.
System.out.println("Passed Name is :" + name );
}
public static void main(String []args) {
// Following statement would create an object myPuppy
Puppy myPuppy = new Puppy( "tommy" );
}
}
పై ప్రోగ్రామ్ను కంపైల్ చేసి రన్ చేస్తే, అది క్రింది ఫలితాన్ని ఉత్పత్తి చేస్తుంది -
అవుట్పుట్
Passed Name is :tommy
ఇన్స్టాన్స్ వేరియబుల్స్ మరియు మెథడ్స్ యాక్సెస్ చేయడం
ఉదాహరణ వేరియబుల్స్ మరియు పద్ధతులు సృష్టించబడిన వస్తువుల ద్వారా యాక్సెస్ చేయబడతాయి. ఇన్స్టాన్స్ వేరియబుల్ని యాక్సెస్ చేయడానికి, కిందిది పూర్తి అర్హత కలిగిన మార్గం -
/* First create an object */
ObjectReference = new Constructor();
/* Now call a variable as follows */
ObjectReference.variableName;
/* Now you can call a class method as follows */
ObjectReference.MethodName();
ఉదాహరణ
ఉదాహరణ వేరియబుల్స్ మరియు క్లాస్ యొక్క పద్ధతులను ఎలా యాక్సెస్ చేయాలో ఈ ఉదాహరణ వివరిస్తుంది.
public class Puppy {
int puppyAge;
public Puppy(String name) {
// This constructor has one parameter, name.
System.out.println("Name chosen is :" + name );
}
public void setAge( int age ) {
puppyAge = age;
}
public int getAge( ) {
System.out.println("Puppy's age is :" + puppyAge );
return puppyAge;
}
public static void main(String []args) {
/* Object creation */
Puppy myPuppy = new Puppy( "tommy" );
/* Call class method to set puppy's age */
myPuppy.setAge( 2 );
/* Call another class method to get puppy's age */
myPuppy.getAge( );
/* You can access instance variable as follows as well */
System.out.println("Variable Value :" + myPuppy.puppyAge );
}
}
పై ప్రోగ్రామ్ను కంపైల్ చేసి రన్ చేస్తే, అది క్రింది ఫలితాన్ని ఉత్పత్తి చేస్తుంది -
అవుట్పుట్
Name chosen is :tommy
Puppy's age is :2
Variable Value :2
సోర్స్ ఫైల్ డిక్లరేషన్ నియమాలు
ఈ విభాగం యొక్క చివరి భాగం వలె, ఇప్పుడు సోర్స్ ఫైల్ డిక్లరేషన్ నియమాలను పరిశీలిద్దాం. సోర్స్ ఫైల్లో తరగతులు, దిగుమతి స్టేట్మెంట్లు మరియు ప్యాకేజీ స్టేట్మెంట్లను ప్రకటించేటప్పుడు ఈ నియమాలు అవసరం .
ఒక్కో సోర్స్ ఫైల్కు ఒక పబ్లిక్ క్లాస్ మాత్రమే ఉంటుంది.
సోర్స్ ఫైల్ బహుళ పబ్లిక్ కాని తరగతులను కలిగి ఉంటుంది.
పబ్లిక్ క్లాస్ పేరు సోర్స్ ఫైల్ పేరు అయి ఉండాలి అలాగే చివరన .java తో జతచేయాలి . ఉదాహరణకు: తరగతి పేరు పబ్లిక్ క్లాస్ ఎంప్లాయీ{} అప్పుడు సోర్స్ ఫైల్ Employee.javaగా ఉండాలి.
ప్యాకేజీ లోపల క్లాస్ నిర్వచించబడితే, ప్యాకేజీ స్టేట్మెంట్ సోర్స్ ఫైల్లో మొదటి స్టేట్మెంట్ అయి ఉండాలి.
దిగుమతి స్టేట్మెంట్లు ఉన్నట్లయితే, అవి తప్పనిసరిగా ప్యాకేజీ స్టేట్మెంట్ మరియు క్లాస్ డిక్లరేషన్ మధ్య వ్రాయబడాలి. ప్యాకేజీ స్టేట్మెంట్లు లేకుంటే, సోర్స్ ఫైల్లో దిగుమతి స్టేట్మెంట్ మొదటి పంక్తిగా ఉండాలి.
దిగుమతి మరియు ప్యాకేజీ స్టేట్మెంట్లు సోర్స్ ఫైల్లో ఉన్న అన్ని తరగతులను సూచిస్తాయి. సోర్స్ ఫైల్లోని వివిధ తరగతులకు వేర్వేరు దిగుమతి మరియు/లేదా ప్యాకేజీ స్టేట్మెంట్లను ప్రకటించడం సాధ్యం కాదు.
తరగతులు అనేక యాక్సెస్ స్థాయిలను కలిగి ఉంటాయి మరియు వివిధ రకాల తరగతులు ఉన్నాయి; వియుక్త తరగతులు, చివరి తరగతులు మొదలైనవి. మేము యాక్సెస్ మాడిఫైయర్స్ అధ్యాయంలో వీటన్నింటి గురించి వివరిస్తాము.
పైన పేర్కొన్న తరగతుల రకాలే కాకుండా, జావాలో ఇన్నర్ తరగతులు మరియు అనామక తరగతులు అనే కొన్ని ప్రత్యేక తరగతులు కూడా ఉన్నాయి.
జావా ప్యాకేజీ
సాధారణ మాటలలో, ఇది తరగతులు మరియు ఇంటర్ఫేస్లను వర్గీకరించే మార్గం. జావాలో అప్లికేషన్లను అభివృద్ధి చేస్తున్నప్పుడు, వందలాది తరగతులు మరియు ఇంటర్ఫేస్లు వ్రాయబడతాయి, కాబట్టి ఈ తరగతులను వర్గీకరించడం తప్పనిసరి అలాగే జీవితాన్ని సులభతరం చేస్తుంది.
ప్రకటనలను దిగుమతి చేయండి
జావాలో ప్యాకేజీ మరియు తరగతి పేరును కలిగి ఉన్న పూర్తి అర్హత కలిగిన పేరు ఇవ్వబడితే, కంపైలర్ సోర్స్ కోడ్ లేదా తరగతులను సులభంగా గుర్తించగలదు. దిగుమతి స్టేట్మెంట్ అనేది కంపైలర్ నిర్దిష్ట తరగతిని కనుగొనడానికి సరైన స్థానాన్ని అందించే మార్గం.
ఉదాహరణకు, కింది లైన్ java_installation/java/io - డైరెక్టరీలో అందుబాటులో ఉన్న అన్ని తరగతులను లోడ్ చేయమని కంపైలర్ను అడుగుతుంది.
import java.io.*;
ఒక సాధారణ కేస్ స్టడీ
మా కేస్ స్టడీ కోసం, మేము రెండు తరగతులను సృష్టిస్తాము. అవి ఎంప్లాయీ మరియు ఎంప్లాయీ టెస్ట్.
ముందుగా నోట్ప్యాడ్ని తెరిచి, కింది కోడ్ను జోడించండి. ఇది ఉద్యోగుల తరగతి మరియు తరగతి పబ్లిక్ క్లాస్ అని గుర్తుంచుకోండి. ఇప్పుడు, ఈ సోర్స్ ఫైల్ని Employee.java పేరుతో సేవ్ చేయండి.
ఉద్యోగి తరగతికి నాలుగు ఉదాహరణ వేరియబుల్స్ ఉన్నాయి - పేరు, వయస్సు, హోదా మరియు జీతం. తరగతికి స్పష్టంగా నిర్వచించబడిన కన్స్ట్రక్టర్ ఒకటి ఉంది, ఇది పారామీటర్ను తీసుకుంటుంది.
ఉదాహరణ
import java.io.*;
public class Employee {
String name;
int age;
String designation;
double salary;
// This is the constructor of the class Employee
public Employee(String name) {
this.name = name;
}
// Assign the age of the Employee to the variable age.
public void empAge(int empAge) {
age = empAge;
}
/* Assign the designation to the variable designation.*/
public void empDesignation(String empDesig) {
designation = empDesig;
}
/* Assign the salary to the variable salary.*/
public void empSalary(double empSalary) {
salary = empSalary;
}
/* Print the Employee details */
public void printEmployee() {
System.out.println("Name:"+ name );
System.out.println("Age:" + age );
System.out.println("Designation:" + designation );
System.out.println("Salary:" + salary);
}
}
ఈ ట్యుటోరియల్లో గతంలో చెప్పినట్లుగా, ప్రాసెసింగ్ ప్రధాన పద్ధతి నుండి ప్రారంభమవుతుంది. కాబట్టి, మేము ఈ ఉద్యోగి తరగతిని అమలు చేయడానికి ఒక ప్రధాన పద్ధతి ఉండాలి మరియు వస్తువులు సృష్టించబడాలి. మేము ఈ పనుల కోసం ప్రత్యేక తరగతిని సృష్టిస్తాము.
కిందిది EmployeeTest క్లాస్, ఇది క్లాస్ ఎంప్లాయీ యొక్క రెండు సందర్భాలను సృష్టిస్తుంది మరియు ప్రతి వేరియబుల్కు విలువలను కేటాయించడానికి ప్రతి వస్తువు కోసం పద్ధతులను అమలు చేస్తుంది.
కింది కోడ్ని EmployeeTest.java ఫైల్లో సేవ్ చేయండి.
import java.io.*;
public class EmployeeTest {
public static void main(String args[]) {
/* Create two objects using constructor */
Employee empOne = new Employee("James Smith");
Employee empTwo = new Employee("Mary Anne");
// Invoking methods for each object created
empOne.empAge(26);
empOne.empDesignation("Senior Software Engineer");
empOne.empSalary(1000);
empOne.printEmployee();
empTwo.empAge(21);
empTwo.empDesignation("Software Engineer");
empTwo.empSalary(500);
empTwo.printEmployee();
}
}
ఇప్పుడు, రెండు తరగతులను కంపైల్ చేసి, ఫలితాన్ని క్రింది విధంగా చూడటానికి EmployeeTestని అమలు చేయండి -
అవుట్పుట్
C:\> javac Employee.java
C:\> javac EmployeeTest.java
C:\> java EmployeeTest
Name:James Smith
Age:26
Designation:Senior Software Engineer
Salary:1000.0
Name:Mary Anne
Age:21
Designation:Software Engineer
Salary:500.0
తరువాత ఏమిటి?
తదుపరి సెషన్లో, మేము జావాలోని ప్రాథమిక డేటా రకాలను మరియు జావా అప్లికేషన్లను అభివృద్ధి చేసేటప్పుడు వాటిని ఎలా ఉపయోగించవచ్చో చర్చిస్తాము.
జావాలో, ఆబ్జెక్ట్ అనేది తరగతికి ఉదాహరణ. తరగతి అనేది ఆ వస్తువుల లక్షణాలు మరియు ప్రవర్తనలను నిర్వచించే వస్తువులను రూపొందించడానికి ఒక టెంప్లేట్ లేదా బ్లూప్రింట్. క్లాసులు డేటా మరియు ఫంక్షనాలిటీని ఒకే యూనిట్లో చేర్చడానికి ఒక మార్గాన్ని అందిస్తాయి, సంక్లిష్ట కోడ్ను నిర్వహించడం మరియు పునర్వినియోగ సాఫ్ట్వేర్ భాగాలను రూపొందించడం సులభతరం చేస్తుంది.
జావాలోని వస్తువులు మరియు తరగతులకు సంబంధించిన కొన్ని కీలక అంశాలు ఇక్కడ ఉన్నాయి:
- తరగతిని నిర్వచించడం: జావాలో తరగతిని నిర్వచించడానికి, మీరు
class
తరగతి పేరును అనుసరించే కీవర్డ్ని ఉపయోగిస్తారు. ఉదాహరణకి:
జావాpublic class MyClass {
// class code goes here
}
ఈ ఉదాహరణలో, MyClass
తరగతి నిర్వచించబడింది.
- ఆబ్జెక్ట్ను సృష్టించడం: జావాలో ఆబ్జెక్ట్ను సృష్టించడానికి, మీరు
new
క్లాస్ పేరు మరియు క్లాస్ కన్స్ట్రక్టర్కు అవసరమైన ఏవైనా ఆర్గ్యుమెంట్లతో పాటుగా కీవర్డ్ని ఉపయోగిస్తారు. ఉదాహరణకి:
జావాMyClass myObject = new MyClass();
ఈ ఉదాహరణలో, MyClass
తరగతి యొక్క కొత్త ఉదాహరణ సృష్టించబడుతుంది మరియు myObject
వేరియబుల్లో నిల్వ చేయబడుతుంది.
- క్లాస్ కన్స్ట్రక్టర్లు: కన్స్ట్రక్టర్ అనేది ఒక వస్తువు సృష్టించబడినప్పుడు పిలువబడే ఒక ప్రత్యేక పద్ధతి. ఆబ్జెక్ట్ యొక్క స్థితిని ప్రారంభించేందుకు కన్స్ట్రక్టర్లు ఉపయోగించబడతారు మరియు సాధారణ పద్ధతుల వలె వాదనలను తీసుకోవచ్చు. ఒక క్లాస్ కన్స్ట్రక్టర్ను నిర్వచించకపోతే, జావా ఎటువంటి వాదనలు తీసుకోని డిఫాల్ట్ కన్స్ట్రక్టర్ను అందిస్తుంది. ఉదాహరణకి:
జావాpublic class MyClass {
public MyClass() {
// constructor code goes here
}
}
ఈ ఉదాహరణలో, MyClass
క్లాస్ ఎటువంటి వాదనలు తీసుకోని కన్స్ట్రక్టర్ని నిర్వచిస్తుంది.
- క్లాస్ ఫీల్డ్లు మరియు పద్ధతులు: ఫీల్డ్లు అనేది క్లాస్తో అనుబంధించబడిన వేరియబుల్స్, అయితే పద్ధతులు క్లాస్తో అనుబంధించబడిన ఫంక్షన్లు. ఫీల్డ్లు మరియు పద్ధతులను డాట్ సంజ్ఞామానాన్ని ఉపయోగించి యాక్సెస్ చేయవచ్చు. ఉదాహరణకి:
జావాpublic class MyClass {
public int myField;
public void myMethod() {
// method code goes here
}
}
ఈ ఉదాహరణలో, MyClass
క్లాస్ అనే ఫీల్డ్ని myField
మరియు అనే పద్ధతిని నిర్వచిస్తుంది myMethod()
.
- క్లాస్ యాక్సెస్ మాడిఫైయర్లు: యాక్సెస్ మాడిఫైయర్లు జావాలోని ఫీల్డ్లు మరియు పద్ధతుల దృశ్యమానతను నియంత్రిస్తాయి. నాలుగు యాక్సెస్ మాడిఫైయర్లు ఉన్నాయి:
public
,private
,protected
, మరియు డిఫాల్ట్ (మాడిఫైయర్ లేదు). యాక్సెస్ మాడిఫైయర్ పేర్కొనబడనప్పుడు డిఫాల్ట్ యాక్సెస్ మాడిఫైయర్ ఉపయోగించబడుతుంది. ఉదాహరణకి:
జావాpublic class MyClass {
public int myPublicField;
private int myPrivateField;
protected int myProtectedField;
int myDefaultField;
public void myPublicMethod() {
// method code goes here
}
private void myPrivateMethod() {
// method code goes here
}
protected void myProtectedMethod() {
// method code goes here
}
void myDefaultMethod() {
// method code goes here
}
}
ఈ ఉదాహరణలో, MyClass
తరగతి విభిన్న యాక్సెస్ మాడిఫైయర్లతో ఫీల్డ్లు మరియు పద్ధతులను నిర్వచిస్తుంది.
తరగతులు మరియు వస్తువులు జావా ప్రోగ్రామింగ్లో కీలకమైన భాగం మరియు వ్యవస్థీకృత, పునర్వినియోగం మరియు నిర్వహించదగిన కోడ్ను వ్రాయడానికి మిమ్మల్ని అనుమతిస్తుంది. తరగతి కోసం లక్షణాలు మరియు ప్రవర్తనల సమితిని నిర్వచించడం ద్వారా, మీరు వాస్తవ-ప్రపంచ ఎంటిటీలు లేదా నైరూప్య భావనలను సూచించే వస్తువులను సృష్టించవచ్చు మరియు వాటిని మీ కోడ్లో మార్చవచ్చు.