Object Oriented Programming in python

Поделиться
HTML-код
  • Опубликовано: 27 ноя 2024

Комментарии • 927

  • @kaustubhgaikwad2562
    @kaustubhgaikwad2562 5 месяцев назад +73

    4 months but still no 800 comments 😭 He is god level teacher .. help his channel grow

  • @swarnabhamajumder9561
    @swarnabhamajumder9561 9 месяцев назад +58

    Learning Python Day 12 - present sir
    00:03 Object Oriented Programming is like making Gujiya
    01:58 Understanding object-oriented programming through generalized forms and classes.
    05:45 Follow naming conventions and indentation in Python classes.
    07:41 Understanding object creation and attributes in Python
    11:41 Understanding object-oriented programming in Python.
    13:36 Understanding the usage of variables and parameters inside a class in Python
    17:44 Method to display full name of car brand and model
    19:49 Object-oriented programming concepts in Python
    24:06 Creating object and setting up wireless connection
    25:55 Using inheritance and 'super' keyword to access parent class methods and attributes in Python
    29:34 Encapsulation is about controlling access to class attributes
    31:32 Creating methods for accessing and setting attributes in Python
    35:31 Encapsulation and its importance
    37:36 Polymorphism allows different behaviors for objects of the same class.
    41:16 Class variables keep track of shared data, like counting instances.
    43:32 Object creation and access in OOP Python
    47:44 Static method in Java is a method belonging to the class, not owned by an instance.
    49:52 Linking and Wiring in Object Oriented Programming
    53:32 Decorators in Python allow you to modify functions.
    55:19 Understanding data encapsulation and access control in object-oriented programming
    58:51 Understanding the usage of decorators in Python
    1:00:42 Understanding property decorators in Python.
    1:04:49 Inheritance in electric car programming
    1:06:54 Python supports classes, inheritance, and methods

  • @Thecircuit001
    @Thecircuit001 9 месяцев назад +24

    I don’t know why this man is sharing this type of content free in youtube…. 😊…. Sooo much love…. So much valuable information ❤

    • @sidhantarya2483
      @sidhantarya2483 9 месяцев назад +4

      Bharat is already famous for rishi-muni gurus and hitesh sir wants best software engineers will also be from India in the whole world.

  • @devottamvaishnav65
    @devottamvaishnav65 8 месяцев назад +7

    OOPs was so confusing for me earlier! Finally undestoood classes in python so easily, now i finally get what that self, and constructor and how to use them. Thank you so much sir!

  • @anujpoudel
    @anujpoudel 9 месяцев назад +32

    58:15
    when you did 'my_car.model = "City" ' in line 41 in that instance new property/attribute 'model' was created so now there are two attributes one '__model' and another 'model' for object 'my_car'. This happens because we can create new property for any object on the go and is not necessary to be in the class.

    • @soumalyadas1123
      @soumalyadas1123 6 месяцев назад +1

      fine observation.

    • @harshmeetsinghsaluja9773
      @harshmeetsinghsaluja9773 5 месяцев назад

      exactly dude....i was confused for 2 hrs and when i figured it out, i saw ur comment ;-;

    • @DesaiGauravS-
      @DesaiGauravS- 3 месяца назад

      thank y

    • @Airman.programer
      @Airman.programer 3 месяца назад

      class Car:
      def __init__(self, brand, model):
      self.brand = brand
      self.__model = model

      @property
      def model(self):
      return self.__model

      mycar = Car("tata", "safari")
      print(mycar.model)
      # mycar.model = "city" #this line will give error
      is this correct code ? ?

  • @hetashrikansariwala9527
    @hetashrikansariwala9527 9 месяцев назад +8

    I am trying to learn oops in python since many days but unable because of you now I am confident in oops. Thank you sir

  • @Debraj-HTC
    @Debraj-HTC 9 месяцев назад +12

    Finally undestoood classes in python so easily, now i finally get what that self, and constructor and how to use them, earlier it was so confusing. Thank you!

  • @poojaheera5980
    @poojaheera5980 2 месяца назад +3

    Practice time
    05:01 Basic class and objects
    17:38 Class Method and Self
    21:46 Inheritence
    28:47 Encapsulation
    37:31 Polymorphism
    41:17 Class Variables
    47:03 Static Method
    54:36 Property Decorators
    1:01:20 Class Inheritence and instance Function
    1:03:24 Multiple inheritence

  • @danielhaidari1638
    @danielhaidari1638 9 месяцев назад +5

    been following your videos since 2018 and LCO courses since I was in high school now in my second year uni in Aus. appreciate your work

  • @ankitpartap185
    @ankitpartap185 4 месяца назад +2

    Amazing video on Python OOPs. Etna toh college may nai krvaya jitna apnay ek vidoe may krva diya sir!!!! 😄

  • @ashishkrpandey91
    @ashishkrpandey91 4 месяца назад +8

    52:25 jab staticmethod use kar k method bnaye the to obj se acess ho jatata sir
    Ex-
    print(my_car.general_description())
    print(Car.general_description())
    output :-
    Cars are means of transport
    Cars are means of transport

    • @Shukla-ji_knp
      @Shukla-ji_knp 4 дня назад

      Correct Bro...
      @staticmethod means it does not require an instance of the class to be called
      if we need to hide then we do print(Car.__general_info())

  • @poojaheera5980
    @poojaheera5980 2 месяца назад +1

    Isse acha content nai dekha mane related to learning python. Best playlist 😍

  • @manasanmol6604
    @manasanmol6604 6 месяцев назад +3

    Finally found such a detailed playlist, was looking back to remember the definitions when I stumbled over this

  • @soumyaranjanghadei6137
    @soumyaranjanghadei6137 4 месяца назад +1

    Finally undestoood classes in python so easily, now i finally get what that self, and constructor and how to use them, earlier it was so confusing. Thank you!

  • @anonyone8834
    @anonyone8834 9 месяцев назад +9

    Pass is special keyword used as a placeholder for a code. In python when we make a class and we want to specify the use case later we just use pass to avoid error and code still being empty

  • @pranjul4018
    @pranjul4018 3 месяца назад +2

    if someone ask me how to learn python, this is one of the best playlist ever (especially this video on OOPs). Itna accha video OOPs jaise concept pe koi kaise bna sakta hai 🤷‍♂👌

  • @ashurathi9286
    @ashurathi9286 3 месяца назад +4

    dialogue yaad agya😂"Maamla aagya h class ka aur tum maat khaa gye ho class se kuki ham h unchi class ke aur tum ho nichi class ke"

  • @prashantswaroop4801
    @prashantswaroop4801 4 месяца назад +1

    Awesomely done. Hands the best teacher I have ever seen. cleared all the basics practically you are truly a gem sir for the Indian coding community. Thanks

  • @pranaypaul6361
    @pranaypaul6361 9 месяцев назад +7

    In Python, static methods are indeed meant to be accessed by the class itself rather than by instances of the class. However, there is a subtle difference in how static methods are defined and accessed in Python compared to other programming languages like Java or C++.
    In Python, static methods are declared using the `@staticmethod` decorator, which specifies that the method should be treated as a static method. However, static methods in Python are not truly bound to the class itself. Instead, they are bound to the class's namespace, which is the same namespace that contains the class's other attributes and methods.
    This means that while static methods can be accessed using the class name, they can also be accessed using an instance of the class, as shown in the example you provided. When you call a static method using an instance of the class, the instance itself is not used in any way. The method is simply called using the class's namespace.
    This behavior is different from static methods in other programming languages, where static methods are truly bound to the class and cannot be accessed using an instance of the class. In Python, the ability to access static methods using both the class name and an instance of the class provides greater flexibility and allows for more concise code in certain situations.
    It's important to note that while static methods can be accessed using both the class name and an instance of the class, they should generally be accessed using the class name for consistency and clarity.
    class MyClass:
    @staticmethod
    def my_static_method():
    print("Hello from static method!")
    # Calling using the class name
    MyClass.my_static_method() # Output: Hello from static method!
    # Calling using an object
    obj = MyClass()
    obj.my_static_method() # Output: Hello from static method!

    • @priyeshsingh7586
      @priyeshsingh7586 8 месяцев назад +1

      Just thinking what will be a production scenario where static method can be used by both Class and instance of the class as described above.

    • @M_Abdul1ah
      @M_Abdul1ah 5 месяцев назад

      Scrolling through the comments to find someone discussing this… and here you are, brother.♥️

  • @Nisha-nb6rv
    @Nisha-nb6rv Месяц назад

    I can't express how well this is explained-it's clear and straightforward!

  • @proPakistani54
    @proPakistani54 9 месяцев назад +3

    Krdya ❤❤❤

  • @Vishal_0841
    @Vishal_0841 9 месяцев назад +2

    Guru ji imandari se ab question solve kar raha hu mza aa raha hai ❤

  • @AmanTiwari-ww7td
    @AmanTiwari-ww7td 9 месяцев назад +3

    Excited for the django series sir

    • @onlypreparation5692
      @onlypreparation5692 9 месяцев назад +1

      Yes

    • @zalaam_0
      @zalaam_0 9 месяцев назад +2

      There is not a single latest course on whole youtube so big yes

    • @onlypreparation5692
      @onlypreparation5692 9 месяцев назад

      @@zalaam_0 if also have , we would like to learn from hitesh sirji , because when we learn from sir , Just another level❤️❤️❤️

  • @mubeenashraf8676
    @mubeenashraf8676 7 месяцев назад +2

    The pass statement is used as a placeholder for future code. When the pass statement is executed, nothing happens, but you avoid getting an error when empty code is not allowed. Empty code is not allowed in loops, function definitions, class definitions, or in if statements.

  • @Shukla-ji_knp
    @Shukla-ji_knp 5 дней назад

    I never drop any comments but Really Sir 40 min in your video so far and I'm loving it... You are a GREAT TEACHER :)

  • @Waleedkkhan594
    @Waleedkkhan594 8 месяцев назад

    This single video is more valuable then some RUclipsr's entire channels. Incredible work sir. I learnt so many things. Oops inheritance, polymorphism, constructor, decorator thank you so much sir

  • @SobanToor
    @SobanToor 4 месяца назад

    One of the best videos on Object-Oriented Programming in python I have ever witnessed.

  • @emtu686
    @emtu686 Месяц назад +1

    I watched more than five courses, but I didn't understand. At last, I found this video and understood it Consept. Thank you so match ❤😊😊

  • @utkarshsingh1128
    @utkarshsingh1128 5 месяцев назад

    28:37 / 1:08:28 Encapsulation __brand ->private (only class members can use not outsider object) {hence data is encapsulated }
    36:45 / 1:08:28 Class Variable

  • @gamerk88
    @gamerk88 5 месяцев назад

    I was stucked in OOp s in python for a day and then I find this vid and understand everything.Highly recommended for understanding oops in python.

  • @akashkr8541
    @akashkr8541 7 месяцев назад

    oop se jaldi main bachpan me cycle sikh lia tha. now i am here. thanks for this video. i am going to watch it fully.

  • @sky.digitalmedia2732
    @sky.digitalmedia2732 7 месяцев назад +2

    Sir, you teach in such a way which make any complex topic very easy
    💯💯💯💯

  • @affreenmjha4113
    @affreenmjha4113 Месяц назад

    Chai with Python while learning to make gujia objects = awesome learning ! Thank you for explaining so well ...

  • @Haha1234-z7f
    @Haha1234-z7f 4 месяца назад +1

    When you are removing the self from general description at 50 min that time you by mistake your removed self of fuel type in ElectricCar class not major issue just giving a good feedback. Love you sir you are great !!!

  • @shreyasjoshi3742
    @shreyasjoshi3742 3 месяца назад

    My friend recommended me about this channel, and I love the way of teaching.

  • @muhammadhilal5807
    @muhammadhilal5807 8 месяцев назад

    i thought that this would be that boring video by learning the OOP with fancy names, but loved it how you explain it by just solving problems and learning along with it.

  • @Sampath1731
    @Sampath1731 4 дня назад +1

    sir you are studied very nice, fantastic .
    Thank You!
    For studied object oriented programming

  • @adityaiyer9285
    @adityaiyer9285 Месяц назад

    Thank you for teaching such a complex concept in very simple and easy terms. With this video i have gained confidence in Python objects and inheritance. Thankyou

  • @spm_01
    @spm_01 6 месяцев назад

    very nice video with full of learning I am in 4th year now I learnt how to play with oops with python - thank you so much sir :)))

  • @vardanshprasad5801
    @vardanshprasad5801 9 месяцев назад +1

    Sir apka English Bahut accha hai free codecamp pe dekha hai

  • @lakshyaaggarwal1608
    @lakshyaaggarwal1608 5 месяцев назад

    Sir You have made things so easy and made me learn to write project code with industry standard while being in college, I have also seen your backend playlist and it has helped me a lot thx a lot

  • @krishnamania1
    @krishnamania1 9 месяцев назад +1

    Thank you sir , this is the first time I completely understand OOPS

  • @farooqaziz3738
    @farooqaziz3738 4 месяца назад

    Sir mai python oops ki wajah se interview crack nhi saka
    Lekin aapke video dekhne ke baad mujhe oops ke all concept clear ho Gaye
    Thanks for sharing this useful knowledge

  • @mrayyan8813
    @mrayyan8813 3 месяца назад

    learning Python Day 12 - present sir
    00:03 Object Oriented Programming is like making Gujiya
    01:58 Understanding object-oriented programming through generalized forms and classes.
    05:45 Follow naming conventions and indentation in Python classes.
    07:41 Understanding object creation and attributes in Python
    11:41 Understanding object-oriented programming in Python.
    13:36 Understanding the usage of variables and parameters inside a class in Python
    17:44 Method to display full name of car brand and model
    19:49 Object-oriented programming concepts in Python
    24:06 Creating object and setting up wireless connection
    25:55 Using inheritance and 'super' keyword to access parent class methods and attributes in Python
    29:34 Encapsulation is about controlling access to class attributes
    31:32 Creating methods for accessing and setting attributes in Python
    35:31 Encapsulation and its importance
    37:36 Polymorphism allows different behaviors for objects of the same class.
    41:16 Class variables keep track of shared data, like counting instances.
    43:32 Object creation and access in OOP Python
    47:44 Static method in Java is a method belonging to the class, not owned by an instance.
    49:52 Linking and Wiring in Object Oriented Programming
    53:32 Decorators in Python allow you to modify functions.
    55:19 Understanding data encapsulation and access control in object-oriented programming
    58:51 Understanding the usage of decorators in Python
    1:00:42 Understanding property decorators in Python.
    1:04:49 Inheritance in electric car programming
    1:06:54 Python supports classes, inheritance, and methods

  • @priyankagehlot9945
    @priyankagehlot9945 3 месяца назад +2

    1:08:13
    ek channel aaya h "chai aur code" ☕❤, jo dil se pdhate h aur dil se smjate h❤❤❤❤❤❤❤❤

  • @Ady-tf1jm
    @Ady-tf1jm 5 месяцев назад

    Thankyou Sir. Apne bhot easy way mai samja diya.

  • @krishnapalsingh2777
    @krishnapalsingh2777 9 месяцев назад

    Super 🧑‍🔧 "Thoda difficult lg rha hai" 2,3 bar dekhne pr samjh a jaiga😊

  • @ahmedraza5114
    @ahmedraza5114 16 дней назад

    Grear Sir, I have studied about OOP and thought had very strong grip on its concept, but every time when I listen to Hitesh Sir It takes me to next step.

  • @adnanrasheed4366
    @adnanrasheed4366 25 дней назад

    You explained OOP in such an easy and phenomenal way! Thank you for making complex concepts so understandable. Love from Pakistan! 😍

  • @manavbhatt3169
    @manavbhatt3169 5 месяцев назад

    I have completed the full video at once i loved the way hitesh sir teach , he teached all the concepts so smoothly and in very easy way , Big Thanks for this series sir 🙏✨️

  • @oyeeetaha7890
    @oyeeetaha7890 3 дня назад

    deserves more recognition very good explanation

  • @shahbajalam2076
    @shahbajalam2076 5 месяцев назад +1

    Whoever is watching this video, just remember, the static method part is wrong. The class instance can 100% access the static method. Both class and instance can access the static methods. Static method means it does not get created for each instance, rather it gets created for only once.

  • @rayyanzaidi3323
    @rayyanzaidi3323 Месяц назад

    one of the great teacher available on RUclips.

  • @shiblieahmed4284
    @shiblieahmed4284 12 дней назад

    Content Quality is superb ❤️ from Dhaka,Bangladesh.

  • @abhaymalvi5458
    @abhaymalvi5458 8 месяцев назад +1

    Best OOPs video on RUclips!! 🔥

  • @mdnozibuddowla4085
    @mdnozibuddowla4085 4 месяца назад

    agar mein is video full dekhne ki baad oop sikh jate hein to meri jitni bhi gmail account hein o sab se aap ki account ko subscribes karenge. because I am learning coding from 2016 se. abhi bhi oop mein bohot sari problems ate rehte hein. video dekhna start kari rahi hu.hope for the best

  • @Nooresagheer
    @Nooresagheer 3 месяца назад

    ❤❤❤❤❤❤علم دینے کا بہت شکریا😊

  • @Chitranshu0
    @Chitranshu0 5 месяцев назад

    Sir, your approach to coding is as simple and refreshing as making a cup of tea. Just like brewing the perfect chai, you blend simplicity with richness, making the learning process both delightful and flavorful. Keep serving those amazing tutorials, they're a treat to our minds!

  • @subhasreekar1297
    @subhasreekar1297 6 месяцев назад

    You have explained all the concepts very easily ... Good for the beginners like me😊

  • @TechTutorialswithPiyush
    @TechTutorialswithPiyush 7 месяцев назад

    Shuruwat majburi me kari thi Python, ab maja aara hain ❤

  • @sufiyanpatel6241
    @sufiyanpatel6241 4 месяца назад

    Perfect Teaching... Clear OOPs concept in python....

  • @karannegi-y4m
    @karannegi-y4m 2 месяца назад +1

    i noticed a good point in static method that we can execute static function using object but we have to remove " self " as a parameter from static function that means we are not sending a reference of our object ( self contains reference of object ) that we are accessing the static by class only

  • @islamiclife518
    @islamiclife518 20 дней назад

    At 58:25, when we write my_car.name = "city", it actually creates a new attribute name in the my_car instance. This happens because self.name doesn’t already exist as a public attribute in the class.
    In this case, we made name private by using self.__name, so my_car.name doesn’t overwrite self.__name. Instead, it creates a separate name attribute in my_car.
    To modify the private __name attribute, we can access it using my_car._My_car__name.
    Now, name and __name are separate attributes.

  • @DumKU-q4h
    @DumKU-q4h 9 месяцев назад

    this is the best video i ever seen to learn oop concepts in python

  • @siddhant2943
    @siddhant2943 4 месяца назад

    I already knew objected oriented programming concepts in C++ and Java, it is amazing to see how different languages always come with something new to offer, this pointer in C++, super() method in java, @property decorator in python.

  • @khawaja_here
    @khawaja_here 4 месяца назад

    First time am fully understand the concepts of OOP Thank you so much sir

  • @Jatin_Jaunwal
    @Jatin_Jaunwal 4 месяца назад

    One of the best videos on Python lecture and easily explains the difficult topics Thank you so much, sir 😇

  • @onlylakshyaff5296
    @onlylakshyaff5296 24 дня назад +1

    Sir jab bhi aap chai or code ek sath bolte ho mujhe chai or Sutta dhyan aa jata hai 😂Channel ka name Chai or Code ki jagah
    Chai or Sutta rakhdo
    ❤❤❤Aap bht ache se samjhate ho sir.
    #ChaiOrCode ☕🧑‍💻
    #ChaiOrsutta ☕🚬

  • @shaikusman536
    @shaikusman536 6 месяцев назад

    Awsome content Hitesh sir ji...........Thanks a ton ...keep up the great work....Respect from Bangalore.

  • @subhabratamukherjee7448
    @subhabratamukherjee7448 6 дней назад

    The way you described is too good.. thank you

  • @Csengineer-377
    @Csengineer-377 2 месяца назад

    4 months but still no 800 comments He is god level teacher .. help his channel grow
    4 months but still no 800 comments He is god level teacher .. help his channel grow

  • @thatone.nerdguy
    @thatone.nerdguy 3 месяца назад

    I've been watching series fr last 7 days this has been best course, ab mujhe OOPs relatable lagne lga h - 1 August 2024

  • @xander-sum
    @xander-sum 3 месяца назад

    OOPs - Finally got some valuable knowledge.
    🙏Thank you for clear explanation

  • @ayushtripathiindia
    @ayushtripathiindia 2 месяца назад

    Well thought Sir I understood each and every part of the tutorial, Thanks for such kind of tutorials...

  • @ck0024
    @ck0024 9 месяцев назад +1

    Attribute = Property = Variable
    Method = Function

  • @adityagupta1479
    @adityagupta1479 5 месяцев назад

    Sir, you teach in such a way which make any complex topic very easy

  • @nikshadali50
    @nikshadali50 9 месяцев назад

    Sir, you teach in such a way which make any complex topic very easy

  • @Airman.programer
    @Airman.programer 3 месяца назад

    def chai(num):
    def actual(x):
    return x ** num
    return actual
    f = chai(2)
    g = chai(3)
    print(f(2))
    print(g(2))

  • @RohitVarfa
    @RohitVarfa 9 месяцев назад +1

    Thank you so much sir for oops concept explanation in a very easy manner 🙏

  • @vaishnavikulkarni663
    @vaishnavikulkarni663 5 месяцев назад

    Thank you sir. You made this topic so much easier to learn

  • @letstry2854
    @letstry2854 9 месяцев назад +1

    Great content wth clear explanation sir jee😍😍

  • @meenakshimeeen
    @meenakshimeeen 2 месяца назад

    Object Oriented Programming is no more scary now.... Thank you sir ❤

  • @MCoder-x
    @MCoder-x 6 месяцев назад

    I think this was the best explanation to OOP. Thank you sir🙌🏻

  • @dysproghoul
    @dysproghoul 5 месяцев назад

    this is was perfect rather than those basic generic oops videos
    this covered most of the things

  • @deshichhora0121
    @deshichhora0121 8 месяцев назад

    sir , bahut hi easy way me samjha le gaye ho aap

  • @MusawarMehdi
    @MusawarMehdi 4 месяца назад +1

    Complete oop concept thanks sir ♥️♥️

  • @addictivecore2272
    @addictivecore2272 4 месяца назад

    COMMENT KARO BHAI . . . .
    best python series EVER

  • @Abhay_Pandey_1
    @Abhay_Pandey_1 9 месяцев назад

    Best python series on yt in hindi.

  • @Iamasifshahzad
    @Iamasifshahzad 8 месяцев назад

    Greatest series of ever made on youtube for python

  • @faisaliqbal-h2k
    @faisaliqbal-h2k 3 месяца назад

    Nice way of teaching , and very interesting really I enjoy a lot. Thanks This was my first lecture, impressive

  • @pranaypaul6361
    @pranaypaul6361 9 месяцев назад

    A detailed OOP video....pure concept hammering session!!!

  • @samiran__roy
    @samiran__roy 9 месяцев назад

    this series needs more recognition

  • @more_us24
    @more_us24 8 месяцев назад

    HEY RAM Bhgwan... What An Explanation!!!👏 Maza hi aa gaya lecture ka 😂❤️

  • @suryaa_tycoons4455
    @suryaa_tycoons4455 3 месяца назад

    Hats off sir no one teaching like this

  • @SHRUTIBEDARKAR
    @SHRUTIBEDARKAR 4 месяца назад +1

    extraordinary teaching

  • @chandranitr5003
    @chandranitr5003 5 месяцев назад

    Amazing! I understand very well. Thank you sir

  • @shobhitkumar9186
    @shobhitkumar9186 19 дней назад

    For setter() include a method just below the get__model()
    def set_model(self,model)
    self.__model=model
    And call it
    print(my_tesla.get_model())
    my_tesla.set_model("Ford")
    print(my_tesla.get_model())

  • @AlokCodes1
    @AlokCodes1 5 месяцев назад +2

    sir, there is a conceptual mistake at 51:47 . You said that the objects can not access static methods, but static method works on classed as well as instances of that class . Investigation study karke pata kiya :)
    thanks for these lectures (i find this playlist as the fastest way to learn and gain confidence in python)
    For the viewers: The difference between a normal method and static method is that inside a static method, you can't use any of the properties or method associated with the class. All the implementation has to be done using the parameters of that static method. BTW there is also a classmethod decorator, explore it also

    • @shrehanarya-iw6vx
      @shrehanarya-iw6vx 5 месяцев назад

      thank you so much bhaiya mujhe lag raha tha ki mere code me error h :)

  • @dinesh-hdnd
    @dinesh-hdnd 8 месяцев назад

    maza or samajh dono aa gaya video dekh ke thanks sir...

  • @kalpakcreation8804
    @kalpakcreation8804 Месяц назад

    aapne bahot accha subject sikhaya