Public Private Protected

Public Private Protected



⚡ ALL INFORMATION CLICK HERE 👈🏻👈🏻👈🏻

































Public Private Protected
By Chaitanya Singh | Filed Under: OOPs Concept
You must have seen public, private and protected keywords while practising java programs, these are called access modifiers. An access modifier restricts the access of a class, constructor, data member and method in another class. In java we have four access modifiers:
1. default
2. private
3. protected
4. public
When we do not mention any access modifier, it is called default access modifier. The scope of this modifier is limited to the package only. This means that if we have a class with the default access modifier in a package, only those classes that are in this package can access this class. No other class outside this package can access this class. Similarly, if we have a default method or data member in a class, it would not be visible in the class of another package. Lets see an example to understand this:
To understand this example, you must have the knowledge of packages in java .
In this example we have two classes, Test class is trying to access the default method of Addition class, since class Test belongs to a different package, this program would throw compilation error, because the scope of default modifier is limited to the same package in which it is declared.
Addition.java
The scope of private modifier is limited to the class only.
Let’s see an example to understand this:
This example throws compilation error because we are trying to access the private data member and method of class ABC in the class Example. The private data member and method are only accessible within the class.
Protected data member and method are only accessible by the classes of the same package and the subclasses present in any package. You can also say that the protected access modifier is similar to default access modifier with one exception that it has visibility in sub classes.
Classes cannot be declared protected. This access modifier is generally used in a parent child relationship.
In this example the class Test which is present in another package is able to call the addTwoNumbers() method, which is declared protected. This is because the Test class extends class Addition and the protected modifier allows the access of protected members in subclasses (in any packages).
Addition.java
The members, methods and classes that are declared public can be accessed from anywhere. This modifier doesn’t put any restriction on the access.
Lets take the same example that we have seen above but this time the method addTwoNumbers() has public modifier and class Test is able to access this method without even extending the Addition class. This is because public modifier has visibility everywhere.
Addition.java
Lets see the scope of these access modifiers in tabular form:
What about strictfp keyword, i think it is also being used in java??
In the top code and right at the beginning, shouldn’t the definition of a default interface be:
interface IDef {…}
instead of
interface CDef {…}
Your email address will not be published. Required fields are marked *
Copyright © 2012 – 2021 BeginnersBook . Privacy Policy . Sitemap

What is the difference between public , protected , package- private and...
Java Access Modifiers - Public , Private , Protected & Default
C++ для начинающих private , public , protected как модификаторы для...
What is the difference between public , private , and protected in PHP?
Public , Protected and Private Inheritance in C++ Programming


guadalupewcyokapi

Uncategorized



May 9, 2012 October 8, 2012

2 Minutes
 После изучения модификаторов доступа внутри класса и простого наследования нужно понять принципы модификаторов доступа при наследовании. Многим людям легко запутаться что где есть. Чтобы как-то рассредоточить эту кашу, проще сначала понять что это за модификаторы доступа такие C++ для начинающих private, public, protected , а потом перейти к изучению модификаторов доступа при наследовании.
 Я обычно не делал картинок и насыщал этот блог исключительно текстом, но тут с картинкой проще объяснить
Описаны три класса. На основе класса A строится класс B . На основе построенного класса B строится класс C Под пальцем показано как компилятором воспринимается код. В классе-потомке создаются такие же поля как и в классе-родителе, но они соответствуют только тому классу, в котором созданы
 При наследовании public в класс-потомок передаются все поля в таком виде в котором они записаны в родителе. private поле тоже туда передается, но как я писал в статье C++ для начинающих Знакомство с protected (модификатор доступа внутри класса) ,  передается, но наследник ничего с ней сделать не может
          void update () //Открытая для программы функция
              x=100; //хотя private унаследован, в потомке он только ест память. Будет ошибка
             y = 100 ; // y из класса B стало равным 100
             z = 100 ; // z из класса B стало равным 100
 class C :public B // Класс С является классом-потомком на основе класса B
          void update () //Открытая для программы функция
              x=100; //хотя private унаследован, в потомке он только ест память. Будет ошибка
             y = 100 ; // y из класса C стало равным 100
             z = 100 ; // z из класса C стало равным 100
 Таким образом, используя public наследование  мы передаем потомкам всё что есть в основном классе в таком виде, как и записано в основном классе. Поулучаем клон основного класса. Разница в том что элементы основного класса к элементам своего клона отношения не имеют
      x=100; //хотя private унаследован, в потомке он только ест память. Будет ошибка
 class C :public B //Пытаемся создать потомок созданного класса B
       x=300 ; //Нельзя обратиться к private элементу унаследованному от родителя
       y=300 ; //Нельзя обратиться к private элементу унаследованному от родителя
       z=300 ; //Нельзя обратиться к private элементу унаследованному от родителя
Таким образом, используя private наследование можно создать первого потомка от которого дальнейшее наследование будет бессмысленно . Если первый потомок получает возможность работы с некоторыми элементами, переданными по механизму наследования, то потомки первого потомка таких возможностей не получают. Кроме того, потомки первого потомка даже лишены возможности узнавать кто их первый родитель. Предполагается, что потомки класса B не должны даже знать о существовании класса A (либо потомков класса B вообще не должно быть). (примечание: Под первым потомком подразумевается потомок первого уровня. Таких потомков может быть сколько угодно)
     x=999; //Нельзя обратиться к private элементу унаследованному от родителя
     y = 999 ; // y определился как объявленный в protected внутри класса B
     z = 999 ; // z  определился как объявленный в protected внутри класса B
      x=777; //Нельзя обратиться к private элементу унаследованному от родителя
      y = 777 ; // y определился как объявленный в protected внутри класса C
      z = 777 ; // z   определился как объявленный в protected внутри класса C
 Таким образом, используя protected наследование, программист предполагает, что внутри всех потомков и потомков потомков и потомков потомков потомков будут использоваться только такие элементы, передаваемые механизмом наследования, которые будут защищены от внешнего воздействия извне своих классов .

Published
May 9, 2012 October 8, 2012




Privacy & Cookies: This site uses cookies. By continuing to use this website, you agree to their use.
To find out more, including how to control cookies, see here:

Cookie Policy


      y = 200 ; // y определился как объявленный в private внутри класса B       z = 200 ; // z   определился как объявленный в private внутри класса B
Очень хорошая статья. Автору большое спасибо

14 Year Old Nudist
Lip Lingerie Glitter
Ass Fart
Naked Teacher
Overwatch Graphics

Report Page