Public (+)

Na descrição de uma classe, este encapsulamento pode ser observado pela indicação de modificadores de acesso, usualmente representado pelos sinais “+”, “-” e “#”. Na linguagem Java podemos dizer que o modificador public (+) apresenta restrições de acesso para classes em pacotes diferentes e é utilizado, usualmente, para proteger o comportamento.
Pois bem não entendi esse public (+), esse atributo, não sei como se lê e não encontrei formas de analisar essa afirmativa.

Ó, entendi nada do que você quis dizer com +, - e #, mas vou te explicar sobre modificadores de acesso em Java.

De forma BÁSICA, existem 4:

Público
Privado
Visível em Herança
Visível em Pacote

Pra te explicar melhor, vamos supor que você tenha um método chamado ehPar que recebe um tipo inteiro como parâmetro e te retorna um boolean (true ou false). Também, vamos supor que a classe se chama “Utilitarios” e a referência (ou instanciação) chama-se util.

Utilitarios util = new Utilitarios();

As assinaturas são as seguintes (com explicação):

public boolean ehPar (int numero){
//implementação
}

Isso quer dizer que, em todo projeto, o método é visível (ou seja, público) - qualquer um pode acessar através da referência: esteja onde estiver.

private boolean ehPar(int numero){
//implementação
}

Isso é um método privado, ou seja: NINGUÉM pode vê-lo, mesmo através da instanciação. Se ninguém consegue vê-lo, ninguém consegue usar. Todavia, há uma exceção: a própria classe pode vê-lo e usá-lo livremente.

protected boolean ehPar (int numero){
//implementação
}

Isso é um método em que só as classes que herdam essa classe podem ver. Também conhecida como “vísivel para as filhas/subclasses”. Você vai entender melhor quando estudar Herança.

boolean ehPar (int numero){
//implementação
}

Isso é um método que, através do util, quem estiver no mesmo pacote vai poder usar essa classe. Porém, só quem estiver na mesma classe (o nome do atributo é package-private).

Espero ter dado uma esclarecida!

[]'s

obrigado!!

Disponha :slight_smile:

+ - e # é notação UML
+ é public
- é private
# é protected

2 curtidas

pois bem estou fazendo um exercício e não consigo entende-lo, comecei a posta-lo ai em cima mas ate eixei visto a complexidade para mim. o problema são essas notações em uml, que bagunça tudo.
veja:

padrão da linguagem (“default” - sem sinal associado) é o public. Usualmente, é utilizado para proteger os dados (atributos).

private (-) permite o acesso dentro da própria classe e de suas superclasses e é utilizado, usualmente, para funções (métodos).

Incorreto
public (+) apresenta restrições de acesso para classes em pacotes diferentes e é utilizado, usualmente, para proteger o comportamento.

protected (#) permite acesso apenas dentro da própria classe e é utilizado usualmente para proteger os dados (atributos).

public (+) é utilizado usualmente para o comportamento (métodos), enquanto o modificador private (-) é utilizado usualmente para proteger os dados (atributos).
alguem pode comentar isso para que eu entenda

complementando qual afirmação esta certa

+ equivale a public em Java
- equivale a private em Java
# equivale a protector em Java

Elas servem só para te dizer no diagrama qual o modificador de acesso usar nos membros da classe.