Java - Спецификатор доступа - PullRequest
1 голос
/ 25 марта 2010

Могут ли классы в java иметь какой-либо другой спецификатор доступа, кроме public? Можем ли мы сохранить наш файл с тем именем класса, у которого есть спецификатор, отличный от public?

Ответы [ 9 ]

3 голосов
/ 25 марта 2010

Модификаторы доступа в Java - объясните.

I) Модификаторы доступа на уровне класса (только для классов Java)

Разрешено только два модификатора доступа, public и без модификатора

Если класс ‘public’, то к нему МОЖНО обращаться из любого места.

Если класс не имеет «модификатора», то он может быть доступен ТОЛЬКО из «одного пакета».

II) Модификаторы доступа на уровне членов (переменные java и методы java)

Все четыре public, private, protected и модификатор не допускается.

public и без модификатора - тоже самое способ, используемый на уровне класса.

private - члены могут иметь доступ ТОЛЬКО.

protected - МОЖЕТ быть доступно с «Тот же пакет» и существующий подкласс в любой упаковке можно получить доступ.

источник: http://javapapers.com/core-java/access-modifiers-in-java-explain

2 голосов
/ 25 марта 2010

Да, они могут быть частными. Это определяется:

class foo {
    int data;
} 

Не вложенный класс в Java, однако, может не быть private или protected.

Наконец, класс может быть abstract, final или strictfp

Я подтвердил это в Java Pocket Guide (он был у меня на столе.)

1 голос
/ 12 марта 2012

Java имеет четыре уровня видимости: публичный, защищенный, (по умолчанию), приватный

  1. Доступно для пакета. по умолчанию. Модификаторы не нужны.

  2. Доступно только для класса (личное).

  3. Видна миру (общедоступна).

  4. Доступен для пакета и всех подклассов (защищен).

См. Изображение, чтобы узнать подробности об использовании спецификаторов доступа

enter image description here

1 голос
/ 25 марта 2010

Классы верхнего уровня могут быть только public или пакетными (без модификатора доступа).

Вложенные классы также могут быть private или protected.

1 голос
/ 25 марта 2010

Классы верхнего уровня могут иметь видимость public или default ("package private").

Внутренние классы также могут быть private и protected (как и выше):

public class OuterClass
{
    private class InnerClass
    {
        // ....
    }
        // ....
}
0 голосов
/ 08 апреля 2014

Спецификаторы доступа используются для ограничения доступа при программировании. Эти спецификаторы определяют, может ли поле или метод в классе использоваться или вызываться другим методом класса или методом подкласса.

Существует четыре спецификатора доступа

1) публичный 2) частная 3) защищены 4) по умолчанию

Они используются в соответствии с нашей спецификацией для доступа к определенным уровням в программировании.

1) публично К классам, методам и полям, которые объявлены как открытые, можно получить доступ из любого другого класса в программе Java, независимо от того, находятся ли они в одном пакете или другом пакете.

2) частный
к полям и методам, которые объявлены как частные, можно получить доступ в том же классе, к которому они принадлежат. Используя приватный спецификатор, мы также можем достичь инкапсуляция , которая используется для сокрытия данных

3) защищено Поля и методы, которые объявлены как защищенные, могут быть доступны только для подклассов в другом пакете или в любом классе в пакете класса защищенных членов. Помните , защищенный спецификатор не применяется к классу и интерфейсам.

4) по умолчанию если вы не объявляете какой-либо спецификатор, он будет следовать уровню доступности по умолчанию. Где-то есть Нет ключевого слова по умолчанию . Доступ к классам, полям и методам может осуществляться по умолчанию (без объявления спецификатора). Используя спецификатор по умолчанию, мы можем получить доступ к классу, методу или полю, принадлежащему тому же пакету, но не из этого пакета.

0 голосов
/ 18 мая 2011

В Java нет спецификаторов доступа. На Яве солнце Microsoft дает Модификаторы.

Согласно Sun Microsoft, существует множество модификаторов

  • private
  • protected
  • public
  • static
  • final
  • abstract
  • synchronized
  • transient
  • volatile
  • strictfp
  • и т.д.

Некоторые считают, что private, public, protected являются спецификаторами доступа. Но, согласно Sun Microsoft, существуют модификаторы.

0 голосов
/ 25 марта 2010

Подробное объяснение см. http://java.sun.com/docs/books/tutorial/java/javaOO/accesscontrol.html:

Класс может быть объявлен с публичный модификатор, в этом случае класс виден всем классам везде. Если класс не имеет модификатора (по умолчанию, также известный как пакет-приват), виден только в собственной упаковке

Вы также можете использовать закрытые внутренние классы, чтобы скрыть реализацию извне.

0 голосов
/ 25 марта 2010

Конечно, без причины.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...